trus7

packet_info.cpp

Nov 20th, 2020
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 12.96 KB | None | 0 0
  1. #include "stdafx.h"
  2. #include "../../common/stl.h"
  3. #include "constants.h"
  4. #include "packet_info.h"
  5. #include "HackShield_Impl.h"
  6. #include "XTrapManager.h"
  7.  
  8. CPacketInfo::CPacketInfo()
  9. : m_pCurrentPacket(NULL), m_dwStartTime(0)
  10. {
  11. }
  12.  
  13. CPacketInfo::~CPacketInfo()
  14. {
  15. itertype(m_pPacketMap) it = m_pPacketMap.begin();
  16. for ( ; it != m_pPacketMap.end(); ++it) {
  17. M2_DELETE(it->second);
  18. }
  19. }
  20.  
  21. void CPacketInfo::Set(int header, int iSize, const char * c_pszName, bool bSeq)
  22. {
  23. if (m_pPacketMap.find(header) != m_pPacketMap.end())
  24. return;
  25.  
  26. TPacketElement * element = M2_NEW TPacketElement;
  27.  
  28. element->iSize = iSize;
  29. element->stName.assign(c_pszName);
  30. element->iCalled = 0;
  31. element->dwLoad = 0;
  32.  
  33. element->bSequencePacket = bSeq;
  34.  
  35. #ifndef __SEQUENCE_SYSTEM__
  36. if (element->bSequencePacket)
  37. element->iSize += sizeof(BYTE);
  38. #endif
  39.  
  40. m_pPacketMap.insert(std::map<int, TPacketElement *>::value_type(header, element));
  41. }
  42.  
  43. bool CPacketInfo::Get(int header, int * size, const char ** c_ppszName)
  44. {
  45. std::map<int, TPacketElement *>::iterator it = m_pPacketMap.find(header);
  46.  
  47. if (it == m_pPacketMap.end())
  48. return false;
  49.  
  50. *size = it->second->iSize;
  51. *c_ppszName = it->second->stName.c_str();
  52.  
  53. m_pCurrentPacket = it->second;
  54. return true;
  55. }
  56.  
  57. #ifndef __SEQUENCE_SYSTEM__
  58. bool CPacketInfo::IsSequence(int header)
  59. {
  60. TPacketElement * pkElement = GetElement(header);
  61. return pkElement ? pkElement->bSequencePacket : false;
  62. }
  63.  
  64. void CPacketInfo::SetSequence(int header, bool bSeq)
  65. {
  66. TPacketElement * pkElem = GetElement(header);
  67.  
  68. if (pkElem)
  69. {
  70. if (bSeq)
  71. {
  72. if (!pkElem->bSequencePacket)
  73. pkElem->iSize++;
  74. }
  75. else
  76. {
  77. if (pkElem->bSequencePacket)
  78. pkElem->iSize--;
  79. }
  80.  
  81. pkElem->bSequencePacket = bSeq;
  82. }
  83. }
  84. #endif
  85.  
  86. TPacketElement * CPacketInfo::GetElement(int header)
  87. {
  88. std::map<int, TPacketElement *>::iterator it = m_pPacketMap.find(header);
  89.  
  90. if (it == m_pPacketMap.end())
  91. return NULL;
  92.  
  93. return it->second;
  94. }
  95.  
  96. void CPacketInfo::Start()
  97. {
  98. assert(m_pCurrentPacket != NULL);
  99. m_dwStartTime = get_dword_time();
  100. }
  101.  
  102. void CPacketInfo::End()
  103. {
  104. ++m_pCurrentPacket->iCalled;
  105. m_pCurrentPacket->dwLoad += get_dword_time() - m_dwStartTime;
  106. }
  107.  
  108. void CPacketInfo::Log(const char * c_pszFileName)
  109. {
  110. FILE * fp;
  111.  
  112. fp = fopen(c_pszFileName, "w");
  113.  
  114. if (!fp)
  115. return;
  116.  
  117. std::map<int, TPacketElement *>::iterator it = m_pPacketMap.begin();
  118.  
  119. fprintf(fp, "Name Called Load Ratio\n");
  120.  
  121. while (it != m_pPacketMap.end())
  122. {
  123. TPacketElement * p = it->second;
  124. ++it;
  125.  
  126. fprintf(fp, "%-16s %-10d %-10u %.2f\n",
  127. p->stName.c_str(),
  128. p->iCalled,
  129. p->dwLoad,
  130. p->iCalled != 0 ? (float) p->dwLoad / p->iCalled : 0.0f);
  131. }
  132.  
  133. fclose(fp);
  134. }
  135. ///---------------------------------------------------------
  136.  
  137. CPacketInfoCG::CPacketInfoCG()
  138. {
  139. Set(HEADER_CG_TEXT, sizeof(TPacketCGText), "Text", false);
  140. Set(HEADER_CG_HANDSHAKE, sizeof(TPacketCGHandshake), "Handshake", false);
  141. Set(HEADER_CG_TIME_SYNC, sizeof(TPacketCGHandshake), "TimeSync", true);
  142. Set(HEADER_CG_MARK_LOGIN, sizeof(TPacketCGMarkLogin), "MarkLogin", false);
  143. Set(HEADER_CG_MARK_IDXLIST, sizeof(TPacketCGMarkIDXList), "MarkIdxList", false);
  144. Set(HEADER_CG_MARK_CRCLIST, sizeof(TPacketCGMarkCRCList), "MarkCrcList", false);
  145. Set(HEADER_CG_MARK_UPLOAD, sizeof(TPacketCGMarkUpload), "MarkUpload", false);
  146. #ifdef _IMPROVED_PACKET_ENCRYPTION_
  147. Set(HEADER_CG_KEY_AGREEMENT, sizeof(TPacketKeyAgreement), "KeyAgreement", false);
  148. #endif
  149.  
  150. Set(HEADER_CG_GUILD_SYMBOL_UPLOAD, sizeof(TPacketCGGuildSymbolUpload), "SymbolUpload", false);
  151. Set(HEADER_CG_SYMBOL_CRC, sizeof(TPacketCGSymbolCRC), "SymbolCRC", false);
  152. Set(HEADER_CG_LOGIN, sizeof(TPacketCGLogin), "Login", true);
  153. Set(HEADER_CG_LOGIN2, sizeof(TPacketCGLogin2), "Login2", true);
  154. Set(HEADER_CG_LOGIN3, sizeof(TPacketCGLogin3), "Login3", true);
  155. Set(HEADER_CG_LOGIN5_OPENID, sizeof(TPacketCGLogin5), "Login5", true); //OpenID
  156. Set(HEADER_CG_ATTACK, sizeof(TPacketCGAttack), "Attack", true);
  157. Set(HEADER_CG_CHAT, sizeof(TPacketCGChat), "Chat", true);
  158. Set(HEADER_CG_WHISPER, sizeof(TPacketCGWhisper), "Whisper", true);
  159. #ifdef __ADMIN_MANAGER__
  160. Set(HEADER_CG_ADMIN_BAN_MANAGER, sizeof(TPacketCGAdminBanManger), "TPacketCGAdminBanManger", true);
  161. #endif
  162. Set(HEADER_CG_CHARACTER_SELECT, sizeof(TPacketCGPlayerSelect), "Select", true);
  163. Set(HEADER_CG_CHARACTER_CREATE, sizeof(TPacketCGPlayerCreate), "Create", true);
  164. Set(HEADER_CG_CHARACTER_DELETE, sizeof(TPacketCGPlayerDelete), "Delete", true);
  165. Set(HEADER_CG_ENTERGAME, sizeof(TPacketCGEnterGame), "EnterGame", true);
  166.  
  167. Set(HEADER_CG_ITEM_USE, sizeof(TPacketCGItemUse), "ItemUse", true);
  168. Set(HEADER_CG_ITEM_DROP, sizeof(TPacketCGItemDrop), "ItemDrop", true);
  169. Set(HEADER_CG_ITEM_DROP2, sizeof(TPacketCGItemDrop2), "ItemDrop2", true);
  170. Set(HEADER_CG_ITEM_DESTROY, sizeof(TPacketCGItemDestroy), "ItemDestroy", true);
  171. Set(HEADER_CG_ITEM_MOVE, sizeof(TPacketCGItemMove), "ItemMove", true);
  172. Set(HEADER_CG_ITEM_PICKUP, sizeof(TPacketCGItemPickup), "ItemPickup", true);
  173. #if defined(WHEEL_OF_DESTINY)
  174. Set(HEADER_CG_WHEEL_DESTINY, sizeof(TPacketCGWheelDestiny), "WheelDestiny", true);
  175. #endif
  176.  
  177. Set(HEADER_CG_QUICKSLOT_ADD, sizeof(TPacketCGQuickslotAdd), "QuickslotAdd", true);
  178. Set(HEADER_CG_QUICKSLOT_DEL, sizeof(TPacketCGQuickslotDel), "QuickslotDel", true);
  179. Set(HEADER_CG_QUICKSLOT_SWAP, sizeof(TPacketCGQuickslotSwap), "QuickslotSwap", true);
  180.  
  181. Set(HEADER_CG_SHOP, sizeof(TPacketCGShop), "Shop", true);
  182.  
  183. #ifdef ENABLE_GEM_SYSTEM
  184. Set(HEADER_CG_GEM_SHOP, sizeof(TPacketCGGemShop), "GemShop", true);
  185. #endif
  186.  
  187. Set(HEADER_CG_ON_CLICK, sizeof(TPacketCGOnClick), "OnClick", true);
  188. Set(HEADER_CG_EXCHANGE, sizeof(TPacketCGExchange), "Exchange", true);
  189. Set(HEADER_CG_CHARACTER_POSITION, sizeof(TPacketCGPosition), "Position", true);
  190. Set(HEADER_CG_SCRIPT_ANSWER, sizeof(TPacketCGScriptAnswer), "ScriptAnswer", true);
  191. Set(HEADER_CG_SCRIPT_BUTTON, sizeof(TPacketCGScriptButton), "ScriptButton", true);
  192. Set(HEADER_CG_QUEST_INPUT_STRING, sizeof(TPacketCGQuestInputString), "QuestInputString", true);
  193. Set(HEADER_CG_QUEST_CONFIRM, sizeof(TPacketCGQuestConfirm), "QuestConfirm", true);
  194.  
  195. Set(HEADER_CG_MOVE, sizeof(TPacketCGMove), "Move", true);
  196. Set(HEADER_CG_SYNC_POSITION, sizeof(TPacketCGSyncPosition), "SyncPosition", true);
  197.  
  198. Set(HEADER_CG_FLY_TARGETING, sizeof(TPacketCGFlyTargeting), "FlyTarget", true);
  199. Set(HEADER_CG_ADD_FLY_TARGETING, sizeof(TPacketCGFlyTargeting), "AddFlyTarget", true);
  200. Set(HEADER_CG_SHOOT, sizeof(TPacketCGShoot), "Shoot", true);
  201.  
  202. Set(HEADER_CG_USE_SKILL, sizeof(TPacketCGUseSkill), "UseSkill", true);
  203.  
  204. Set(HEADER_CG_ITEM_USE_TO_ITEM, sizeof(TPacketCGItemUseToItem), "UseItemToItem", true);
  205. Set(HEADER_CG_TARGET, sizeof(TPacketCGTarget), "Target", true);
  206. Set(HEADER_CG_WARP, sizeof(TPacketCGWarp), "Warp", true);
  207. Set(HEADER_CG_MESSENGER, sizeof(TPacketCGMessenger), "Messenger", true);
  208.  
  209. Set(HEADER_CG_PARTY_REMOVE, sizeof(TPacketCGPartyRemove), "PartyRemove", true);
  210. Set(HEADER_CG_PARTY_INVITE, sizeof(TPacketCGPartyInvite), "PartyInvite", true);
  211. Set(HEADER_CG_PARTY_INVITE_ANSWER, sizeof(TPacketCGPartyInviteAnswer), "PartyInviteAnswer", true);
  212. Set(HEADER_CG_PARTY_SET_STATE, sizeof(TPacketCGPartySetState), "PartySetState", true);
  213. Set(HEADER_CG_PARTY_USE_SKILL, sizeof(TPacketCGPartyUseSkill), "PartyUseSkill", true);
  214. Set(HEADER_CG_PARTY_PARAMETER, sizeof(TPacketCGPartyParameter), "PartyParam", true);
  215.  
  216. Set(HEADER_CG_EMPIRE, sizeof(TPacketCGEmpire), "Empire", true);
  217. Set(HEADER_CG_SAFEBOX_CHECKOUT, sizeof(TPacketCGSafeboxCheckout), "SafeboxCheckout", true);
  218. Set(HEADER_CG_SAFEBOX_CHECKIN, sizeof(TPacketCGSafeboxCheckin), "SafeboxCheckin", true);
  219.  
  220. Set(HEADER_CG_SAFEBOX_ITEM_MOVE, sizeof(TPacketCGItemMove), "SafeboxItemMove", true);
  221.  
  222. Set(HEADER_CG_GUILD, sizeof(TPacketCGGuild), "Guild", true);
  223. Set(HEADER_CG_ANSWER_MAKE_GUILD, sizeof(TPacketCGAnswerMakeGuild), "AnswerMakeGuild", true);
  224.  
  225. Set(HEADER_CG_FISHING, sizeof(TPacketCGFishing), "Fishing", true);
  226. Set(HEADER_CG_ITEM_GIVE, sizeof(TPacketCGGiveItem), "ItemGive", true);
  227. Set(HEADER_CG_HACK, sizeof(TPacketCGHack), "Hack", true);
  228. #ifdef NEW_PET_SYSTEM
  229. Set(HEADER_CG_PetSetName, sizeof(TPacketCGRequestPetName), "BraveRequestPetName", true);
  230. #endif
  231. Set(HEADER_CG_MYSHOP, sizeof(TPacketCGMyShop), "MyShop", true);
  232.  
  233. Set(HEADER_CG_REFINE, sizeof(TPacketCGRefine), "Refine", true);
  234. Set(HEADER_CG_CHANGE_NAME, sizeof(TPacketCGChangeName), "ChangeName", true);
  235.  
  236. Set(HEADER_CG_CLIENT_VERSION, sizeof(TPacketCGClientVersion), "Version", true);
  237. Set(HEADER_CG_CLIENT_VERSION2, sizeof(TPacketCGClientVersion2), "Version", true);
  238. Set(HEADER_CG_PONG, sizeof(BYTE), "Pong", true);
  239. Set(HEADER_CG_MALL_CHECKOUT, sizeof(TPacketCGSafeboxCheckout), "MallCheckout", true);
  240.  
  241. Set(HEADER_CG_SCRIPT_SELECT_ITEM, sizeof(TPacketCGScriptSelectItem), "ScriptSelectItem", true);
  242. Set(HEADER_CG_PASSPOD_ANSWER, sizeof(TPacketCGPasspod), "PasspodAnswer", true);
  243.  
  244. Set(HEADER_CG_HS_ACK, sizeof(TPacketGCHSCheck), "HackShieldResponse", false);
  245. Set(HEADER_CG_XTRAP_ACK, sizeof(TPacketXTrapCSVerify), "XTrapResponse", false);
  246. Set(HEADER_CG_DRAGON_SOUL_REFINE, sizeof(TPacketCGDragonSoulRefine), "DragonSoulRefine", false);
  247. Set(HEADER_CG_STATE_CHECKER, sizeof(BYTE), "ServerStateCheck", false);
  248. #ifdef ENABLE_FISH_EVENT
  249. Set(HEADER_CG_FISH_EVENT_SEND, sizeof(TPacketCGFishEvent), "FishEvent", true);
  250. #endif
  251. #ifdef __ATTENDANCE_EVENT__
  252. Set(HEADER_CG_ATTENDANCE_REWARD, sizeof(BYTE), "RequestAttendanceReward", true);
  253. #endif
  254. #ifdef __ENABLE_BATTLE_FIELD__
  255. Set(HEADER_CG_REQUEST_ENTER_BATTLE, sizeof(BYTE), "RequestEnterBattle", true);
  256. Set(HEADER_CG_REQUEST_EXIT_BATTLE, sizeof(BYTE), "RequestExitBattle", true);
  257. #endif
  258. #ifdef __SHOW_CHEST_DROP__
  259. Set(HEADER_CG_CHEST_DROP_INFO, sizeof(TPacketCGChestDropInfo), "ChestDropInfo", true);
  260. #endif
  261. #ifdef __WHISPER_ADMIN__
  262. Set(HEADER_CG_WHISPER_ADMIN, sizeof(TPacketCGWhisperAdmin), "TPacketCGWhisperAdmin", true);
  263. #endif
  264. #ifdef __TITLE_SYSTEM__
  265. Set(HEADER_CG_TITLE_CHOOSE, sizeof(TPacketGGTitleInfo), "TitleInfo", true);
  266. #endif
  267. #ifdef __CHANGELOOK_SYSTEM__
  268. Set(HEADER_CG_CL, sizeof(TPacketChangeLook), "ChangeLook", true);
  269. #endif
  270. #ifdef __SEND_TARGET_INFO__
  271. Set(HEADER_CG_TARGET_INFO_LOAD, sizeof(TPacketCGTargetInfoLoad), "TargetInfoLoad", true);
  272. #endif
  273.  
  274. #ifdef __SASH_SYSTEM__
  275. Set(HEADER_CG_SASH, sizeof(TPacketSash), "Sash", true);
  276. #endif
  277.  
  278. #ifdef ENABLE_FEATURES_OXEVENT
  279. Set(HEADER_CG_OXEVENT_MANAGER, sizeof(TPacketCGOxEventManager), "TPacketCGOxEventManager", true);
  280. #endif
  281.  
  282. }
  283.  
  284. CPacketInfoCG::~CPacketInfoCG()
  285. {
  286. Log("packet_info.txt");
  287. }
  288.  
  289. ////////////////////////////////////////////////////////////////////////////////
  290. CPacketInfoGG::CPacketInfoGG()
  291. {
  292. Set(HEADER_GG_SETUP, sizeof(TPacketGGSetup), "Setup", false);
  293. Set(HEADER_GG_LOGIN, sizeof(TPacketGGLogin), "Login", false);
  294. Set(HEADER_GG_LOGOUT, sizeof(TPacketGGLogout), "Logout", false);
  295. Set(HEADER_GG_RELAY, sizeof(TPacketGGRelay), "Relay", false);
  296. Set(HEADER_GG_NOTICE, sizeof(TPacketGGNotice), "Notice", false);
  297. #ifdef ENABLE_FULL_NOTICE
  298. Set(HEADER_GG_BIG_NOTICE, sizeof(TPacketGGNotice), "BigNotice", false);
  299. #endif
  300. Set(HEADER_GG_SHUTDOWN, sizeof(TPacketGGShutdown), "Shutdown", false);
  301. Set(HEADER_GG_GUILD, sizeof(TPacketGGGuild), "Guild", false);
  302. Set(HEADER_GG_SHOUT, sizeof(TPacketGGShout), "Shout", false);
  303. Set(HEADER_GG_DISCONNECT, sizeof(TPacketGGDisconnect), "Disconnect", false);
  304. Set(HEADER_GG_MESSENGER_ADD, sizeof(TPacketGGMessenger), "MessengerAdd", false);
  305. Set(HEADER_GG_MESSENGER_REMOVE, sizeof(TPacketGGMessenger), "MessengerRemove", false);
  306. Set(HEADER_GG_FIND_POSITION, sizeof(TPacketGGFindPosition), "FindPosition", false);
  307. Set(HEADER_GG_WARP_CHARACTER, sizeof(TPacketGGWarpCharacter), "WarpCharacter", false);
  308. Set(HEADER_GG_MESSENGER_MOBILE, sizeof(TPacketGGMessengerMobile), "MessengerMobile", false);
  309. Set(HEADER_GG_GUILD_WAR_ZONE_MAP_INDEX, sizeof(TPacketGGGuildWarMapIndex), "GuildWarMapIndex", false);
  310. Set(HEADER_GG_TRANSFER, sizeof(TPacketGGTransfer), "Transfer", false);
  311. Set(HEADER_GG_XMAS_WARP_SANTA, sizeof(TPacketGGXmasWarpSanta), "XmasWarpSanta", false);
  312. Set(HEADER_GG_XMAS_WARP_SANTA_REPLY, sizeof(TPacketGGXmasWarpSantaReply), "XmasWarpSantaReply", false);
  313. Set(HEADER_GG_RELOAD_CRC_LIST, sizeof(BYTE), "ReloadCRCList", false);
  314. Set(HEADER_GG_CHECK_CLIENT_VERSION, sizeof(BYTE), "CheckClientVersion", false);
  315. Set(HEADER_GG_LOGIN_PING, sizeof(TPacketGGLoginPing), "LoginPing", false);
  316.  
  317. // BLOCK_CHAT
  318. Set(HEADER_GG_BLOCK_CHAT, sizeof(TPacketGGBlockChat), "BlockChat", false);
  319. // END_OF_BLOCK_CHAT
  320. Set(HEADER_GG_SIEGE, sizeof(TPacketGGSiege), "Siege", false);
  321.  
  322. Set(HEADER_GG_MONARCH_NOTICE, sizeof(TPacketGGMonarchNotice), "MonarchNotice", false);
  323. Set(HEADER_GG_MONARCH_TRANSFER, sizeof(TPacketMonarchGGTransfer), "MonarchTransfer", false);
  324. Set(HEADER_GG_PCBANG_UPDATE, sizeof(TPacketPCBangUpdate), "PCBangUpdate", false);
  325. Set(HEADER_GG_CHECK_AWAKENESS, sizeof(TPacketGGCheckAwakeness), "CheckAwakeness", false);
  326. }
  327.  
  328. CPacketInfoGG::~CPacketInfoGG()
  329. {
  330. Log("p2p_packet_info.txt");
  331. }
  332.  
  333.  
Advertisement
Add Comment
Please, Sign In to add comment