Доброго времени суток. Есть программа-клиент. Команды с сервера на нее поступают около 5 раз в секунду. Я ставлю брейк на обработчик команд в клиенте. Могу слелать !dump в файл кода команды, но хотелось бы получить последовательность команд. !dump создает файл заново, а мне нужно добавить значение к уже существующим. Сумбурно конечно обьяснил. Вообщем софтайс перехватывает программу 5 раз в секунду. Как получить последовательность из значений по адресу хххх (одному и тому же) в файл (на протяжении скажем 5 минут). Я использую DS 3.2; IceExt 0.67; w2k SP4.
А я бы сделал dll, прицепил ее к импорту клиента, и в DLL_PAROCESS_ATTACH патчил бы нужное место в клиенте на вызов функции из dll. А уж с помошью hll писать в лог это тривиальная задача.
В Айсе есть макросы => можно процесс "автоматизировать" - A, я, значит, как дятел, собирался SOS кнопкой F5 отбивать? А я бы сделал dll, прицепил ее к импорту клиента, и в DLL_PAROCESS_ATTACH патчил бы нужное место в клиенте на вызов функции из dll. - Защита сработает. Отключать долго. А уж с помошью hll писать в лог это тривиальная задача. - А ето что за зверь?
> - Защита сработает. Отключать долго. Если память не чекает - заинжектить прямо в процесс с помощью библиотеки apihooks
можно прямо в лог выводить: bpx <handler> do "dd <DataAddr> l <DataLen>;x;" правда лог потом надо будет профильтровать скриптом. И мерцать будет ужасно
Про лог айса совсем забыл. Просто написал bpm adr x do "? eax;x;" В логе были зсе значения. Только "мусора" много типа Break due to BP 02: BPMB 001B:00477B5D X DR1 DO "?eax;x;" (ET=540.14 microseconds) MSR LastBranchFromIp=6C371ED3 MSR LastBranchToIp=00477B30 <ulong> = 0x31, 49, "1" - собственно искомое Если бы можно было как-то отключить эти сообщения, получилось бы совсем то что надо. Спасибо Dr.Golova за идею. Где бы скачать эту библиотеку полностью, с доками. Линк можно?
вот, слепил: Код (Text): open (FileIn, $ARGV[0]); open (FileOut, ]$ARGV[1]"); while (<FileIn>) { print FileOut $1 , ", " if (/<ulong> = (.+?),/); } close FileIn; close FileOut;
Green, будь последователен, не издевайся над старым двоечником. Скомпилируй пожалуйста. FileOut назови Green.Mozg Вообщем спасибо огромное.
да не издеваюсь я У меня нет компилятора Перла, по-моему его вообще нет в природе, по крайней мере релизной версии.
kolega Поставил Перл. Сделал bat файл, запустил - не работает. Fileout пустой. Долго думал. Может это и есть дзен?
Нирвана, конец сансаре! Добавил пробел: perl -ne "print if (/<ulong>=(.+?),/)" winice.log > winice1.log perl -ne "print if (/<ulong> =(.+?),/)" winice.log > winice1.log Действительно дзен. Пустого места не хватало. Всем больвое спасибо за помощь.
У меня нет компилятора Перла, по-моему его вообще нет в природе, по крайней мере релизной версии Хм, неточная формулировка. Перл - это интерпретатор, но, разумеется, текст должен быть пропарсен и построено дерево, так что, это и компилятор. А что до компилятора в чистом виде - то перл можно сбросить в виде сишных структур, ну а дальше скомпилировать любым сишным компилером.