|
|
| Посл.отвђт | Сообщен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 |