![]() |
eXeL@B —› Вопросы новичков —› Не получается реализовать инлайн патч |
Посл.ответ | Сообщение |
|
Создано: 13 декабря 2009 08:52 · Личное сообщение · #1 Привет всем! Решил потренероваться на инлайн патчинге. В качестве примера взял "|Neo|-mAn crackme #1". Почитал решение от tscube, не понял как нашел код декриптора (п.6 The decrypter's main code). Пробывал Hardware breakpoint - не пашет. Скажите, пожалуйста, как самому узнать, где спрятан код "дешифратора"? В качестве отладчика пользуюсь OllyDbg 1.10. Решение от tscube: ![]() ![]() |
|
Создано: 13 декабря 2009 10:17 · Личное сообщение · #2 1Й ////////////////////////////////////////////////////////////////////// /////// /*4031C2*/ LODS BYTE PTR DS:[ESI] /*4031C3*/ XOR AL,AH /*4031C5*/ INC AH /*4031C7*/ ROL AH,2 /*4031CA*/ ADD AH,90 /*4031CD*/ STOS BYTE PTR ES:[EDI] /*4031CE*/ LOOPD SHORT crackme_.004031C2 /*4031D0*/ JMP crackme_.004030A0 \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ 2й /*40310A*/ LODS DWORD PTR DS:[ESI] /*40310B*/ ADD EAX,EBX /*40310D*/ XOR EAX,EBX /*40310F*/ ROR EBX,1 /*403111*/ SUB EBX,90807066 /*403117*/ ADD EBX,EBX /*403119*/ STOS DWORD PTR ES:[EDI] /*40311A*/ SUB ECX,4 /*40311D*/ JNB SHORT crackme_.0040310A ----- Чтобы правильно задать вопрос, нужно знать большую часть ответа. Р.Шекли. ![]() |
|
Создано: 13 декабря 2009 11:39 · Поправил: Bonez92 · Личное сообщение · #3 |
|
Создано: 13 декабря 2009 12:56 · Личное сообщение · #4 |
|
Создано: 13 декабря 2009 13:50 · Личное сообщение · #5 Я попробывал пошагать до: 004030D8 |. 61 POPAD 004030D9 |. 9D POPFD 004030DA |. 8B9A 09274000 MOV EBX,DWORD PTR DS:[EDX+crackme_#1.402709] 004030E0 |. 898A 09274000 MOV DWORD PTR DS:[EDX+crackme_#1.402709],ECX 004030E6 \. FFE3 JMP EBX После JMP EBX я прыгаю на 0x401000. 00401000 D900 FLD DWORD PTR DS:[EAX] EAX у меня равен 0. После выполнения в статусе отладчика появляется сообщение: "Acess violation when reading [00000000]". Что я не так сделал? INT 3 я убрал. ![]() |
|
Создано: 13 декабря 2009 14:02 · Личное сообщение · #6 |
|
Создано: 13 декабря 2009 14:49 · Личное сообщение · #7 |
|
Создано: 13 декабря 2009 16:42 · Поправил: coolangel · Личное сообщение · #8 Bonez92 пишет: какова ее роль? int 3 вызывает исключение. В зависимости от настроек отладчика,он может либо остановить программу на этом исключении,либо молча проигнорировать его. В данном случае,со слов ClockMan'а, программа сама обрабатывает данное исключение,и не просто обрабатывает, а еще и код в обработчике расшифровывает. ![]() |
|
Создано: 13 декабря 2009 19:11 · Личное сообщение · #9 |
![]() |
eXeL@B —› Вопросы новичков —› Не получается реализовать инлайн патч |
Эта тема закрыта. Ответы больше не принимаются. |