Openkore.com

OpenKore Forums
It is currently 19 Apr 2018, 07:45

All times are UTC - 5 hours [ DST ]





Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 31 posts ]  Go to page 1, 2, 3, 4  Next
Author Message
 Post subject: RO Structs
PostPosted: 23 Jun 2010, 23:24 
Offline
Super Moderators
Super Moderators
User avatar

Joined: 06 May 2008, 12:47
Posts: 801
(un)packer
kLab and harvest, i think you guys have being noticing the recent updates on the (un)packer?
If you haven't then i'm here to tell you that its capable of parsing all(?) known packets. (prove it wrong and earn a cookie :P)
That said, i'm proud to announce that it has now matured to the point where the API for (un)pack object creation is practically in its final state.
Which means we can start working on the "C struct parser to (un)pack object"! ;)

Rewrite of structs
However before we begin, lets set things straight...
I request that we make the structs public on svn and start rewriting them so they conform with the ANSI C standard ASAP.
With this, i suggest we extract the the (de facto) reusable inner structure's & constants (which are merely just ENUM's) from the structs and "typedef" them on top of the file for now.
The enums seem to be of the integer type (4 bytes) from the looks of it.
I think we should use the original names for the keys, but are typo's like "unsigned char Resut" due to gravity?
(what about we drop all these development projects somewhere on the svn?)

The future
After the (un)pack and "C struct parser to (un)pack object" classes are written we can implement the actual (un)packer in a new network model.
In this network model, Server, Client, encryption, decryption and all that we talked about will be taken in consideration.
Then we can implement XKore, Poseidon, etc... the way they were meant to be implemented.

In a later phase, we should be able to use those ENUM constants in our code, to improve readability.
The actual implementation of this will be decided when the time is ripe.
When we complete all this, we would only support one serverType with current structs, but you got to start somewhere... Besides, some structs remained unchanged.
Again, i'm positive that we should not worry about these details right now. It will all be solved in time.

So now, lets get things done! :ugeek:

_________________
One ST0 to rule them all? One PE viewer to find them!
One ST_kRO to bring them all and in the darkness bind them...

Mount Doom awaits us, fellowship of OpenKore!


Top
 Profile  
 
 Post subject: Re: RO Structs
PostPosted: 24 Jun 2010, 02:58 
Offline
Administrator
Administrator
User avatar

Joined: 24 Apr 2008, 12:02
Posts: 1299
First of all: I cannot put the structs on Public SVN, because I risk getting a lot of attention from Gravity. (At least not in this project).
As for the Second: Some Structs are not completed, so thus must be completed first.

I suggest Using eA DiffTeam SVN Repository to hold the "structs.txt" file, while we hold it's perl buildings and representation.

_________________
Join our Team. Click here.
Image


Image


Top
 Profile  
 
 Post subject: Re: RO Structs
PostPosted: 28 Jun 2010, 21:55 
Offline
Super Moderators
Super Moderators
User avatar

