Показать сообщение отдельно
Старый 04.05.2012, 23:58   #507
Новичок
 
Регистрация: 29.04.2012
Сообщений: 11
Сказал Спасибо: 24
Имеет 2 спасибок в 1 сообщении
qwm пока неопределено
По умолчанию

Первое моё предложение - это то же, что ты и делал, только это вовсе не обязательно делать в приложении. Узнай, что лежит в ecx, а далее отдельным приложением снапшотами найди интересующий тебя модуль (базу и размер) и постранично (4096 байт) считывай ReadProcessMemory. Ну, я думаю, переменная выровнена в памяти align 4, так что можешь чуть ускорить процесс сверки, не проверяя побайтно. Если со спец. софтинами для дампа дружишь, то конечно не обязательно самому так извращаться.
Либо второй метод, но это - если ты с асмом дружишь. Адрес возврата в хуке из стека вытащишь и по нему прочитаешь память. А дальше - дизасм и долгое ковыряние.
Пиши, если какие подводные камни будут.

Upd:
не помню, для какого сервера ты спрашивал значение, но на сервере Дефо (там вроде хай-файв 5) эта переменная видимо лежит по rva 0x0077ed80. При этом сама engine.dll не имеет релоков и грузится по адресу 0x20000000, т.е. адрес всегда 0x2077ed80.
на руофе rva 0x008986d4, дллка имеет релоки.
// если кому-то интересно - это адреса, по которым лежат указатели на объект UNetworkHandler.

Последний раз редактировалось qwm, 07.05.2012 в 23:16. Причина: Upd
qwm вне форума   Ответить с цитированием
За это сообщение qwm нажился 2 спасибками от: