29.05.2013, 09:38 | #1 |
Пользователь
Регистрация: 06.01.2012
Сообщений: 98
Сказал(а) спасибо: 12
Поблагодарили 33 раз(а) в 21 сообщениях
|
[DEV]Java sniffer
https://github.com/MinimaJack/JSniffer
для билда 16992,17055 Собирать забирать: в sniffer.properties настройки. Код:
sniffer.networkDeviceIndex = 1 для изменения настроек скопировать sniffer.properties из исходников и положить рядом с джарником. Ну и изменить настройки. sniffer.log.enablePkt = 1 - сохранять лог в пкт формат(версия 3.1), по умолчанию включен sniffer.log.enableTxt = 0 - сохранять лог в тестовой формат, по умолчанию выключен Архив со всем добром: sniffer.zip Запускать: run.bat Для запуска:
Измененная версия WoWPacketViewer-а от TOM_RUS для поддержки пкт 3.1 Release.zip. Парсеры ес-но надо обновлять вручную. Теперь можно просмотреть тринити парсером https://github.com/TrinityCore/WowPacketParser ззы проверил на 64 битной Windows 7601 в режиме запуска как 32, так 64 битной версии программы. Build 17055 sniffer.properties Огромное спасибо YuruY за тестирование. RomanRom2 за помощь в разработке. Последний раз редактировалось Evgeniy; 16.06.2013 в 14:39. |
5 пользователя(ей) сказали cпасибо: | Lordronn (29.05.2013), NeatElves (01.06.2013), partizanes (30.05.2013), RomanRom2 (29.05.2013), YuruY (08.06.2013) |
06.06.2013, 08:57 | #2 |
Пользователь
Регистрация: 06.01.2012
Сообщений: 98
Сказал(а) спасибо: 12
Поблагодарили 33 раз(а) в 21 сообщениях
|
после закрытия вова, да и переодически после каждого закрытого соединения
в логе будет что то типо такого: Код:
08:54:59.012 [main] INFO o.j.sniffer.handler.RawPacketHandler - Close Connection: 195.12.246.241 3724-192.168.1.101 57383 08:55:09.218 [main] INFO o.j.sniffer.handler.RawPacketHandler - Close Connection: 195.12.246.239 3724-192.168.1.101 57384 Запускать с административными правами. Что бы что то появилось, минимум необходимо зайти до выбора персонажа. Последний раз редактировалось Evgeniy; 16.06.2013 в 13:36. Причина: aslr ...for edit |
10.06.2013, 16:15 | #3 |
Пользователь
Регистрация: 06.01.2012
Сообщений: 98
Сказал(а) спасибо: 12
Поблагодарили 33 раз(а) в 21 сообщениях
|
Имеет ли смысл встраивать скриптование для обработки пакетов?
То есть либо, обработка пакета, либо запись дополнительных данных в лог файл, да и в общем то любых действий. |
10.06.2013, 16:46 | #4 |
WowCore Dev
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
|
нет, не имеет. пусть снифер занимается своим делом. обработку нужно делать в оффлайне.
единственный тип обработки мне приходит на ум - это то, что делал вад в свое время: радар детектор. приложение показывало видимые объекты вокруг в окошке. |
10.06.2013, 16:52 | #5 | |
Пользователь
Регистрация: 06.01.2012
Сообщений: 98
Сказал(а) спасибо: 12
Поблагодарили 33 раз(а) в 21 сообщениях
|
Цитата:
Конкретно о заполнении опциональных данных в снифах. |
|
10.06.2013, 17:35 | #6 |
RuDB Dev
Регистрация: 01.02.2010
Адрес: localhost
Сообщений: 592
Сказал(а) спасибо: 323
Поблагодарили 283 раз(а) в 122 сообщениях
Записей в дневнике: 2
|
Кстати, от куда можно причитать ConnectionId (никак не могу найти)
Сейчас вот тестю свой инжектор, все пишется, а вот ConnectionId незнаю от куда вытащить. ЗЫ. И еще один вопрос к знающим людям. Для записи в файл я использую WinApi функции и вызываю их по оффсету в клиенте. Может есть другой способ определить адрес импортированной функции? Последний раз редактировалось Konctantin; 10.06.2013 в 17:40. |
10.06.2013, 17:41 | #7 |
Пользователь
Регистрация: 06.01.2012
Сообщений: 98
Сказал(а) спасибо: 12
Поблагодарили 33 раз(а) в 21 сообщениях
|
без понятия как там в клиенте...у меня хеши джава объектов( грубо говоря хеш с портов и йп). Роман говорил, что подойдет и обычная нумерация. По идее, что бы отделить пакеты от разных серверов, подойдет что угодно.
|
Пользователь сказал cпасибо: | Konctantin (11.06.2013) |
11.06.2013, 10:44 | #8 |
WowCore Dev
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
|
|
2 пользователя(ей) сказали cпасибо: | Evgeniy (11.06.2013), Konctantin (11.06.2013) |
11.06.2013, 16:17 | #9 |
Пользователь
Регистрация: 06.01.2012
Сообщений: 98
Сказал(а) спасибо: 12
Поблагодарили 33 раз(а) в 21 сообщениях
|
Обновил снифер для запуска пользовательских скриптов.
Скрипты на джава. Папка со скриптами script/ (Обновился конфиг, добавился путь к хмл описанию скриптов) scripts.xml - описание скриптов....йд скрипта, класс и путь к файлу скрипта. Для примера написаны 2 скрипта: TestScript.java - имплеминирует два интерфейса ScriptHandler и Runnable, означает что у него будет вызван(и должен существовать) метод initScript, Runnable - что скрипт будет запущен в другом потоке(будет выполнен метод run). В самом методе ничего интересного нет: в цикле отображается системное время 5 раз с промежутком в одну секунду. UiLogger.java - имплемениерует PacketLogHandler - что означает, что данный класс будет добавлен в цепочку логеров на получение всех пакетов путем вызова метода: Код:
public void onDecodePacket(NetworkChannel channel, Direction direction, Integer size, Integer opcode, byte[] data, int frame); Скрипты загружаются из хмл, но компилируются все вместе. Из-за чего ошибка в одном скрипте может не дать работать остальным. Для работы со скриптами, а именно компиляции в рантайме, необходимо наличие установленой JDK. Для тех у кого нет JDK - скрипты работать не будут и в логе будет предупреждение. |
11.06.2013, 16:29 | #10 |
WowCore Dev
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
|
компиляцию в рантайме, по моему, может только дотнет делать. Nomad в свое время делал это в своем RunServer и мне показывал как это круто
|
11.06.2013, 16:30 | #11 |
Пользователь
Регистрация: 06.01.2012
Сообщений: 98
Сказал(а) спасибо: 12
Поблагодарили 33 раз(а) в 21 сообщениях
|
|
11.06.2013, 16:35 | #12 |
WowCore Dev
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
|
да, мне мои джава-гуру-пацаны рассказали, джава тоже может, причем lдаже нативно. javax.script.*
|
13.06.2013, 11:53 | #13 |
Пользователь
Регистрация: 06.01.2012
Сообщений: 98
Сказал(а) спасибо: 12
Поблагодарили 33 раз(а) в 21 сообщениях
|
кто то пользуется? Или так ....есть и ладно?
|
14.06.2013, 23:27 | #15 |
WowCore Dev
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
|
пока нет. чото как то не улыбает выключение ASLR... надо что то думать.
|
16.06.2013, 10:50 | #16 |
Пользователь
Регистрация: 06.01.2012
Сообщений: 98
Сказал(а) спасибо: 12
Поблагодарили 33 раз(а) в 21 сообщениях
|
Теперь можно не отключать ASLR. В первом посте обновленный конфиг и release build.
Для включения ASLR удалить ключ HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Contro l\Session Manager\Memory Management\MoveImages либо импортировать reg файл из enableASLR.zip (запустить и импортировать) Последний раз редактировалось Evgeniy; 16.06.2013 в 15:28. |
2 пользователя(ей) сказали cпасибо: | partizanes (20.06.2013), RomanRom2 (16.06.2013) |
20.06.2013, 09:06 | #17 |
Пользователь
Регистрация: 06.01.2012
Сообщений: 98
Сказал(а) спасибо: 12
Поблагодарили 33 раз(а) в 21 сообщениях
|
Вопросы, предложения, пожелания...
Пока из насущных проблем - написание С библиотеки для получения ключа под вайном. Pcap и Java работают замечательно, но вот с кодом на С у меня проблемы. Если кто желает помочь проекту в этом нелегком труде, буду только рад. Имеет ли смысл создавать гуи? Автоматическая загрузка снифов на сервера по фтп( либо другому протоколу)? |
20.06.2013, 11:07 | #18 |
WowCore Dev
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
|
предложения:
1. автоматический скан и получение ключа 2. полный инсталлер гуи не надо, аплоад не надо. |
20.06.2013, 11:33 | #19 |
Пользователь
Регистрация: 06.01.2012
Сообщений: 98
Сказал(а) спасибо: 12
Поблагодарили 33 раз(а) в 21 сообщениях
|
|
20.06.2013, 12:00 | #20 |
WowCore Dev
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
|
я вроде рассказывал в скайпе:
запускается снифер, выясняет билд клиента (например 17055). читает свой конфиг и ищет запись типа 17055=F823AADC ну типа адрес, где ключ читать. если полученное значение равно ничему, то записи такой нет, значит надо запустить скан и найти адрес для этого билда. таким образом в инишнике по сути копятся записи 17000=AABBCCDD 17020=BBCCDDEE 17055=CCDDEEFF ну так по крайней мере сделано было у меня в снифере. еще иногда оказывалось, что адрес был записан неверно или еще по каким причинам надо адрес получить заново. поэтому можно было пересканить принудительно, запустив снифер с определенным ключиком. можно конечно из инишника запись удалить, но скан у нас был насколько быстрым, что я запускал его каждый раз и не парился |
Пользователь сказал cпасибо: | Evgeniy (20.06.2013) |
22.09.2013, 05:44 | #21 |
YTDB Dev
Регистрация: 01.02.2010
Сообщений: 288
Сказал(а) спасибо: 125
Поблагодарили 97 раз(а) в 53 сообщениях
|
Под текущую реву 5.4.0 есть у кого сниффер?
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
[DEV]Java emu | mAdloVe | Tools | 170 | 14.09.2013 18:36 |
C# vs Java | Dragon | Флудильня | 10 | 27.06.2012 07:09 |