· Начало · Статистика · WASM.RU · Noir.Ru ·

 WASM Phorum (Оффлайн - 24.11.2003) —› WASM.RESEARCH —› Edit Exe

Посл.отвђт Сообщенiе


Дата: Янв 31, 2003 17:09:14

Guy, who knows why changing one byte in a program disables it?
I have an EXE. I open it with CreateFile and ReadFile in to buffer. I change TEST EAX,EAX to XOR EAX,EAX (85C0-->33C0), then I write it back into this file. It has the same size. But it runs to this place and dies with "Insufficient memory".


Дата: Янв 31, 2003 18:35:56

это зависит от самой программы
вообще-то test не сохраняет результат, а только выставляет флаги


Дата: Фев 1, 2003 04:51:17

SolidCode
Почему Вы решили, что любое сочетание байтов 85C0 - это TEST EAX,EAX, а не часть или не соседние байты других команд или данных?


Дата: Фев 1, 2003 17:21:47

Поясняю.
Я пытался изменить PE-шный файл. Это прога написанная на дельфе. Я точно знаю, что это изменяемый байт - именно тот, который надо. Я 10 байт вокруг сравнивал. И через TD32 и в hexedit-е. И мне не нужны флаги. Просто перед этим прога вызывает "IsDebuggerPresent". Я хочу, чтобы получался 0 (и ZF=1) в любом случае. Я также пытался изменить условный переход 74 на безусловный EB после теста. Всё-равно вылетает.


Дата: Фев 25, 2003 16:26:28

А ты думаешь что прога не может проверить себя на предмет хака? BTW, "insufficient memory" обычно говорят проги завернутые armadillo - там контрольня сумма от собственного кода используется для раскриптовки в частности необходимых размеров буферов =)


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.072