Joined: 06 May 2008, 12:47
Posts: 801
voila, i have converted the structs to ansi C and splitted them up, which btw was a tedious task. :roll:
I'll try to keep them up to date diffing kLab's latest structs to his previous.
(i however have removed enum's and defines until we know what to do with them)
Also, i've added some TODO's with questions in the structs.txt, please read those and comment here.

btw kLab, does g_charblock_size really exist? (I need to know before further design)

The code of the parser is hideous but by some miracle it seems to work, so it will not be seen until...


UPDATE:
... my patience is over.
ah what the heck, 7/7 unittests are passing, i'll include the full project so you guys can do some hands-on testing if you like. ;)
Just feed it some raw packets RAWR!


Attachments:
RO_struct_3.tar.gz [32.83 KiB]
Downloaded 52 times
File comment: 29/06/10 (ansi C)
structs.txt [169.18 KiB]
Downloaded 42 times

_________________
One ST0 to rule them all? One PE viewer to find them!
One ST_kRO to bring them all and in the darkness bind them...

Mount Doom awaits us, fellowship of OpenKore!
Top
 Profile  
 
 Post subject: Re: RO Structs
PostPosted: 29 Jun 2010, 15:14 
Offline
Administrator
Administrator
User avatar

Joined: 24 Apr 2008, 12:02
Posts: 1299
Technology wrote:
btw kLab, does g_charblock_size really exist? (I need to know before further design)


I think not. I used it to list different packet internals.

Btw.. about thus Questions.

PACKET_ZC_STORE_NORMAL_ITEMLIST has NORMALITEM_EXTRAINFO inside.
that is:
Code:
  /* this+0x4 */ struct NORMALITEM_EXTRAINFO itemInfo[...] { // Size 10
    /* this+0x0 */ short index;
    /* this+0x2 */ unsigned short ITID;
    /* this+0x4 */ unsigned char type;
    /* this+0x5 */ bool IsIdentified;
    /* this+0x6 */ short count;
    /* this+0x8 */ unsigned short WearState;
  };


on PACKET_ZC_GROUP_LIST made a little update:
Code:
struct PACKET_ZC_GROUP_LIST {
  /* this+0x0 */ short PacketType
  /* this+0x2 */ short PacketLength
  /* this+0x4 */ char groupName[24]
  /* this+0x1c */ struct GROUPMEMBER_INFO groupInfo[...] {
    /* this+0x0 */ unsigned long AID;
    /* this+0x4 */ char characterName[24];
    /* this+0x1c */ char mapName[16];
    /* this+0x2c */ unsigned char role;
    /* this+0x2d */ unsigned char state;
  }
}


I also Upload my latest structs here.

Edit
File Deleted (Outdated).

_________________
Join our Team. Click here.
Image


Image


Top
 Profile  
 
 Post subject: Re: RO Structs
PostPosted: 29 Jun 2010, 18:48 
Offline
Super Moderators
Super Moderators
User avatar

Joined: 06 May 2008, 12:47
Posts: 801
kLabMouse wrote:
Technology wrote:
btw kLab, does g_charblock_size really exist? (I need to know before further design)


I think not. I used it to list different packet internals.

ah ok, thanks for answering the questions.

I'm going to make a plugin that hooks on the received packets of kore to test more packets.
Right now i need the latest enum that links packetID with packetHANDLE.
So, it would be nice if you could attach that, kLab.

_________________
One ST0 to rule them all? One PE viewer to find them!
One ST_kRO to bring them all and in the darkness bind them...

Mount Doom awaits us, fellowship of OpenKore!


Top
 Profile  
 
 Post subject: Re: RO Structs
PostPosted: 30 Jun 2010, 07:20 
Offline
Administrator
Administrator
User avatar

Joined: 24 Apr 2008, 12:02
Posts: 1299
Technology wrote:
I'm going to make a plugin that hooks on the received packets of kore to test more packets.
Right now i need the latest enum that links packetID with packetHANDLE.
So, it would be nice if you could attach that, kLab.


Here ya go:
Code:
typedef enum <unnamed-tag> {
  HEADER_CA_LOGIN =  0x64,
  HEADER_CH_ENTER =  0x65,
  HEADER_CH_SELECT_CHAR =  0x66,
  HEADER_CH_MAKE_CHAR =  0x67,
  HEADER_CH_DELETE_CHAR =  0x68,
  HEADER_AC_ACCEPT_LOGIN =  0x69,
  HEADER_AC_REFUSE_LOGIN =  0x6a,
  HEADER_HC_ACCEPT_ENTER =  0x6b,
  HEADER_HC_REFUSE_ENTER =  0x6c,
  HEADER_HC_ACCEPT_MAKECHAR =  0x6d,
  HEADER_HC_REFUSE_MAKECHAR =  0x6e,
  HEADER_HC_ACCEPT_DELETECHAR =  0x6f,
  HEADER_HC_REFUSE_DELETECHAR =  0x70,
  HEADER_HC_NOTIFY_ZONESVR =  0x71,
  HEADER_CZ_ENTER =  0x72,
  HEADER_ZC_ACCEPT_ENTER =  0x73,
  HEADER_ZC_REFUSE_ENTER =  0x74,
  HEADER_ZC_NOTIFY_INITCHAR =  0x75,
  HEADER_ZC_NOTIFY_UPDATECHAR =  0x76,
  HEADER_ZC_NOTIFY_UPDATEPLAYER =  0x77,
  HEADER_ZC_NOTIFY_STANDENTRY =  0x78,
  HEADER_ZC_NOTIFY_NEWENTRY =  0x79,
  HEADER_ZC_NOTIFY_ACTENTRY =  0x7a,
  HEADER_ZC_NOTIFY_MOVEENTRY =  0x7b,
  HEADER_ZC_NOTIFY_STANDENTRY_NPC =  0x7c,
  HEADER_CZ_NOTIFY_ACTORINIT =  0x7d,
  HEADER_CZ_REQUEST_TIME =  0x7e,
  HEADER_ZC_NOTIFY_TIME =  0x7f,
  HEADER_ZC_NOTIFY_VANISH =  0x80,
  HEADER_SC_NOTIFY_BAN =  0x81,
  HEADER_CZ_REQUEST_QUIT =  0x82,
  HEADER_ZC_ACCEPT_QUIT =  0x83,
  HEADER_ZC_REFUSE_QUIT =  0x84,
  HEADER_CZ_REQUEST_MOVE =  0x85,
  HEADER_ZC_NOTIFY_MOVE =  0x86,
  HEADER_ZC_NOTIFY_PLAYERMOVE =  0x87,
  HEADER_ZC_STOPMOVE =  0x88,
  HEADER_CZ_REQUEST_ACT =  0x89,
  HEADER_ZC_NOTIFY_ACT =  0x8a,
  HEADER_ZC_NOTIFY_ACT_POSITION =  0x8b,
  HEADER_CZ_REQUEST_CHAT =  0x8c,
  HEADER_ZC_NOTIFY_CHAT =  0x8d,
  HEADER_ZC_NOTIFY_PLAYERCHAT =  0x8e,
  HEADER_SERVER_ENTRY_ACK =  0x8f,
  HEADER_CZ_CONTACTNPC =  0x90,
  HEADER_ZC_NPCACK_MAPMOVE =  0x91,
  HEADER_ZC_NPCACK_SERVERMOVE =  0x92,
  HEADER_ZC_NPCACK_ENABLE =  0x93,
  HEADER_CZ_REQNAME =  0x94,
  HEADER_ZC_ACK_REQNAME =  0x95,
  HEADER_CZ_WHISPER =  0x96,
  HEADER_ZC_WHISPER =  0x97,
  HEADER_ZC_ACK_WHISPER =  0x98,
  HEADER_CZ_BROADCAST =  0x99,
  HEADER_ZC_BROADCAST =  0x9a,
  HEADER_CZ_CHANGE_DIRECTION =  0x9b,
  HEADER_ZC_CHANGE_DIRECTION =  0x9c,
  HEADER_ZC_ITEM_ENTRY =  0x9d,
  HEADER_ZC_ITEM_FALL_ENTRY =  0x9e,
  HEADER_CZ_ITEM_PICKUP =  0x9f,
  HEADER_ZC_ITEM_PICKUP_ACK =  0xa0,
  HEADER_ZC_ITEM_DISAPPEAR =  0xa1,
  HEADER_CZ_ITEM_THROW =  0xa2,
  HEADER_ZC_NORMAL_ITEMLIST =  0xa3,
  HEADER_ZC_EQUIPMENT_ITEMLIST =  0xa4,
  HEADER_ZC_STORE_NORMAL_ITEMLIST =  0xa5,
  HEADER_ZC_STORE_EQUIPMENT_ITEMLIST =  0xa6,
  HEADER_CZ_USE_ITEM =  0xa7,
  HEADER_ZC_USE_ITEM_ACK =  0xa8,
  HEADER_CZ_REQ_WEAR_EQUIP =  0xa9,
  HEADER_ZC_REQ_WEAR_EQUIP_ACK =  0xaa,
  HEADER_CZ_REQ_TAKEOFF_EQUIP =  0xab,
  HEADER_ZC_REQ_TAKEOFF_EQUIP_ACK =  0xac,
  HEADER_CZ_REQ_ITEM_EXPLANATION_BYNAME =  0xad,
  HEADER_ZC_REQ_ITEM_EXPLANATION_ACK =  0xae,
  HEADER_ZC_ITEM_THROW_ACK =  0xaf,
  HEADER_ZC_PAR_CHANGE =  0xb0,
  HEADER_ZC_LONGPAR_CHANGE =  0xb1,
  HEADER_CZ_RESTART =  0xb2,
  HEADER_ZC_RESTART_ACK =  0xb3,
  HEADER_ZC_SAY_DIALOG =  0xb4,
  HEADER_ZC_WAIT_DIALOG =  0xb5,
  HEADER_ZC_CLOSE_DIALOG =  0xb6,
  HEADER_ZC_MENU_LIST =  0xb7,
  HEADER_CZ_CHOOSE_MENU =  0xb8,
  HEADER_CZ_REQ_NEXT_SCRIPT =  0xb9,
  HEADER_CZ_REQ_STATUS =  0xba,
  HEADER_CZ_STATUS_CHANGE =  0xbb,
  HEADER_ZC_STATUS_CHANGE_ACK =  0xbc,
  HEADER_ZC_STATUS =  0xbd,
  HEADER_ZC_STATUS_CHANGE =  0xbe,
  HEADER_CZ_REQ_EMOTION =  0xbf,
  HEADER_ZC_EMOTION =  0xc0,
  HEADER_CZ_REQ_USER_COUNT =  0xc1,
  HEADER_ZC_USER_COUNT =  0xc2,
  HEADER_ZC_SPRITE_CHANGE =  0xc3,
  HEADER_ZC_SELECT_DEALTYPE =  0xc4,
  HEADER_CZ_ACK_SELECT_DEALTYPE =  0xc5,
  HEADER_ZC_PC_PURCHASE_ITEMLIST =  0xc6,
  HEADER_ZC_PC_SELL_ITEMLIST =  0xc7,
  HEADER_CZ_PC_PURCHASE_ITEMLIST =  0xc8,
  HEADER_CZ_PC_SELL_ITEMLIST =  0xc9,
  HEADER_ZC_PC_PURCHASE_RESULT =  0xca,
  HEADER_ZC_PC_SELL_RESULT =  0xcb,
  HEADER_CZ_DISCONNECT_CHARACTER =  0xcc,
  HEADER_ZC_ACK_DISCONNECT_CHARACTER =  0xcd,
  HEADER_CZ_DISCONNECT_ALL_CHARACTER =  0xce,
  HEADER_CZ_SETTING_WHISPER_PC =  0xcf,
  HEADER_CZ_SETTING_WHISPER_STATE =  0xd0,
  HEADER_ZC_SETTING_WHISPER_PC =  0xd1,
  HEADER_ZC_SETTING_WHISPER_STATE =  0xd2,
  HEADER_CZ_REQ_WHISPER_LIST =  0xd3,
  HEADER_ZC_WHISPER_LIST =  0xd4,
  HEADER_CZ_CREATE_CHATROOM =  0xd5,
  HEADER_ZC_ACK_CREATE_CHATROOM =  0xd6,
  HEADER_ZC_ROOM_NEWENTRY =  0xd7,
  HEADER_ZC_DESTROY_ROOM =  0xd8,
  HEADER_CZ_REQ_ENTER_ROOM =  0xd9,
  HEADER_ZC_REFUSE_ENTER_ROOM =  0xda,
  HEADER_ZC_ENTER_ROOM =  0xdb,
  HEADER_ZC_MEMBER_NEWENTRY =  0xdc,
  HEADER_ZC_MEMBER_EXIT =  0xdd,
  HEADER_CZ_CHANGE_CHATROOM =  0xde,
  HEADER_ZC_CHANGE_CHATROOM =  0xdf,
  HEADER_CZ_REQ_ROLE_CHANGE =  0xe0,
  HEADER_ZC_ROLE_CHANGE =  0xe1,
  HEADER_CZ_REQ_EXPEL_MEMBER =  0xe2,
  HEADER_CZ_EXIT_ROOM =  0xe3,
  HEADER_CZ_REQ_EXCHANGE_ITEM =  0xe4,
  HEADER_ZC_REQ_EXCHANGE_ITEM =  0xe5,
  HEADER_CZ_ACK_EXCHANGE_ITEM =  0xe6,
  HEADER_ZC_ACK_EXCHANGE_ITEM =  0xe7,
  HEADER_CZ_ADD_EXCHANGE_ITEM =  0xe8,
  HEADER_ZC_ADD_EXCHANGE_ITEM =  0xe9,
  HEADER_ZC_ACK_ADD_EXCHANGE_ITEM =  0xea,
  HEADER_CZ_CONCLUDE_EXCHANGE_ITEM =  0xeb,
  HEADER_ZC_CONCLUDE_EXCHANGE_ITEM =  0xec,
  HEADER_CZ_CANCEL_EXCHANGE_ITEM =  0xed,
  HEADER_ZC_CANCEL_EXCHANGE_ITEM =  0xee,
  HEADER_CZ_EXEC_EXCHANGE_ITEM =  0xef,
  HEADER_ZC_EXEC_EXCHANGE_ITEM =  0xf0,
  HEADER_ZC_EXCHANGEITEM_UNDO =  0xf1,
  HEADER_ZC_NOTIFY_STOREITEM_COUNTINFO =  0xf2,
  HEADER_CZ_MOVE_ITEM_FROM_BODY_TO_STORE =  0xf3,
  HEADER_ZC_ADD_ITEM_TO_STORE =  0xf4,
  HEADER_CZ_MOVE_ITEM_FROM_STORE_TO_BODY =  0xf5,
  HEADER_ZC_DELETE_ITEM_FROM_STORE =  0xf6,
  HEADER_CZ_CLOSE_STORE =  0xf7,
  HEADER_ZC_CLOSE_STORE =  0xf8,
  HEADER_CZ_MAKE_GROUP =  0xf9,
  HEADER_ZC_ACK_MAKE_GROUP =  0xfa,
  HEADER_ZC_GROUP_LIST =  0xfb,
  HEADER_CZ_REQ_JOIN_GROUP =  0xfc,
  HEADER_ZC_ACK_REQ_JOIN_GROUP =  0xfd,
  HEADER_ZC_REQ_JOIN_GROUP =  0xfe,
  HEADER_CZ_JOIN_GROUP =  0xff,
  HEADER_CZ_REQ_LEAVE_GROUP =  0x100,
  HEADER_ZC_GROUPINFO_CHANGE =  0x101,
  HEADER_CZ_CHANGE_GROUPEXPOPTION =  0x102,
  HEADER_CZ_REQ_EXPEL_GROUP_MEMBER =  0x103,
  HEADER_ZC_ADD_MEMBER_TO_GROUP =  0x104,
  HEADER_ZC_DELETE_MEMBER_FROM_GROUP =  0x105,
  HEADER_ZC_NOTIFY_HP_TO_GROUPM =  0x106,
  HEADER_ZC_NOTIFY_POSITION_TO_GROUPM =  0x107,
  HEADER_CZ_REQUEST_CHAT_PARTY =  0x108,
  HEADER_ZC_NOTIFY_CHAT_PARTY =  0x109,
  HEADER_ZC_MVP_GETTING_ITEM =  0x10a,
  HEADER_ZC_MVP_GETTING_SPECIAL_EXP =  0x10b,
  HEADER_ZC_MVP =  0x10c,
  HEADER_ZC_THROW_MVPITEM =  0x10d,
  HEADER_ZC_SKILLINFO_UPDATE =  0x10e,
  HEADER_ZC_SKILLINFO_LIST =  0x10f,
  HEADER_ZC_ACK_TOUSESKILL =  0x110,
  HEADER_ZC_ADD_SKILL =  0x111,
  HEADER_CZ_UPGRADE_SKILLLEVEL =  0x112,
  HEADER_CZ_USE_SKILL =  0x113,
  HEADER_ZC_NOTIFY_SKILL =  0x114,
  HEADER_ZC_NOTIFY_SKILL_POSITION =  0x115,
  HEADER_CZ_USE_SKILL_TOGROUND =  0x116,
  HEADER_ZC_NOTIFY_GROUNDSKILL =  0x117,
  HEADER_CZ_CANCEL_LOCKON =  0x118,
  HEADER_ZC_STATE_CHANGE =  0x119,
  HEADER_ZC_USE_SKILL =  0x11a,
  HEADER_CZ_SELECT_WARPPOINT =  0x11b,
  HEADER_ZC_WARPLIST =  0x11c,
  HEADER_CZ_REMEMBER_WARPPOINT =  0x11d,
  HEADER_ZC_ACK_REMEMBER_WARPPOINT =  0x11e,
  HEADER_ZC_SKILL_ENTRY =  0x11f,
  HEADER_ZC_SKILL_DISAPPEAR =  0x120,
  HEADER_ZC_NOTIFY_CARTITEM_COUNTINFO =  0x121,
  HEADER_ZC_CART_EQUIPMENT_ITEMLIST =  0x122,
  HEADER_ZC_CART_NORMAL_ITEMLIST =  0x123,
  HEADER_ZC_ADD_ITEM_TO_CART =  0x124,
  HEADER_ZC_DELETE_ITEM_FROM_CART =  0x125,
  HEADER_CZ_MOVE_ITEM_FROM_BODY_TO_CART =  0x126,
  HEADER_CZ_MOVE_ITEM_FROM_CART_TO_BODY =  0x127,
  HEADER_CZ_MOVE_ITEM_FROM_STORE_TO_CART =  0x128,
  HEADER_CZ_MOVE_ITEM_FROM_CART_TO_STORE =  0x129,
  HEADER_CZ_REQ_CARTOFF =  0x12a,
  HEADER_ZC_CARTOFF =  0x12b,
  HEADER_ZC_ACK_ADDITEM_TO_CART =  0x12c,
  HEADER_ZC_OPENSTORE =  0x12d,
  HEADER_CZ_REQ_CLOSESTORE =  0x12e,
  HEADER_CZ_REQ_OPENSTORE =  0x12f,
  HEADER_CZ_REQ_BUY_FROMMC =  0x130,
  HEADER_ZC_STORE_ENTRY =  0x131,
  HEADER_ZC_DISAPPEAR_ENTRY =  0x132,
  HEADER_ZC_PC_PURCHASE_ITEMLIST_FROMMC =  0x133,
  HEADER_CZ_PC_PURCHASE_ITEMLIST_FROMMC =  0x134,
  HEADER_ZC_PC_PURCHASE_RESULT_FROMMC =  0x135,
  HEADER_ZC_PC_PURCHASE_MYITEMLIST =  0x136,
  HEADER_ZC_DELETEITEM_FROM_MCSTORE =  0x137,
  HEADER_CZ_PKMODE_CHANGE =  0x138,
  HEADER_ZC_ATTACK_FAILURE_FOR_DISTANCE =  0x139,
  HEADER_ZC_ATTACK_RANGE =  0x13a,
  HEADER_ZC_ACTION_FAILURE =  0x13b,
  HEADER_ZC_EQUIP_ARROW =  0x13c,
  HEADER_ZC_RECOVERY =  0x13d,
  HEADER_ZC_USESKILL_ACK =  0x13e,
  HEADER_CZ_ITEM_CREATE =  0x13f,
  HEADER_CZ_MOVETO_MAP =  0x140,
  HEADER_ZC_COUPLESTATUS =  0x141,
  HEADER_ZC_OPEN_EDITDLG =  0x142,
  HEADER_CZ_INPUT_EDITDLG =  0x143,
  HEADER_ZC_COMPASS =  0x144,
  HEADER_ZC_SHOW_IMAGE =  0x145,
  HEADER_CZ_CLOSE_DIALOG =  0x146,
  HEADER_ZC_AUTORUN_SKILL =  0x147,
  HEADER_ZC_RESURRECTION =  0x148,
  HEADER_CZ_REQ_GIVE_MANNER_POINT =  0x149,
  HEADER_ZC_ACK_GIVE_MANNER_POINT =  0x14a,
  HEADER_ZC_NOTIFY_MANNER_POINT_GIVEN =  0x14b,
  HEADER_ZC_MYGUILD_BASIC_INFO =  0x14c,
  HEADER_CZ_REQ_GUILD_MENUINTERFACE =  0x14d,
  HEADER_ZC_ACK_GUILD_MENUINTERFACE =  0x14e,
  HEADER_CZ_REQ_GUILD_MENU =  0x14f,
  HEADER_ZC_GUILD_INFO =  0x150,
  HEADER_CZ_REQ_GUILD_EMBLEM_IMG =  0x151,
  HEADER_ZC_GUILD_EMBLEM_IMG =  0x152,
  HEADER_CZ_REGISTER_GUILD_EMBLEM_IMG =  0x153,
  HEADER_ZC_MEMBERMGR_INFO =  0x154,
  HEADER_CZ_REQ_CHANGE_MEMBERPOS =  0x155,
  HEADER_ZC_ACK_REQ_CHANGE_MEMBERS =  0x156,
  HEADER_CZ_REQ_OPEN_MEMBER_INFO =  0x157,
  HEADER_ZC_ACK_OPEN_MEMBER_INFO =  0x158,
  HEADER_CZ_REQ_LEAVE_GUILD =  0x159,
  HEADER_ZC_ACK_LEAVE_GUILD =  0x15a,
  HEADER_CZ_REQ_BAN_GUILD =  0x15b,
  HEADER_ZC_ACK_BAN_GUILD =  0x15c,
  HEADER_CZ_REQ_DISORGANIZE_GUILD =  0x15d,
  HEADER_ZC_ACK_DISORGANIZE_GUILD_RESULT =  0x15e,
  HEADER_ZC_ACK_DISORGANIZE_GUILD =  0x15f,
  HEADER_ZC_POSITION_INFO =  0x160,
  HEADER_CZ_REG_CHANGE_GUILD_POSITIONINFO =  0x161,
  HEADER_ZC_GUILD_SKILLINFO =  0x162,
  HEADER_ZC_BAN_LIST =  0x163,
  HEADER_ZC_OTHER_GUILD_LIST =  0x164,
  HEADER_CZ_REQ_MAKE_GUILD =  0x165,
  HEADER_ZC_POSITION_ID_NAME_INFO =  0x166,
  HEADER_ZC_RESULT_MAKE_GUILD =  0x167,
  HEADER_CZ_REQ_JOIN_GUILD =  0x168,
  HEADER_ZC_ACK_REQ_JOIN_GUILD =  0x169,
  HEADER_ZC_REQ_JOIN_GUILD =  0x16a,
  HEADER_CZ_JOIN_GUILD =  0x16b,
  HEADER_ZC_UPDATE_GDID =  0x16c,
  HEADER_ZC_UPDATE_CHARSTAT =  0x16d,
  HEADER_CZ_GUILD_NOTICE =  0x16e,
  HEADER_ZC_GUILD_NOTICE =  0x16f,
  HEADER_CZ_REQ_ALLY_GUILD =  0x170,
  HEADER_ZC_REQ_ALLY_GUILD =  0x171,
  HEADER_CZ_ALLY_GUILD =  0x172,
  HEADER_ZC_ACK_REQ_ALLY_GUILD =  0x173,
  HEADER_ZC_ACK_CHANGE_GUILD_POSITIONINFO =  0x174,
  HEADER_CZ_REQ_GUILD_MEMBER_INFO =  0x175,
  HEADER_ZC_ACK_GUILD_MEMBER_INFO =  0x176,
  HEADER_ZC_ITEMIDENTIFY_LIST =  0x177,
  HEADER_CZ_REQ_ITEMIDENTIFY =  0x178,
  HEADER_ZC_ACK_ITEMIDENTIFY =  0x179,
  HEADER_CZ_REQ_ITEMCOMPOSITION_LIST =  0x17a,
  HEADER_ZC_ITEMCOMPOSITION_LIST =  0x17b,
  HEADER_CZ_REQ_ITEMCOMPOSITION =  0x17c,
  HEADER_ZC_ACK_ITEMCOMPOSITION =  0x17d,
  HEADER_CZ_GUILD_CHAT =  0x17e,
  HEADER_ZC_GUILD_CHAT =  0x17f,
  HEADER_CZ_REQ_HOSTILE_GUILD =  0x180,
  HEADER_ZC_ACK_REQ_HOSTILE_GUILD =  0x181,
  HEADER_ZC_MEMBER_ADD =  0x182,
  HEADER_CZ_REQ_DELETE_RELATED_GUILD =  0x183,
  HEADER_ZC_DELETE_RELATED_GUILD =  0x184,
  HEADER_ZC_ADD_RELATED_GUILD =  0x185,
  HEADER_COLLECTORDEAD =  0x186,
  HEADER_PING =  0x187,
  HEADER_ZC_ACK_ITEMREFINING =  0x188,
  HEADER_ZC_NOTIFY_MAPINFO =  0x189,
  HEADER_CZ_REQ_DISCONNECT =  0x18a,
  HEADER_ZC_ACK_REQ_DISCONNECT =  0x18b,
  HEADER_ZC_MONSTER_INFO =  0x18c,
  HEADER_ZC_MAKABLEITEMLIST =  0x18d,
  HEADER_CZ_REQMAKINGITEM =  0x18e,
  HEADER_ZC_ACK_REQMAKINGITEM =  0x18f,
  HEADER_CZ_USE_SKILL_TOGROUND_WITHTALKBOX =  0x190,
  HEADER_ZC_TALKBOX_CHATCONTENTS =  0x191,
  HEADER_ZC_UPDATE_MAPINFO =  0x192,
  HEADER_CZ_REQNAME_BYGID =  0x193,
  HEADER_ZC_ACK_REQNAME_BYGID =  0x194,
  HEADER_ZC_ACK_REQNAMEALL =  0x195,
  HEADER_ZC_MSG_STATE_CHANGE =  0x196,
  HEADER_CZ_RESET =  0x197,
  HEADER_CZ_CHANGE_MAPTYPE =  0x198,
  HEADER_ZC_NOTIFY_MAPPROPERTY =  0x199,
  HEADER_ZC_NOTIFY_RANKING =  0x19a,
  HEADER_ZC_NOTIFY_EFFECT =  0x19b,
  HEADER_CZ_LOCALBROADCAST =  0x19c,
  HEADER_CZ_CHANGE_EFFECTSTATE =  0x19d,
  HEADER_ZC_START_CAPTURE =  0x19e,
  HEADER_CZ_TRYCAPTURE_MONSTER =  0x19f,
  HEADER_ZC_TRYCAPTURE_MONSTER =  0x1a0,
  HEADER_CZ_COMMAND_PET =  0x1a1,
  HEADER_ZC_PROPERTY_PET =  0x1a2,
  HEADER_ZC_FEED_PET =  0x1a3,
  HEADER_ZC_CHANGESTATE_PET =  0x1a4,
  HEADER_CZ_RENAME_PET =  0x1a5,
  HEADER_ZC_PETEGG_LIST =  0x1a6,
  HEADER_CZ_SELECT_PETEGG =  0x1a7,
  HEADER_CZ_PETEGG_INFO =  0x1a8,
  HEADER_CZ_PET_ACT =  0x1a9,
  HEADER_ZC_PET_ACT =  0x1aa,
  HEADER_ZC_PAR_CHANGE_USER =  0x1ab,
  HEADER_ZC_SKILL_UPDATE =  0x1ac,
  HEADER_ZC_MAKINGARROW_LIST =  0x1ad,
  HEADER_CZ_REQ_MAKINGARROW =  0x1ae,
  HEADER_CZ_REQ_CHANGECART =  0x1af,
  HEADER_ZC_NPCSPRITE_CHANGE =  0x1b0,
  HEADER_ZC_SHOWDIGIT =  0x1b1,
  HEADER_CZ_REQ_OPENSTORE2 =  0x1b2,
  HEADER_ZC_SHOW_IMAGE2 =  0x1b3,
  HEADER_ZC_CHANGE_GUILD =  0x1b4,
  HEADER_SC_BILLING_INFO =  0x1b5,
  HEADER_ZC_GUILD_INFO2 =  0x1b6,
  HEADER_CZ_GUILD_ZENY =  0x1b7,
  HEADER_ZC_GUILD_ZENY_ACK =  0x1b8,
  HEADER_ZC_DISPEL =  0x1b9,
  HEADER_CZ_REMOVE_AID =  0x1ba,
  HEADER_CZ_SHIFT =  0x1bb,
  HEADER_CZ_RECALL =  0x1bc,
  HEADER_CZ_RECALL_GID =  0x1bd,
  HEADER_AC_ASK_PNGAMEROOM =  0x1be,
  HEADER_CA_REPLY_PNGAMEROOM =  0x1bf,
  HEADER_CZ_REQ_REMAINTIME =  0x1c0,
  HEADER_ZC_REPLY_REMAINTIME =  0x1c1,
  HEADER_ZC_INFO_REMAINTIME =  0x1c2,
  HEADER_ZC_BROADCAST2 =  0x1c3,
  HEADER_ZC_ADD_ITEM_TO_STORE2 =  0x1c4,
  HEADER_ZC_ADD_ITEM_TO_CART2 =  0x1c5,
  HEADER_CS_REQ_ENCRYPTION =  0x1c6,
  HEADER_SC_ACK_ENCRYPTION =  0x1c7,
  HEADER_ZC_USE_ITEM_ACK2 =  0x1c8,
  HEADER_ZC_SKILL_ENTRY2 =  0x1c9,
  HEADER_CZ_REQMAKINGHOMUN =  0x1ca,
  HEADER_CZ_MONSTER_TALK =  0x1cb,
  HEADER_ZC_MONSTER_TALK =  0x1cc,
  HEADER_ZC_AUTOSPELLLIST =  0x1cd,
  HEADER_CZ_SELECTAUTOSPELL =  0x1ce,
  HEADER_ZC_DEVOTIONLIST =  0x1cf,
  HEADER_ZC_SPIRITS =  0x1d0,
  HEADER_ZC_BLADESTOP =  0x1d1,
  HEADER_ZC_COMBODELAY =  0x1d2,
  HEADER_ZC_SOUND =  0x1d3,
  HEADER_ZC_OPEN_EDITDLGSTR =  0x1d4,
  HEADER_CZ_INPUT_EDITDLGSTR =  0x1d5,
  HEADER_ZC_NOTIFY_MAPPROPERTY2 =  0x1d6,
  HEADER_ZC_SPRITE_CHANGE2 =  0x1d7,
  HEADER_ZC_NOTIFY_STANDENTRY2 =  0x1d8,
  HEADER_ZC_NOTIFY_NEWENTRY2 =  0x1d9,
  HEADER_ZC_NOTIFY_MOVEENTRY2 =  0x1da,
  HEADER_CA_REQ_HASH =  0x1db,
  HEADER_AC_ACK_HASH =  0x1dc,
  HEADER_CA_LOGIN2 =  0x1dd,
  HEADER_ZC_NOTIFY_SKILL2 =  0x1de,
  HEADER_CZ_REQ_ACCOUNTNAME =  0x1df,
  HEADER_ZC_ACK_ACCOUNTNAME =  0x1e0,
  HEADER_ZC_SPIRITS2 =  0x1e1,
  HEADER_ZC_REQ_COUPLE =  0x1e2,
  HEADER_CZ_JOIN_COUPLE =  0x1e3,
  HEADER_ZC_START_COUPLE =  0x1e4,
  HEADER_CZ_REQ_JOIN_COUPLE =  0x1e5,
  HEADER_ZC_COUPLENAME =  0x1e6,
  HEADER_CZ_DORIDORI =  0x1e7,
  HEADER_CZ_MAKE_GROUP2 =  0x1e8,
  HEADER_ZC_ADD_MEMBER_TO_GROUP2 =  0x1e9,
  HEADER_ZC_CONGRATULATION =  0x1ea,
  HEADER_ZC_NOTIFY_POSITION_TO_GUILDM =  0x1eb,
  HEADER_ZC_GUILD_MEMBER_MAP_CHANGE =  0x1ec,
  HEADER_CZ_CHOPOKGI =  0x1ed,
  HEADER_ZC_NORMAL_ITEMLIST2 =  0x1ee,
  HEADER_ZC_CART_NORMAL_ITEMLIST2 =  0x1ef,
  HEADER_ZC_STORE_NORMAL_ITEMLIST2 =  0x1f0,
  HEADER_AC_NOTIFY_ERROR =  0x1f1,
  HEADER_ZC_UPDATE_CHARSTAT2 =  0x1f2,
  HEADER_ZC_NOTIFY_EFFECT2 =  0x1f3,
  HEADER_ZC_REQ_EXCHANGE_ITEM2 =  0x1f4,
  HEADER_ZC_ACK_EXCHANGE_ITEM2 =  0x1f5,
  HEADER_ZC_REQ_BABY =  0x1f6,
  HEADER_CZ_JOIN_BABY =  0x1f7,
  HEADER_ZC_START_BABY =  0x1f8,
  HEADER_CZ_REQ_JOIN_BABY =  0x1f9,
  HEADER_CA_LOGIN3 =  0x1fa,
  HEADER_CH_DELETE_CHAR2 =  0x1fb,
  HEADER_ZC_REPAIRITEMLIST =  0x1fc,
  HEADER_CZ_REQ_ITEMREPAIR =  0x1fd,
  HEADER_ZC_ACK_ITEMREPAIR =  0x1fe,
  HEADER_ZC_HIGHJUMP =  0x1ff,
  HEADER_CA_CONNECT_INFO_CHANGED =  0x200,
  HEADER_ZC_FRIENDS_LIST =  0x201,
  HEADER_CZ_ADD_FRIENDS =  0x202,
  HEADER_CZ_DELETE_FRIENDS =  0x203,
  HEADER_CA_EXE_HASHCHECK =  0x204,
  HEADER_ZC_DIVORCE =  0x205,
  HEADER_ZC_FRIENDS_STATE =  0x206,
  HEADER_ZC_REQ_ADD_FRIENDS =  0x207,
  HEADER_CZ_ACK_REQ_ADD_FRIENDS =  0x208,
  HEADER_ZC_ADD_FRIENDS_LIST =  0x209,
  HEADER_ZC_DELETE_FRIENDS =  0x20a,
  HEADER_CH_EXE_HASHCHECK =  0x20b,
  HEADER_CZ_EXE_HASHCHECK =  0x20c,
  HEADER_HC_BLOCK_CHARACTER =  0x20d,
  HEADER_ZC_STARSKILL =  0x20e,
  HEADER_CZ_REQ_PVPPOINT =  0x20f,
  HEADER_ZC_ACK_PVPPOINT =  0x210,
  HEADER_ZH_MOVE_PVPWORLD =  0x211,
  HEADER_CZ_REQ_GIVE_MANNER_BYNAME =  0x212,
  HEADER_CZ_REQ_STATUS_GM =  0x213,
  HEADER_ZC_ACK_STATUS_GM =  0x214,
  HEADER_ZC_SKILLMSG =  0x215,
  HEADER_ZC_BABYMSG =  0x216,
  HEADER_CZ_BLACKSMITH_RANK =  0x217,
  HEADER_CZ_ALCHEMIST_RANK =  0x218,
  HEADER_ZC_BLACKSMITH_RANK =  0x219,
  HEADER_ZC_ALCHEMIST_RANK =  0x21a,
  HEADER_ZC_BLACKSMITH_POINT =  0x21b,
  HEADER_ZC_ALCHEMIST_POINT =  0x21c,
  HEADER_CZ_LESSEFFECT =  0x21d,
  HEADER_ZC_LESSEFFECT =  0x21e,
  HEADER_ZC_NOTIFY_PKINFO =  0x21f,
  HEADER_ZC_NOTIFY_CRAZYKILLER =  0x220,
  HEADER_ZC_NOTIFY_WEAPONITEMLIST =  0x221,
  HEADER_CZ_REQ_WEAPONREFINE =  0x222,
  HEADER_ZC_ACK_WEAPONREFINE =  0x223,
  HEADER_ZC_TAEKWON_POINT =  0x224,
  HEADER_CZ_TAEKWON_RANK =  0x225,
  HEADER_ZC_TAEKWON_RANK =  0x226,
  HEADER_ZC_GAME_GUARD =  0x227,
  HEADER_CZ_ACK_GAME_GUARD =  0x228,
  HEADER_ZC_STATE_CHANGE3 =  0x229,
  HEADER_ZC_NOTIFY_STANDENTRY3 =  0x22a,
  HEADER_ZC_NOTIFY_NEWENTRY3 =  0x22b,
  HEADER_ZC_NOTIFY_MOVEENTRY3 =  0x22c,
  HEADER_CZ_COMMAND_MER =  0x22d,
  HEADER_ZC_PROPERTY_HOMUN =  0x22e,
  HEADER_ZC_FEED_MER =  0x22f,
  HEADER_ZC_CHANGESTATE_MER =  0x230,
  HEADER_CZ_RENAME_MER =  0x231,
  HEADER_CZ_REQUEST_MOVENPC =  0x232,
  HEADER_CZ_REQUEST_ACTNPC =  0x233,
  HEADER_CZ_REQUEST_MOVETOOWNER =  0x234,
  HEADER_ZC_HOSKILLINFO_LIST =  0x235,
  HEADER_ZC_KILLER_POINT =  0x236,
  HEADER_CZ_KILLER_RANK =  0x237,
  HEADER_ZC_KILLER_RANK =  0x238,
  HEADER_ZC_HOSKILLINFO_UPDATE =  0x239,
  HEADER_ZC_REQ_STORE_PASSWORD =  0x23a,
  HEADER_CZ_ACK_STORE_PASSWORD =  0x23b,
  HEADER_ZC_RESULT_STORE_PASSWORD =  0x23c,
  HEADER_AC_EVENT_RESULT =  0x23d,
  HEADER_HC_REQUEST_CHARACTER_PASSWORD =  0x23e,
  HEADER_CZ_MAIL_GET_LIST =  0x23f,
  HEADER_ZC_MAIL_REQ_GET_LIST =  0x240,
  HEADER_CZ_MAIL_OPEN =  0x241,
  HEADER_ZC_MAIL_REQ_OPEN =  0x242,
  HEADER_CZ_MAIL_DELETE =  0x243,
  HEADER_CZ_MAIL_GET_ITEM =  0x244,
  HEADER_ZC_MAIL_REQ_GET_ITEM =  0x245,
  HEADER_CZ_MAIL_RESET_ITEM =  0x246,
  HEADER_CZ_MAIL_ADD_ITEM =  0x247,
  HEADER_CZ_MAIL_SEND =  0x248,
  HEADER_ZC_MAIL_REQ_SEND =  0x249,
  HEADER_ZC_MAIL_RECEIVE =  0x24a,
  HEADER_CZ_AUCTION_CREATE =  0x24b,
  HEADER_CZ_AUCTION_ADD_ITEM =  0x24c,
  HEADER_CZ_AUCTION_ADD =  0x24d,
  HEADER_CZ_AUCTION_ADD_CANCEL =  0x24e,
  HEADER_CZ_AUCTION_BUY =  0x24f,
  HEADER_ZC_AUCTION_RESULT =  0x250,
  HEADER_CZ_AUCTION_ITEM_SEARCH =  0x251,
  HEADER_ZC_AUCTION_ITEM_REQ_SEARCH =  0x252,
  HEADER_ZC_STARPLACE =  0x253,
  HEADER_CZ_AGREE_STARPLACE =  0x254,
  HEADER_ZC_ACK_MAIL_ADD_ITEM =  0x255,
  HEADER_ZC_ACK_AUCTION_ADD_ITEM =  0x256,
  HEADER_ZC_ACK_MAIL_DELETE =  0x257,
  HEADER_CA_REQ_GAME_GUARD_CHECK =  0x258,
  HEADER_AC_ACK_GAME_GUARD =  0x259,
  HEADER_ZC_MAKINGITEM_LIST =  0x25a,
  HEADER_CZ_REQ_MAKINGITEM =  0x25b,
  HEADER_CZ_AUCTION_REQ_MY_INFO =  0x25c,
  HEADER_CZ_AUCTION_REQ_MY_SELL_STOP =  0x25d,
  HEADER_ZC_AUCTION_ACK_MY_SELL_STOP =  0x25e,
  HEADER_ZC_AUCTION_WINDOWS =  0x25f,
  HEADER_ZC_MAIL_WINDOWS =  0x260,
  HEADER_AC_REQ_LOGIN_OLDEKEY =  0x261,
  HEADER_AC_REQ_LOGIN_NEWEKEY =  0x262,
  HEADER_AC_REQ_LOGIN_CARDPASS =  0x263,
  HEADER_CA_ACK_LOGIN_OLDEKEY =  0x264,
  HEADER_CA_ACK_LOGIN_NEWEKEY =  0x265,
  HEADER_CA_ACK_LOGIN_CARDPASS =  0x266,
  HEADER_AC_ACK_EKEY_FAIL_NOTEXIST =  0x267,
  HEADER_AC_ACK_EKEY_FAIL_NOTUSESEKEY =  0x268,
  HEADER_AC_ACK_EKEY_FAIL_NOTUSEDEKEY =  0x269,
  HEADER_AC_ACK_EKEY_FAIL_AUTHREFUSE =  0x26a,
  HEADER_AC_ACK_EKEY_FAIL_INPUTEKEY =  0x26b,
  HEADER_AC_ACK_EKEY_FAIL_NOTICE =  0x26c,
  HEADER_AC_ACK_EKEY_FAIL_NEEDCARDPASS =  0x26d,
  HEADER_AC_ACK_AUTHEKEY_FAIL_NOTMATCHCARDPASS =  0x26e,
  HEADER_AC_ACK_FIRST_LOGIN =  0x26f,
  HEADER_AC_REQ_LOGIN_ACCOUNT_INFO =  0x270,
  HEADER_CA_ACK_LOGIN_ACCOUNT_INFO =  0x271,
  HEADER_AC_ACK_PT_ID_INFO =  0x272,
  HEADER_CZ_REQ_MAIL_RETURN =  0x273,
  HEADER_ZC_ACK_MAIL_RETURN =  0x274,
  HEADER_CH_ENTER2 =  0x275,
  HEADER_AC_ACCEPT_LOGIN2 =  0x276,
  HEADER_CA_LOGIN_PCBANG =  0x277,
  HEADER_ZC_NOTIFY_PCBANG =  0x278,
  HEADER_CZ_HUNTINGLIST =  0x279,
  HEADER_ZC_HUNTINGLIST =  0x27a,
  HEADER_ZC_PCBANG_EFFECT =  0x27b,
  HEADER_CA_LOGIN4 =  0x27c,
  HEADER_ZC_PROPERTY_MERCE =  0x27d,
  HEADER_ZC_SHANDA_PROTECT =  0x27e,
  HEADER_CA_CLIENT_TYPE =  0x27f,
  HEADER_ZC_GANGSI_POINT =  0x280,
  HEADER_CZ_GANGSI_RANK =  0x281,
  HEADER_ZC_GANGSI_RANK =  0x282,
  HEADER_ZC_AID =  0x283,
  HEADER_ZC_NOTIFY_EFFECT3 =  0x284,
  HEADER_ZC_DEATH_QUESTION =  0x285,
  HEADER_CZ_DEATH_QUESTION =  0x286,
  HEADER_ZC_PC_CASH_POINT_ITEMLIST =  0x287,
  HEADER_CZ_PC_BUY_CASH_POINT_ITEM =  0x288,
  HEADER_ZC_PC_CASH_POINT_UPDATE =  0x289,
  HEADER_ZC_NPC_SHOWEFST_UPDATE =  0x28a,
  HEADER_HC_CHARNOTBEENSELECTED =  0x28b,
  HEADER_CH_SELECT_CHAR_GOINGTOBEUSED =  0x28c,
  HEADER_CH_REQ_IS_VALID_CHARNAME =  0x28d,
  HEADER_HC_ACK_IS_VALID_CHARNAME =  0x28e,
  HEADER_CH_REQ_CHANGE_CHARNAME =  0x28f,
  HEADER_HC_ACK_CHANGE_CHARNAME =  0x290,
  HEADER_ZC_MSG =  0x291,
  HEADER_CZ_STANDING_RESURRECTION =  0x292,
  HEADER_ZC_BOSS_INFO =  0x293,
  HEADER_ZC_READ_BOOK =  0x294,
  HEADER_ZC_EQUIPMENT_ITEMLIST2 =  0x295,
  HEADER_ZC_STORE_EQUIPMENT_ITEMLIST2 =  0x296,
  HEADER_ZC_CART_EQUIPMENT_ITEMLIST2 =  0x297,
  HEADER_ZC_CASH_TIME_COUNTER =  0x298,
  HEADER_ZC_CASH_ITEM_DELETE =  0x299,
  HEADER_ZC_ITEM_PICKUP_ACK2 =  0x29a,
  HEADER_ZC_MER_INIT =  0x29b,
  HEADER_ZC_MER_PROPERTY =  0x29c,
  HEADER_ZC_MER_SKILLINFO_LIST =  0x29d,
  HEADER_ZC_MER_SKILLINFO_UPDATE =  0x29e,
  HEADER_CZ_MER_COMMAND =  0x29f,
  UNUSED_HEADER_CZ_MER_USE_SKILL =  0x2a0,
  UNUSED_HEADER_CZ_MER_UPGRADE_SKILLLEVEL =  0x2a1,
  HEADER_ZC_MER_PAR_CHANGE =  0x2a2,
  HEADER_ZC_GAMEGUARD_LINGO_KEY =  0x2a3,
  HEADER_CZ_GAMEGUARD_LINGO_READY =  0x2a4,
  HEADER_CZ_KSY_EVENT =  0x2a5,
  HEADER_ZC_HACKSH_CPX_MSG =  0x2a6,
  HEADER_CZ_HACKSH_CPX_MSG =  0x2a7,
  HEADER_ZC_HACKSHIELD_CRC_MSG =  0x2a8,
  HEADER_CZ_HACKSHIELD_CRC_MSG =  0x2a9,
  HEADER_ZC_REQ_CASH_PASSWORD =  0x2aa,
  HEADER_CZ_ACK_CASH_PASSWORD =  0x2ab,
  HEADER_ZC_RESULT_CASH_PASSWORD =  0x2ac,
  HEADER_AC_REQUEST_SECOND_PASSWORD =  0x2ad,
  HEADER_ZC_SRPACKET_INIT =  0x2ae,
  HEADER_CZ_SRPACKET_START =  0x2af,
  HEADER_CA_LOGIN_CHANNEL =  0x2b0,
  HEADER_ZC_ALL_QUEST_LIST =  0x2b1,
  HEADER_ZC_ALL_QUEST_MISSION =  0x2b2,
  HEADER_ZC_ADD_QUEST =  0x2b3,
  HEADER_ZC_DEL_QUEST =  0x2b4,
  HEADER_ZC_UPDATE_MISSION_HUNT =  0x2b5,
  HEADER_CZ_ACTIVE_QUEST =  0x2b6,
  HEADER_ZC_ACTIVE_QUEST =  0x2b7,
  HEADER_ZC_ITEM_PICKUP_PARTY =  0x2b8,
  HEADER_ZC_SHORTCUT_KEY_LIST =  0x2b9,
  HEADER_CZ_SHORTCUT_KEY_CHANGE =  0x2ba,
  HEADER_ZC_EQUIPITEM_DAMAGED =  0x2bb,
  HEADER_ZC_NOTIFY_PCBANG_PLAYING_TIME =  0x2bc,
  HEADER_ZC_SRCRYPTOR2_INIT =  0x2bd,
  HEADER_CZ_SRCRYPTOR2_START =  0x2be,
  HEADER_ZC_SRPACKETR2_INIT =  0x2bf,
  HEADER_CZ_SRPACKETR2_START =  0x2c0,
  HEADER_ZC_NPC_CHAT =  0x2c1,
  HEADER_ZC_FORMATSTRING_MSG =  0x2c2,
  UNUSED_HEADER_CZ_FORMATSTRING_MSG_RES =  0x2c3,
  HEADER_CZ_PARTY_JOIN_REQ =  0x2c4,
  HEADER_ZC_PARTY_JOIN_REQ_ACK =  0x2c5,
  HEADER_ZC_PARTY_JOIN_REQ =  0x2c6,
  HEADER_CZ_PARTY_JOIN_REQ_ACK =  0x2c7,
  HEADER_CZ_PARTY_CONFIG =  0x2c8,
  HEADER_ZC_PARTY_CONFIG =  0x2c9,
  HEADER_HC_REFUSE_SELECTCHAR =  0x2ca,
  HEADER_ZC_MEMORIALDUNGEON_SUBSCRIPTION_INFO =  0x2cb,
  HEADER_ZC_MEMORIALDUNGEON_SUBSCRIPTION_NOTIFY =  0x2cc,
  HEADER_ZC_MEMORIALDUNGEON_INFO =  0x2cd,
  HEADER_ZC_MEMORIALDUNGEON_NOTIFY =  0x2ce,
  HEADER_CZ_MEMORIALDUNGEON_COMMAND =  0x2cf,
  HEADER_ZC_EQUIPMENT_ITEMLIST3 =  0x2d0,
  HEADER_ZC_STORE_EQUIPMENT_ITEMLIST3 =  0x2d1,
  HEADER_ZC_CART_EQUIPMENT_ITEMLIST3 =  0x2d2,
  HEADER_ZC_NOTIFY_BIND_ON_EQUIP =  0x2d3,
  HEADER_ZC_ITEM_PICKUP_ACK3 =  0x2d4,
  HEADER_ZC_ISVR_DISCONNECT =  0x2d5,
  HEADER_CZ_EQUIPWIN_MICROSCOPE =  0x2d6,
  HEADER_ZC_EQUIPWIN_MICROSCOPE =  0x2d7,
  HEADER_CZ_CONFIG =  0x2d8,
  HEADER_ZC_CONFIG =  0x2d9,
  HEADER_ZC_CONFIG_NOTIFY =  0x2da,
  HEADER_CZ_BATTLEFIELD_CHAT =  0x2db,
  HEADER_ZC_BATTLEFIELD_CHAT =  0x2dc,
  HEADER_ZC_BATTLEFIELD_NOTIFY_CAMPINFO =  0x2dd,
  HEADER_ZC_BATTLEFIELD_NOTIFY_POINT =  0x2de,
  HEADER_ZC_BATTLEFIELD_NOTIFY_POSITION =  0x2df,
  HEADER_ZC_BATTLEFIELD_NOTIFY_HP =  0x2e0,
  HEADER_ZC_NOTIFY_ACT2 =  0x2e1,
  HEADER_CZ_USE_ITEM_NEW_JAPEN =  0x2e2,
  HEADER_CZ_USE_SKILL_NEW_JAPEN =  0x2e3,
  HEADER_CZ_ITEM_PICKUP_NEW_JAPEN =  0x2e4,
  HEADER_CZ_REQUEST_MOVE_NEW_JAPEN =  0x2e5,
  HEADER_CZ_BOT_CHECK =  0x2e6,
  HEADER_ZC_MAPPROPERTY =  0x2e7,
  HEADER_ZC_NORMAL_ITEMLIST3 =  0x2e8,
  HEADER_ZC_CART_NORMAL_ITEMLIST3 =  0x2e9,
  HEADER_ZC_STORE_NORMAL_ITEMLIST3 =  0x2ea,
  HEADER_ZC_ACCEPT_ENTER2 =  0x2eb,
  HEADER_ZC_NOTIFY_MOVEENTRY4 =  0x2ec,
  HEADER_ZC_NOTIFY_NEWENTRY4 =  0x2ed,
  HEADER_ZC_NOTIFY_STANDENTRY4 =  0x2ee,
  HEADER_ZC_NOTIFY_FONT =  0x2ef,
  HEADER_ZC_PROGRESS =  0x2f0,
  HEADER_CZ_PROGRESS =  0x2f1,
  HEADER_ZC_PROGRESS_CANCEL =  0x2f2,
  HEADER_ZC_ITEM_FALL_ENTRY2 =  0x2f3,
  HEADER_ZC_ITEM_FALL_ENTRY2__M1 =  0x2f4,
  HEADER_ZC_ITEM_FALL_ENTRY2__M2 =  0x2f5,
  HEADER_ZC_ITEM_FALL_ENTRY2__M3 =  0x2f6,
  HEADER_ZC_ITEM_FALL_ENTRY2__M4 =  0x2f7,
  HEADER_ZC_ITEM_FALL_ENTRY2__M5 =  0x2f8,
  HEADER_ZC_ITEM_FALL_ENTRY2__M6 =  0x2f9,
  HEADER_ZC_NOTIFY_MOVEENTRY5 =  0x2fa,
  HEADER_ZC_NOTIFY_MOVEENTRY5__M1 =  0x2fb,
  HEADER_ZC_NOTIFY_MOVEENTRY5__M2 =  0x2fc,
  HEADER_ZC_NOTIFY_MOVEENTRY5__M3 =  0x2fd,
  HEADER_ZC_NOTIFY_MOVEENTRY5__M4 =  0x2fe,
  HEADER_ZC_NOTIFY_MOVEENTRY5__M5 =  0x2ff,
  HEADER_ZC_NOTIFY_MOVEENTRY5__M6 =  0x300,
  HEADER_ZC_NOTIFY_NPC_STANDENTRY =  0x301,
  HEADER_ZC_NOTIFY_NPC_STANDENTRY__M1 =  0x302,
  HEADER_ZC_NOTIFY_NPC_STANDENTRY__M2 =  0x303,
  HEADER_ZC_NOTIFY_NPC_STANDENTRY__M3 =  0x304,
  HEADER_ZC_NOTIFY_NPC_STANDENTRY__M4 =  0x305,
  HEADER_ZC_NOTIFY_NPC_STANDENTRY__M5 =  0x306,
  HEADER_ZC_NOTIFY_NPC_STANDENTRY__M6 =  0x307,
  HEADER_ZC_REASSEMBLY_CERTIFY =  0x308,
  HEADER_ZC_REASSEMBLY_CERTIFY__M01 =  0x309,
  HEADER_ZC_REASSEMBLY_CERTIFY__M02 =  0x30a,
  HEADER_ZC_REASSEMBLY_CERTIFY__M03 =  0x30b,
  HEADER_ZC_REASSEMBLY_CERTIFY__M04 =  0x30c,
  HEADER_ZC_REASSEMBLY_CERTIFY__M05 =  0x30d,
  HEADER_ZC_REASSEMBLY_CERTIFY__M06 =  0x30e,
  HEADER_ZC_REASSEMBLY_CERTIFY__M07 =  0x30f,
  HEADER_ZC_REASSEMBLY_CERTIFY__M08 =  0x310,
  HEADER_ZC_REASSEMBLY_CERTIFY__M09 =  0x311,
  HEADER_ZC_REASSEMBLY_CERTIFY__M10 =  0x312,
  HEADER_ZC_REASSEMBLY_CERTIFY__M11 =  0x313,
  HEADER_ZC_REASSEMBLY_CERTIFY__M12 =  0x314,
  HEADER_ZC_REASSEMBLY_CERTIFY__M13 =  0x315,
  HEADER_ZC_REASSEMBLY_CERTIFY__M14 =  0x316,
  HEADER_ZC_REASSEMBLY_CERTIFY__M15 =  0x317,
  HEADER_ZC_REASSEMBLY_CERTIFY__M16 =  0x318,
  HEADER_ZC_REASSEMBLY_CERTIFY__M17 =  0x319,
  HEADER_ZC_REASSEMBLY_CERTIFY__M18 =  0x31a,
  HEADER_ZC_REASSEMBLY_CERTIFY__M19 =  0x31b,
  HEADER_ZC_REASSEMBLY_CERTIFY__M20 =  0x31c,
  HEADER_ZC_REASSEMBLY_CERTIFY__M21 =  0x31d,
  HEADER_ZC_REASSEMBLY_CERTIFY__M22 =  0x31e,
  HEADER_ZC_REASSEMBLY_CERTIFY__M23 =  0x31f,
  HEADER_ZC_REASSEMBLY_CERTIFY__M24 =  0x320,
  HEADER_ZC_REASSEMBLY_CERTIFY__M25 =  0x321,
  HEADER_ZC_REASSEMBLY_CERTIFY__M26 =  0x322,
  HEADER_ZC_REASSEMBLY_CERTIFY__M27 =  0x323,
  HEADER_ZC_REASSEMBLY_CERTIFY__M28 =  0x324,
  HEADER_ZC_REASSEMBLY_CERTIFY__M29 =  0x325,
  HEADER_ZC_REASSEMBLY_CERTIFY__M30 =  0x326,
  HEADER_ZC_REASSEMBLY_CERTIFY__M31 =  0x327,
  HEADER_ZC_REASSEMBLY_CERTIFY__M32 =  0x328,
  HEADER_ZC_REASSEMBLY_CERTIFY__M33 =  0x329,
  HEADER_ZC_REASSEMBLY_CERTIFY__M34 =  0x32a,
  HEADER_ZC_REASSEMBLY_CERTIFY__M35 =  0x32b,
  HEADER_ZC_REASSEMBLY_CERTIFY__M36 =  0x32c,
  HEADER_ZC_REASSEMBLY_CERTIFY__M37 =  0x32d,
  HEADER_ZC_REASSEMBLY_CERTIFY__M38 =  0x32e,
  HEADER_ZC_REASSEMBLY_CERTIFY__M39 =  0x32f,
  HEADER_ZC_REASSEMBLY_CERTIFY__M40 =  0x330,
  HEADER_ZC_REASSEMBLY_CERTIFY__M41 =  0x331,
  HEADER_CZ_REASSEMBLY_IDENTITY =  0x332,
  HEADER_CZ_REASSEMBLY_IDENTITY__M01 =  0x333,
  HEADER_CZ_REASSEMBLY_IDENTITY__M02 =  0x334,
  HEADER_CZ_REASSEMBLY_IDENTITY__M03 =  0x335,
  HEADER_CZ_REASSEMBLY_IDENTITY__M04 =  0x336,
  HEADER_CZ_REASSEMBLY_IDENTITY__M05 =  0x337,
  HEADER_CZ_REASSEMBLY_IDENTITY__M06 =  0x338,
  HEADER_CZ_REASSEMBLY_IDENTITY__M07 =  0x339,
  HEADER_CZ_REASSEMBLY_IDENTITY__M08 =  0x33a,
  HEADER_CZ_REASSEMBLY_IDENTITY__M09 =  0x33b,
  HEADER_CZ_REASSEMBLY_IDENTITY__M10 =  0x33c,
  HEADER_CZ_REASSEMBLY_IDENTITY__M11 =  0x33d,
  HEADER_CZ_REASSEMBLY_IDENTITY__M12 =  0x33e,
  HEADER_CZ_REASSEMBLY_IDENTITY__M13 =  0x33f,
  HEADER_CZ_REASSEMBLY_IDENTITY__M14 =  0x340,
  HEADER_CZ_REASSEMBLY_IDENTITY__M15 =  0x341,
  HEADER_CZ_REASSEMBLY_IDENTITY__M16 =  0x342,
  HEADER_CZ_REASSEMBLY_IDENTITY__M17 =  0x343,
  HEADER_CZ_REASSEMBLY_IDENTITY__M18 =  0x344,
  HEADER_CZ_REASSEMBLY_IDENTITY__M19 =  0x345,
  HEADER_CZ_REASSEMBLY_IDENTITY__M20 =  0x346,
  HEADER_CZ_REASSEMBLY_IDENTITY__M21 =  0x347,
  HEADER_CZ_REASSEMBLY_IDENTITY__M22 =  0x348,
  HEADER_CZ_REASSEMBLY_IDENTITY__M23 =  0x349,
  HEADER_CZ_REASSEMBLY_IDENTITY__M24 =  0x34a,
  HEADER_CZ_REASSEMBLY_IDENTITY__M25 =  0x34b,
  HEADER_CZ_REASSEMBLY_IDENTITY__M26 =  0x34c,
  HEADER_CZ_REASSEMBLY_IDENTITY__M27 =  0x34d,
  HEADER_CZ_REASSEMBLY_IDENTITY__M28 =  0x34e,
  HEADER_CZ_REASSEMBLY_IDENTITY__M29 =  0x34f,
  HEADER_CZ_REASSEMBLY_IDENTITY__M30 =  0x350,
  HEADER_CZ_REASSEMBLY_IDENTITY__M31 =  0x351,
  HEADER_CZ_REASSEMBLY_IDENTITY__M32 =  0x352,
  HEADER_CZ_REASSEMBLY_IDENTITY__M33 =  0x353,
  HEADER_CZ_REASSEMBLY_IDENTITY__M34 =  0x354,
  HEADER_CZ_REASSEMBLY_IDENTITY__M35 =  0x355,
  HEADER_CZ_REASSEMBLY_IDENTITY__M36 =  0x356,
  HEADER_CZ_REASSEMBLY_IDENTITY__M37 =  0x357,
  HEADER_CZ_REASSEMBLY_IDENTITY__M38 =  0x358,
  HEADER_CZ_REASSEMBLY_IDENTITY__M39 =  0x359,
  HEADER_CZ_REASSEMBLY_IDENTITY__M40 =  0x35a,
  HEADER_CZ_REASSEMBLY_IDENTITY__M41 =  0x35b,
  HEADER_CZ_OPEN_SIMPLE_CASHSHOP_ITEMLIST =  0x35c,
  HEADER_ZC_SIMPLE_CASHSHOP_POINT_ITEMLIST =  0x35d,
  HEADER_CZ_CLOSE_WINDOW =  0x35e,
  HEADER_ZC_NOTIFY_MOVEENTRY6 =  0x35f,
  HEADER_ZC_NOTIFY_MOVEENTRY6__M01 =  0x360,
  HEADER_ZC_NOTIFY_MOVEENTRY6__M02 =  0x361,
  HEADER_ZC_NOTIFY_MOVEENTRY6__M03 =  0x362,
  HEADER_ZC_NOTIFY_MOVEENTRY6__M04 =  0x363,
  HEADER_ZC_NOTIFY_MOVEENTRY6__M05 =  0x364,
  HEADER_ZC_NOTIFY_MOVEENTRY6__M06 =  0x365,
  HEADER_ZC_NOTIFY_MOVEENTRY6__M07 =  0x366,
  HEADER_ZC_NOTIFY_MOVEENTRY6__M08 =  0x367,
  HEADER_ZC_NOTIFY_MOVEENTRY6__M09 =  0x368,
  HEADER_ZC_NOTIFY_MOVEENTRY6__M10 =  0x369,
  HEADER_ZC_NOTIFY_MOVEENTRY6__M11 =  0x36a,
  HEADER_ZC_NOTIFY_MOVEENTRY6__M12 =  0x36b,
  HEADER_ZC_NOTIFY_MOVEENTRY6__M13 =  0x36c,
  HEADER_ZC_NOTIFY_MOVEENTRY6__M14 =  0x36d,
  HEADER_ZC_NOTIFY_MOVEENTRY6__M15 =  0x36e,
  HEADER_ZC_NOTIFY_MOVEENTRY6__M16 =  0x36f,
  HEADER_ZC_NOTIFY_MOVEENTRY6__M17 =  0x370,
  HEADER_ZC_NOTIFY_MOVEENTRY6__M18 =  0x371,
  HEADER_ZC_NOTIFY_MOVEENTRY6__M19 =  0x372,
  HEADER_ZC_NOTIFY_MOVEENTRY6__M20 =  0x373,
  HEADER_ZC_NOTIFY_MOVEENTRY6__M21 =  0x374,
  HEADER_ZC_NOTIFY_MOVEENTRY6__M22 =  0x375,
  HEADER_ZC_NOTIFY_MOVEENTRY6__M23 =  0x376,
  HEADER_ZC_NOTIFY_MOVEENTRY6__M24 =  0x377,
  HEADER_ZC_NOTIFY_MOVEENTRY6__M25 =  0x378,
  HEADER_ZC_NOTIFY_MOVEENTRY6__M26 =  0x379,
  HEADER_ZC_NOTIFY_MOVEENTRY6__M27 =  0x37a,
  HEADER_ZC_NOTIFY_MOVEENTRY6__M28 =  0x37b,
  HEADER_ZC_NOTIFY_MOVEENTRY6__M29 =  0x37c,
  HEADER_ZC_NOTIFY_MOVEENTRY6__M30 =  0x37d,
  HEADER_ZC_NOTIFY_MOVEENTRY6__M31 =  0x37e,
  HEADER_ZC_NOTIFY_MOVEENTRY6__M32 =  0x37f,
  HEADER_ZC_NOTIFY_MOVEENTRY6__M33 =  0x380,
  HEADER_ZC_NOTIFY_MOVEENTRY6__M34 =  0x381,
  HEADER_ZC_NOTIFY_MOVEENTRY6__M35 =  0x382,
  HEADER_ZC_NOTIFY_MOVEENTRY6__M36 =  0x383,
  HEADER_ZC_NOTIFY_MOVEENTRY6__M37 =  0x384,
  HEADER_ZC_NOTIFY_MOVEENTRY6__M38 =  0x385,
  HEADER_ZC_NOTIFY_MOVEENTRY6__M39 =  0x386,
  HEADER_ZC_NOTIFY_MOVEENTRY6__M40 =  0x387,
  HEADER_ZC_NOTIFY_MOVEENTRY6__M41 =  0x388,
  HEADER_ZC_NOTIFY_STANDENTRY6 =  0x389,
  HEADER_ZC_NOTIFY_STANDENTRY6__M01 =  0x38a,
  HEADER_ZC_NOTIFY_STANDENTRY6__M02 =  0x38b,
  HEADER_ZC_NOTIFY_STANDENTRY6__M03 =  0x38c,
  HEADER_ZC_NOTIFY_STANDENTRY6__M04 =  0x38d,
  HEADER_ZC_NOTIFY_STANDENTRY6__M05 =  0x38e,
  HEADER_ZC_NOTIFY_STANDENTRY6__M06 =  0x38f,
  HEADER_ZC_NOTIFY_STANDENTRY6__M07 =  0x390,
  HEADER_ZC_NOTIFY_STANDENTRY6__M08 =  0x391,
  HEADER_ZC_NOTIFY_STANDENTRY6__M09 =  0x392,
  HEADER_ZC_NOTIFY_STANDENTRY6__M10 =  0x393,
  HEADER_ZC_NOTIFY_STANDENTRY6__M11 =  0x394,
  HEADER_ZC_NOTIFY_STANDENTRY6__M12 =  0x395,
  HEADER_ZC_NOTIFY_STANDENTRY6__M13 =  0x396,
  HEADER_ZC_NOTIFY_STANDENTRY6__M14 =  0x397,
  HEADER_ZC_NOTIFY_STANDENTRY6__M15 =  0x398,
  HEADER_ZC_NOTIFY_STANDENTRY6__M16 =  0x399,
  HEADER_ZC_NOTIFY_STANDENTRY6__M17 =  0x39a,
  HEADER_ZC_NOTIFY_STANDENTRY6__M18 =  0x39b,
  HEADER_ZC_NOTIFY_STANDENTRY6__M19 =  0x39c,
  HEADER_ZC_NOTIFY_STANDENTRY6__M20 =  0x39d,
  HEADER_ZC_NOTIFY_STANDENTRY6__M21 =  0x39e,
  HEADER_ZC_NOTIFY_STANDENTRY6__M22 =  0x39f,
  HEADER_ZC_NOTIFY_STANDENTRY6__M23 =  0x3a0,
  HEADER_ZC_NOTIFY_STANDENTRY6__M24 =  0x3a1,
  HEADER_ZC_NOTIFY_STANDENTRY6__M25 =  0x3a2,
  HEADER_ZC_NOTIFY_STANDENTRY6__M26 =  0x3a3,
  HEADER_ZC_NOTIFY_STANDENTRY6__M27 =  0x3a4,
  HEADER_ZC_NOTIFY_STANDENTRY6__M28 =  0x3a5,
  HEADER_ZC_NOTIFY_STANDENTRY6__M29 =  0x3a6,
  HEADER_ZC_NOTIFY_STANDENTRY6__M30 =  0x3a7,
  HEADER_ZC_NOTIFY_STANDENTRY6__M31 =  0x3a8,
  HEADER_ZC_NOTIFY_STANDENTRY6__M32 =  0x3a9,
  HEADER_ZC_NOTIFY_STANDENTRY6__M33 =  0x3aa,
  HEADER_ZC_NOTIFY_STANDENTRY6__M34 =  0x3ab,
  HEADER_ZC_NOTIFY_STANDENTRY6__M35 =  0x3ac,
  HEADER_ZC_NOTIFY_STANDENTRY6__M36 =  0x3ad,
  HEADER_ZC_NOTIFY_STANDENTRY6__M37 =  0x3ae,
  HEADER_ZC_NOTIFY_STANDENTRY6__M38 =  0x3af,
  HEADER_ZC_NOTIFY_STANDENTRY6__M39 =  0x3b0,
  HEADER_ZC_NOTIFY_STANDENTRY6__M40 =  0x3b1,
  HEADER_ZC_NOTIFY_STANDENTRY6__M41 =  0x3b2,
  HEADER_ZC_ITEM_FALL_ENTRY3 =  0x3b3,
  HEADER_ZC_ITEM_FALL_ENTRY3__M01 =  0x3b4,
  HEADER_ZC_ITEM_FALL_ENTRY3__M02 =  0x3b5,
  HEADER_ZC_ITEM_FALL_ENTRY3__M03 =  0x3b6,
  HEADER_ZC_ITEM_FALL_ENTRY3__M04 =  0x3b7,
  HEADER_ZC_ITEM_FALL_ENTRY3__M05 =  0x3b8,
  HEADER_ZC_ITEM_FALL_ENTRY3__M06 =  0x3b9,
  HEADER_ZC_ITEM_FALL_ENTRY3__M07 =  0x3ba,
  HEADER_ZC_ITEM_FALL_ENTRY3__M08 =  0x3bb,
  HEADER_ZC_ITEM_FALL_ENTRY3__M09 =  0x3bc,
  HEADER_ZC_ITEM_FALL_ENTRY3__M10 =  0x3bd,
  HEADER_ZC_ITEM_FALL_ENTRY3__M11 =  0x3be,
  HEADER_ZC_ITEM_FALL_ENTRY3__M12 =  0x3bf,
  HEADER_ZC_ITEM_FALL_ENTRY3__M13 =  0x3c0,
  HEADER_ZC_ITEM_FALL_ENTRY3__M14 =  0x3c1,
  HEADER_ZC_ITEM_FALL_ENTRY3__M15 =  0x3c2,
  HEADER_ZC_ITEM_FALL_ENTRY3__M16 =  0x3c3,
  HEADER_ZC_ITEM_FALL_ENTRY3__M17 =  0x3c4,
  HEADER_ZC_ITEM_FALL_ENTRY3__M18 =  0x3c5,
  HEADER_ZC_ITEM_FALL_ENTRY3__M19 =  0x3c6,
  HEADER_ZC_ITEM_FALL_ENTRY3__M20 =  0x3c7,
  HEADER_ZC_ITEM_FALL_ENTRY3__M21 =  0x3c8,
  HEADER_ZC_ITEM_FALL_ENTRY3__M22 =  0x3c9,
  HEADER_ZC_ITEM_FALL_ENTRY3__M23 =  0x3ca,
  HEADER_ZC_ITEM_FALL_ENTRY3__M24 =  0x3cb,
  HEADER_ZC_ITEM_FALL_ENTRY3__M25 =  0x3cc,
  HEADER_ZC_ITEM_FALL_ENTRY3__M26 =  0x3cd,
  HEADER_ZC_ITEM_FALL_ENTRY3__M27 =  0x3ce,
  HEADER_ZC_ITEM_FALL_ENTRY3__M28 =  0x3cf,
  HEADER_ZC_ITEM_FALL_ENTRY3__M29 =  0x3d0,
  HEADER_ZC_ITEM_FALL_ENTRY3__M30 =  0x3d1,
  HEADER_ZC_ITEM_FALL_ENTRY3__M31 =  0x3d2,
  HEADER_ZC_ITEM_FALL_ENTRY3__M32 =  0x3d3,
  HEADER_ZC_ITEM_FALL_ENTRY3__M33 =  0x3d4,
  HEADER_ZC_ITEM_FALL_ENTRY3__M34 =  0x3d5,
  HEADER_ZC_ITEM_FALL_ENTRY3__M35 =  0x3d6,
  HEADER_ZC_ITEM_FALL_ENTRY3__M36 =  0x3d7,
  HEADER_ZC_ITEM_FALL_ENTRY3__M37 =  0x3d8,
  HEADER_ZC_ITEM_FALL_ENTRY3__M38 =  0x3d9,
  HEADER_ZC_ITEM_FALL_ENTRY3__M39 =  0x3da,
  HEADER_ZC_ITEM_FALL_ENTRY3__M40 =  0x3db,
  HEADER_ZC_ITEM_FALL_ENTRY3__M41 =  0x3dc,
  HEADER_AHC_GAME_GUARD =  0x3dd,
  HEADER_CAH_ACK_GAME_GUARD =  0x3de,
  HEADER_ZC_WAITINGROOM_PARTYPLAY_JOIN =  0x3df,
  HEADER_CZ_WAITINGROOM_PARTYPLAY_JOIN_RESULT =  0x3e0,
  HEADER_ZC_WAITINGROOM_SUBSCRIPTION_RESULT =  0x3e1,
  HEADER_ZC_NOTIFY_ACT3 =  0x3e2,
  HEADER_ZC_NOTIFY_ACT3__M01 =  0x3e3,
  HEADER_ZC_NOTIFY_ACT3__M02 =  0x3e4,
  HEADER_ZC_NOTIFY_ACT3__M03 =  0x3e5,
  HEADER_ZC_NOTIFY_ACT3__M04 =  0x3e6,
  HEADER_ZC_NOTIFY_ACT3__M05 =  0x3e7,
  HEADER_ZC_NOTIFY_ACT3__M06 =  0x3e8,
  HEADER_ZC_NOTIFY_ACT3__M07 =  0x3e9,
  HEADER_ZC_NOTIFY_ACT3__M08 =  0x3ea,
  HEADER_ZC_NOTIFY_ACT3__M09 =  0x3eb,
  HEADER_ZC_NOTIFY_ACT3__M10 =  0x3ec,
  HEADER_ZC_NOTIFY_ACT3__M11 =  0x3ed,
  HEADER_ZC_NOTIFY_ACT3__M12 =  0x3ee,
  HEADER_ZC_NOTIFY_ACT3__M13 =  0x3ef,
  HEADER_ZC_NOTIFY_ACT3__M14 =  0x3f0,
  HEADER_ZC_NOTIFY_ACT3__M15 =  0x3f1,
  HEADER_ZC_NOTIFY_ACT3__M16 =  0x3f2,
  HEADER_ZC_NOTIFY_ACT3__M17 =  0x3f3,
  HEADER_ZC_NOTIFY_ACT3__M18 =  0x3f4,
  HEADER_ZC_NOTIFY_ACT3__M19 =  0x3f5,
  HEADER_ZC_NOTIFY_ACT3__M20 =  0x3f6,
  HEADER_ZC_NOTIFY_ACT3__M21 =  0x3f7,
  HEADER_ZC_NOTIFY_ACT3__M22 =  0x3f8,
  HEADER_ZC_NOTIFY_ACT3__M23 =  0x3f9,
  HEADER_ZC_NOTIFY_ACT3__M24 =  0x3fa,
  HEADER_ZC_NOTIFY_ACT3__M25 =  0x3fb,
  HEADER_ZC_NOTIFY_ACT3__M26 =  0x3fc,
  HEADER_ZC_NOTIFY_ACT3__M27 =  0x3fd,
  HEADER_ZC_NOTIFY_ACT3__M28 =  0x3fe,
  HEADER_ZC_NOTIFY_ACT3__M29 =  0x3ff,
  HEADER_ZC_NOTIFY_ACT3__M30 =  0x400,
  HEADER_ZC_NOTIFY_ACT3__M31 =  0x401,
  HEADER_ZC_NOTIFY_ACT3__M32 =  0x402,
  HEADER_ZC_NOTIFY_ACT3__M33 =  0x403,
  HEADER_ZC_NOTIFY_ACT3__M34 =  0x404,
  HEADER_ZC_NOTIFY_ACT3__M35 =  0x405,
  HEADER_ZC_NOTIFY_ACT3__M36 =  0x406,
  HEADER_ZC_NOTIFY_ACT3__M37 =  0x407,
  HEADER_ZC_NOTIFY_ACT3__M38 =  0x408,
  HEADER_ZC_NOTIFY_ACT3__M39 =  0x409,
  HEADER_ZC_NOTIFY_ACT3__M40 =  0x40a,
  HEADER_ZC_NOTIFY_ACT3__M41 =  0x40b,
  HEADER_ZC_BROADCAST3 =  0x40c,
  HEADER_ZC_BROADCAST3__M01 =  0x40d,
  HEADER_ZC_BROADCAST3__M02 =  0x40e,
  HEADER_ZC_BROADCAST3__M03 =  0x40f,
  HEADER_ZC_BROADCAST3__M04 =  0x410,
  HEADER_ZC_BROADCAST3__M05 =  0x411,
  HEADER_ZC_BROADCAST3__M06 =  0x412,
  HEADER_ZC_BROADCAST3__M07 =  0x413,
  HEADER_ZC_BROADCAST3__M08 =  0x414,
  HEADER_ZC_BROADCAST3__M09 =  0x415,
  HEADER_ZC_BROADCAST3__M10 =  0x416,
  HEADER_ZC_BROADCAST3__M11 =  0x417,
  HEADER_ZC_BROADCAST3__M12 =  0x418,
  HEADER_ZC_BROADCAST3__M13 =  0x419,
  HEADER_ZC_BROADCAST3__M14 =  0x41a,
  HEADER_ZC_BROADCAST3__M15 =  0x41b,
  HEADER_ZC_BROADCAST3__M16 =  0x41c,
  HEADER_ZC_BROADCAST3__M17 =  0x41d,
  HEADER_ZC_BROADCAST3__M18 =  0x41e,
  HEADER_ZC_BROADCAST3__M19 =  0x41f,
  HEADER_ZC_BROADCAST3__M20 =  0x420,
  HEADER_ZC_BROADCAST3__M21 =  0x421,
  HEADER_ZC_BROADCAST3__M22 =  0x422,
  HEADER_ZC_BROADCAST3__M23 =  0x423,
  HEADER_ZC_BROADCAST3__M24 =  0x424,
  HEADER_ZC_BROADCAST3__M25 =  0x425,
  HEADER_ZC_BROADCAST3__M26 =  0x426,
  HEADER_ZC_BROADCAST3__M27 =  0x427,
  HEADER_ZC_BROADCAST3__M28 =  0x428,
  HEADER_ZC_BROADCAST3__M29 =  0x429,
  HEADER_ZC_BROADCAST3__M30 =  0x42a,
  HEADER_ZC_BROADCAST3__M31 =  0x42b,
  HEADER_ZC_BROADCAST3__M32 =  0x42c,
  HEADER_ZC_BROADCAST3__M33 =  0x42d,
  HEADER_ZC_BROADCAST3__M34 =  0x42e,
  HEADER_ZC_BROADCAST3__M35 =  0x42f,
  HEADER_ZC_BROADCAST3__M36 =  0x430,
  HEADER_ZC_BROADCAST3__M37 =  0x431,
  HEADER_ZC_BROADCAST3__M38 =  0x432,
  HEADER_ZC_BROADCAST3__M39 =  0x433,
  HEADER_ZC_BROADCAST3__M40 =  0x434,
  HEADER_ZC_BROADCAST3__M41 =  0x435,
  HEADER_CZ_ENTER2 =  0x436,
  HEADER_CZ_REQUEST_ACT2 =  0x437,
  HEADER_CZ_USE_SKILL2 =  0x438,
  HEADER_CZ_USE_ITEM2 =  0x439,
  HEADER_ZC_REQ_CRACKPROOF =  0x43a,
  HEADER_CZ_ACK_CRACKPROOF =  0x43b,
  HEADER_ZC_CRACKPROOF_ERRCODE =  0x43c,
  HEADER_ZC_SKILL_POSTDELAY =  0x43d,
  HEADER_ZC_SKILL_POSTDELAY_LIST =  0x43e,
  HEADER_ZC_MSG_STATE_CHANGE2 =  0x43f,
  HEADER_ZC_MILLENNIUMSHIELD =  0x440,
  HEADER_ZC_SKILLINFO_DELETE =  0x441,
  HEADER_ZC_SKILL_SELECT_REQUEST =  0x442,
  HEADER_CZ_SKILL_SELECT_RESPONSE =  0x443,
  HEADER_ZC_SIMPLE_CASH_POINT_ITEMLIST =  0x444,
  HEADER_CZ_SIMPLE_BUY_CASH_POINT_ITEM =  0x445,
  HEADER_ZC_QUEST_NOTIFY_EFFECT =  0x446,
  HEADER_CZ_BLOCKING_PLAY_CANCEL =  0x447,
  HEADER_HC_CHARACTER_LIST =  0x448,
  HEADER_ZC_HACKSH_ERROR_MSG =  0x449,
  HEADER_CZ_CLIENT_VERSION =  0x44a,
  HEADER_CZ_CLOSE_SIMPLECASH_SHOP =  0x44b,
  HEADER_ZC_ES_RESULT =  0x7d0,
  HEADER_CZ_ES_GET_LIST =  0x7d1,
  HEADER_ZC_ES_LIST =  0x7d2,
  HEADER_CZ_ES_CHOOSE =  0x7d3,
  HEADER_CZ_ES_CANCEL =  0x7d4,
  HEADER_ZC_ES_READY =  0x7d5,
  HEADER_ZC_ES_GOTO =  0x7d6,
  HEADER_CZ_GROUPINFO_CHANGE_V2 =  0x7d7,
  HEADER_ZC_REQ_GROUPINFO_CHANGE_V2 =  0x7d8,
  HEADER_ZC_SHORTCUT_KEY_LIST_V2 =  0x7d9,
  HEADER_CZ_CHANGE_GROUP_MASTER =  0x7da,
  HEADER_ZC_HO_PAR_CHANGE =  0x7db,
  HEADER_CZ_SEEK_PARTY =  0x7dc,
  HEADER_ZC_SEEK_PARTY =  0x7dd,
  HEADER_CZ_SEEK_PARTY_MEMBER =  0x7de,
  HEADER_ZC_SEEK_PARTY_MEMBER =  0x7df,
  HEADER_ZC_ES_NOTI_MYINFO =  0x7e0,
  HEADER_ZC_SKILLINFO_UPDATE2 =  0x7e1,
  HEADER_ZC_MSG_VALUE =  0x7e2,
  HEADER_ZC_ITEMLISTWIN_OPEN =  0x7e3,
  HEADER_CZ_ITEMLISTWIN_RES =  0x7e4,
  HDADER_CH_ENTER_CHECKBOT =  0x7e5,
  HEADER_ZC_MSG_SKILL =  0x7e6,
  HEADER_CH_CHECKBOT =  0x7e7,
  HEADER_HC_CHECKBOT =  0x7e8,
  HEADER_HC_CHECKBOT_RESULT =  0x7e9,
  HEADER_CZ_BATTLE_FIELD_LIST =  0x7ea,
  HEADER_ZC_BATTLE_FIELD_LIST =  0x7eb,
  HEADER_CZ_JOIN_BATTLE_FIELD =  0x7ec,
  HEADER_ZC_JOIN_BATTLE_FIELD =  0x7ed,
  HEADER_CZ_CANCEL_BATTLE_FIELD =  0x7ee,
  HEADER_ZC_CANCEL_BATTLE_FIELD =  0x7ef,
  HEADER_CZ_REQ_BATTLE_STATE_MONITOR =  0x7f0,
  HEADER_ZC_ACK_BATTLE_STATE_MONITOR =  0x7f1,
  HEADER_ZC_BATTLE_NOTI_START_STEP =  0x7f2,
  HEADER_ZC_BATTLE_JOIN_NOTI_DEFER =  0x7f3,
  HEADER_ZC_BATTLE_JOIN_DISABLE_STATE =  0x7f4,
  HEADER_CZ_GM_FULLSTRIP =  0x7f5,
  HEADER_ZC_NOTIFY_EXP =  0x7f6,
  HEADER_ZC_NOTIFY_MOVEENTRY7 =  0x7f7,
  HEADER_ZC_NOTIFY_NEWENTRY5 =  0x7f8,
  HEADER_ZC_NOTIFY_STANDENTRY5 =  0x7f9,
  HEADER_ZC_DELETE_ITEM_FROM_BODY =  0x7fa,
  HEADER_ZC_USESKILL_ACK2 =  0x7fb,
  HEADER_ZC_CHANGE_GROUP_MASTER =  0x7fc,
  HEADER_ZC_BROADCASTING_SPECIAL_ITEM_OBTAIN =  0x7fd,
  HEADER_ZC_PLAY_NPC_BGM =  0x7fe,
  HEADER_ZC_DEFINE_CHECK =  0x7ff,
  HEADER_ZC_PC_PURCHASE_ITEMLIST_FROMMC2 =  0x800,
  HEADER_CZ_PC_PURCHASE_ITEMLIST_FROMMC2 =  0x801,
  HEADER_CZ_PARTY_BOOKING_REQ_REGISTER =  0x802,
  HEADER_ZC_PARTY_BOOKING_ACK_REGISTER =  0x803,
  HEADER_CZ_PARTY_BOOKING_REQ_SEARCH =  0x804,
  HEADER_ZC_PARTY_BOOKING_ACK_SEARCH =  0x805,
  HEADER_CZ_PARTY_BOOKING_REQ_DELETE =  0x806,
  HEADER_ZC_PARTY_BOOKING_ACK_DELETE =  0x807,
  HEADER_CZ_PARTY_BOOKING_REQ_UPDATE =  0x808,
  HEADER_ZC_PARTY_BOOKING_NOTIFY_INSERT =  0x809,
  HEADER_ZC_PARTY_BOOKING_NOTIFY_UPDATE =  0x80a,
  HEADER_ZC_PARTY_BOOKING_NOTIFY_DELETE =  0x80b,
  HEADER_CZ_SIMPLE_CASH_BTNSHOW =  0x80c,
  HEADER_ZC_SIMPLE_CASH_BTNSHOW =  0x80d,
  HEADER_ZC_NOTIFY_HP_TO_GROUPM_R2 =  0x80e,
  HEADER_LAST =  0x80f,
} <unnamed-tag>;


Please. take a good look at packets that end with '__M<num>', thus are duplicate ID packets.
But for Example, to answer the incoming '_REASSEMBLY' packet you must answer with packet that has same '__M<num>'.

_________________
Join our Team. Click here.
Image


Image


Top
 Profile  
 
 Post subject: Re: RO Structs
PostPosted: 02 Jul 2010, 15:02 
Offline
Super Moderators
Super Moderators
User avatar

Joined: 06 May 2008, 12:47
Posts: 801
kLabMouse wrote:
Please. take a good look at packets that end with '__M<num>', thus are duplicate ID packets.
But for Example, to answer the incoming '_REASSEMBLY' packet you must answer with packet that has same '__M<num>'.

That can be handled on a different level than (un)packing process tho, lets not think too much about that and keep it simple for now.

I'll post the plugin now so you guys can have some fun with it. ;)
Packetstructs are as of: 07/06, so not the latest kLab posted.

(again, it was quickly hacked in so...)

EDIT: note that everything is printed in uc because of some mistake
replace:
Code:
print DUMP (uc unpack('H4', pack('n', $unpacked->{PacketType})). "\n" . Dumper($unpacked) . "\n\n\n");
by:
Code:
print DUMP (uc(unpack('H4', pack('n', $unpacked->{PacketType}))). "\n" . Dumper($unpacked) . "\n\n\n");


btw, the plugin unpacks all received packets to a hash and dumps that hash to DUMP_structs.txt
(the file contains binary data, so its possible that your "notepad" cannot display it, however harvest pointed out that it can be viewed in 'less')


Attachments:
RO_struct_plugin.tar.gz [36.18 KiB]
Downloaded 47 times

_________________
One ST0 to rule them all? One PE viewer to find them!
One ST_kRO to bring them all and in the darkness bind them...

Mount Doom awaits us, fellowship of OpenKore!
Top
 Profile  
 
 Post subject: Re: RO Structs
PostPosted: 02 Jul 2010, 15:53 
Offline
Administrator
Administrator
User avatar

Joined: 24 Apr 2008, 12:02
Posts: 1299
Technology wrote:
'll post the plugin now so you guys can have some fun with it. ;)
Packetstructs are as of: 07/06, so not the latest kLab posted.

(again, it was quickly hacked in so...)


Look's complicated, but Nice.
Again, I do not think, that we should use the 'structs.txt' and 'headers.txt' files.
So I suggest the structs and headers to be hardcoded.

Also, There is Bug with '__M<num>'. Because there is no such structs in 'structs.txt'

_________________
Join our Team. Click here.
Image


Image


Top
 Profile  
 
 Post subject: Re: RO Structs
PostPosted: 02 Jul 2010, 22:15 
Offline
Super Moderators
Super Moderators
User avatar

Joined: 06 May 2008, 12:47
Posts: 801
kLabMouse wrote:
Also, There is Bug with '__M<num>'. Because there is no such structs in 'structs.txt'

I know, and we could fix it by adding them to the file or w/e we choose to solve the problem. Btw, i haven't seen this packet anywhere yet...

The problem atm is that i don't see what you see when you RE the packets, if i could see what you are seeing, then i could probably form a better visual image.

Again, this is just a test, ...
Btw besides these silly details, it seems to work no?

_________________
One ST0 to rule them all? One PE viewer to find them!
One ST_kRO to bring them all and in the darkness bind them...

Mount Doom awaits us, fellowship of OpenKore!


Top
 Profile  
 
 Post subject: Re: RO Structs
PostPosted: 03 Jul 2010, 08:11 
Offline
Administrator
Administrator
User avatar

Joined: 24 Apr 2008, 12:02
Posts: 1299
Technology wrote:
Again, this is just a test, ...
Btw besides these silly details, it seems to work no?


I Did not tested it.
Only quick look at source code.

_________________
Join our Team. Click here.
Image


Image


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 31 posts ]  Go to page 1, 2, 3, 4  Next

All times are UTC - 5 hours [ DST ]


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group