|
Tools Обсуждение программ для MaNGOS |
|
Опции темы | Поиск в этой теме | Опции просмотра |
11.07.2010, 21:43 | #1 |
Ученый
Регистрация: 17.05.2010
Сообщений: 148
Сказал(а) спасибо: 18
Поблагодарили 25 раз(а) в 22 сообщениях
|
[разработка]Wow Packet Parser
Вот решил заняться разработкой утилитки для парсинга снифов.
Видел что существуют такие и даже какое то время пользовался WoWPacketViewer(я его тут выкладывал недавно) Но все что я видел оно довольно неудобно. И вот взялся за написание. Пока проект в стадии активного написания. Во вложение набросок интерфейса(там где список пакетов планируется таблица в которой будет номер пакета, а также разный цвет фона в зависимости от направления) Основная фишка парсера в том чтобы добавить поддержку разбора нового пакета не нужно перекомпилировать полностью приложение. Разбор осуществляет Скрипт на Lua Вот пример скрипта разбора CMSG_AUTH_SESSION Код:
ClientBuild=Packet:ReadInt32() unk=Packet:ReadInt32() acc=Packet:ReadString() function GetClientBuild() return "Client: "..ClientBuild.."\n"; end function Tmpe() Packet:DeCompress(); local addon_count=Packet:ReadInt32(); local addonTable={}; for i=1,addon_count do local addonName = Packet:ReadString(); local enabled = Packet:ReadByte(); local crc = Packet:ReadUInt32(); local unk4 = Packet:ReadUInt32(); table.insert(addonTable,{["name"]=addonName,["value"]={{["name"]="Enabled",value=enabled},{["name"]="Crc",value=crc},{["name"]="Unk4",value=unk4}}}); end return {{["name"]="Addon Count",value=addon_count},{["name"]="Addons",value=addonTable}}; end function GetTextResult() return GetClientBuild().."unk0: "..unk.."\nAccount: "..acc; end testtableret={ {["name"]="Client",value=ClientBuild}, {["name"]="Unk",value=unk}, {["name"]="Account",value=acc}, {["name"]="Unk2",value=Packet:ReadInt32()}, {["name"]="Client Seed",value=Packet:ReadInt32()}, {["name"]="Unk3",value=Packet:ReadInt64()}, {["name"]="Digest",value=Packet:HexPrint(Packet:ReadBytes(20))}, {["name"]="Decompressed",value=Tmpe()}, {["name"]="Unk5",value=Packet:ReadUInt32()}, } В общем проект лично для меня носит обучающий характер. В написании используется Qt+luabind Если есть желающие присоединится милости прошу(скорее всего как только будет что не стыдно показать в качестве сорцов проект будет опенсорс) |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Parser 4.x.x | ANTOMA | Tools | 3 | 10.12.2010 18:15 |
MaNGOS баг-трекер (разработка) | KiriX | WWW | 34 | 26.10.2010 12:45 |
wdb-parser | Konctantin | Tools | 0 | 23.08.2010 11:14 |
[git] Командная разработка | Hantet | Новичкам | 3 | 06.07.2010 09:01 |
Глобальный FAQ (разработка) | Konctantin | Новичкам | 6 | 14.03.2010 10:46 |