Тема: [DEV]Java sniffer
Показать сообщение отдельно
Старый 11.06.2013, 16:17   #9
Evgeniy
Пользователь
 
Регистрация: 06.01.2012
Сообщений: 98
Сказал(а) спасибо: 12
Поблагодарили 33 раз(а) в 21 сообщениях
Evgeniy На верном пути
По умолчанию

Обновил снифер для запуска пользовательских скриптов.
Скрипты на джава.
Папка со скриптами 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 - скрипты работать не будут и в логе будет предупреждение.
Evgeniy вне форума   Ответить с цитированием