PKT v3.0 View
Вложений: 3
Проект на гитхабе:
https://github.com/Johnson7/pkt30view Скриншот: http://мангос.рф/attachment.php?atta...1&d=1305882997 Возможности программы: - Открывает .pkt файл формата 3.0, описание формата тут - По умолчанию отображает пакеты в шестнадцатеричном представлении. - Можно задавать имена для пакетов и имя функции на языке lua для парсинга пакета - позволяет задавать имена опкодов и парсеры специфичные для конкретного билда wow. Для этого необходимо создать в папке где находится екзешник - папку с номером билда wow от которого сделан сниф Внутри папки создать 2 файла: opcodes.txt и parsers.lua формат файла opcodes.txt : Код:
опкод1, название_опкода1, имя_луа_функции1 Код:
function имя_луа_функции1() В скрипте lua помимо стандартных доступны 2 библиотеки: packet и output для packet доступны следующие функции: Код:
length() - возвращает длину данных пакета Код:
print(string) Приглашаются все желающие для совместной разработки В аттаче последня сборка |
нууууууу....через vine запустилось, тестовый файлик открыл.
но на lich.pkt, sindragosa.pkt - висяк, при повторном открытии крэш брал сниф тут http://ru-mangos.ru/showpost.php?p=21601&postcount=6 http://ru-mangos.ru/showpost.php?p=21605&postcount=9 |
lich.pkt имеет неизвестный формат, я его не смог открыть и другим вьювером
У него в хидере версия пкт не так записана, не 00 30, а 30 00. Мой вьювер не открывает файлы с неправильным заголовком, но при это ничего не зависает. Поменял в хекс-редакторе версию - все отлично открывается Насчет повторного открытия, да возможен краш, ресурсы не освобождаются перед открытием. Вообще нет смысла сейчас писать баг-репорты, потому что как я написал, это даже не бета версия. Это инженерная альфа версия для тестового ознакомления. -) |
багрепорты в любой версии нужны =)
|
Кстати, если есть баги которые поправить не имеется возможности, то лучше их написать в первой топике, дабы все видели.
|
да погодите вы с багами, сперва надо привести проект в порядок, а потом уже заниматься исправлением
|
еще вопрос....
2011_4_20-17_20.pkt пакет №90 optionalDataLength = 536870912, то есть 29 бит = 1, вно это же блин 512 Mb O.o явно ошибка сниффера или я что то путаю? |
Цитата:
в pkt файлах длина пакета и длина доп. данных хранится в типе данных int (32 бита) при чем там биты ? это же не разбор пакетов от сервера. Этого не может быть в принципе, дело в том что я для доступа к данным файла использую файлмапинг, и смещение до следующего пакета считается как Код:
ptr += (sizeof(PKT_CHUNK) + pChunk->dataLength + pChunk->optionalDataLength); |
2^29 = 536,870,912
доп. данных хранится в типе данных uint или разницы, число со знаком или без, нет? О.о |
Вложений: 1
Ищи глюки у себя в вайне или еще хз в чем
Все там в норме, добавил еще одну колонку: Код:
m_lv.InsertColumn(6, _T("OtionalDataLength"), LVCFMT_LEFT, 100); Код:
case 6: |
Может лучше заменить 2 последние колонки на одну? Просто в поле Length писать размер data (без опкода).
|
Цитата:
Добавлено через 13 минут Цитата:
|
Цитата:
Тогда какой смысл в последней колонке? |
Цитата:
Цитата:
в OptionalData у меня пишется ип адрес:порт, в этом снифе типа: 195.12.246.210:3724 что равняется ровно 19 байтам (завершающий 0 для строки не пишется) В чем не трудно убедиться посчитав количество символов вручную. |
|
Сделал нормальный проект для VS10, пересобрал библиотеку lua в виде статической библиотеки так же в VS10.
Обновил шапку, выложил исходник проекта, луа инклуды и либы, а так же wtl, если вдруг кто не знаю где ее взять. Это все что нужно для сборки. В итоге получается самостоятельный экзешник без всяких добавочных длл. |
давай на гитхаб...
|
Есть где-нибудь в двух словах описалово как создать новый проект на гитхабе ?
Меня сегодня лень одолела... |
|
аккаунт вроде создался, ключи тоже. Теперь надо создать репозитарий, но в этом мануале описана работа под линуксом... в котором я понимаю чуть меньше чем ничего.
|
да без разницы, просто пути по другому указываются... тебе их можно не писать, а просто ПКМ -> Git Bash Here и все, а в остальном так же
|
ключи кое-как победил. создался пустой репозитарий, как туда добавить файлы то ?
у меня есть локальная папка pkt30view, как ее содержимое добавить на github ? Добавлено через 1 час 22 минуты блин, я наверно совсем тупой, но уже скоро конец дня, а я так и не догнал как добавить проект на сервер. :confused: Туда добавился только readme, как остальное засунуть я хз |
Код:
git init |
в результате на сервере оказывается только 1 файл - changelog
я уже двадцать раз и так и сяк пробовал о епрст, каким-то образом все почему-то добавилось ... моя в недоумении ... единственное что изменилось, так это я пошел пообедал и все сразу заработало |
Цитата:
Код:
git add . |
Всем спасибо за помощь, подскажите на последок еще одну вещь, вот я что-то дописываю, как мне все изменения закинуть на сервер ?
|
Цитата:
Код:
git add . |
Или использовать Git GUI, там все визуально понятно...
|
Обновил шапку.
Добавил меню "Закрыть файл", исправлен краш при открытии файла если уже до этого был открыт другой файл. |
предлагаю каждую функцию вынести в отдельный файл. Удобнее же...
|
На мой взгляд более целесообразно хранить все функции в одном файле:
Какие мне видятся плюсы такого подхода: - загружается модуль целиком при открытии снифа, можно инициализировать каки-нибудь переменные, выполнить некоторые стартовые процедуры общие для всего модуля. Собственно модуль луа живет пока открыт файл. - загружается файл один раз, компилируется в памяти - меньше накладных расходов на дисковое ио, и на компиляцию скриптов. А если кому-то нужна отдельная функция в отдельном файле - копипаст и за три секунды проблема решена. |
Кстати есть еще неплохая библиотека для объединения lua с C++
luabind |
я видел эту библиотеку в том числе, просто дело в том что штатные средства lua для встраивания настолько тривиальны что я думаю переписать вызовы без всяких сторонних библиотек/классов. Просто класс luawrapper я увидел одним из первых ну и что первое попалось под руку то и использовал
|
Только еще одно замечание. Дело в том что у тебя в луа вызывается не метод объекта а функция таблици.
|
ну да, я просто не знал как это правильно называется в луа
|
Нет я не про это. У луа есть и методы в полноценном понимании и функции таблицы.
То есть вызов packet.read8() это вызов функции из таблицы, а packet:read8() вызов метода. У меня например было так. Код:
PacketParser::PacketParser(const Packet* aPkt) Код:
local addon_count=Packet:ReadInt32(); |
Цитата:
|
|
нет, это не делфи 100%
|
Нет как нестранно это C++ с использованием luabind.
Ну или если уж совсем точно то c++, Qt, boost, luabind ) Правда от Qt в данном коде нечего нету ) |
Текущее время: 04:01. Часовой пояс GMT +3. |
ru-mangos.ru - Русское сообщество MaNGOS