Сейчас на форуме: asfa, _MBK_ (+6 невидимых)

 eXeL@B —› Вопросы новичков —› Не получается реализовать инлайн патч
Посл.ответ Сообщение

Ранг: 39.6 (посетитель)
Активность: 0.030
Статус: Участник

Создано: 13 декабря 2009 08:52
· Личное сообщение · #1

Привет всем! Решил потренероваться на инлайн патчинге. В качестве примера взял "|Neo|-mAn crackme #1".
Почитал решение от tscube, не понял как нашел код декриптора (п.6 The decrypter's main code). Пробывал Hardware breakpoint - не пашет. Скажите, пожалуйста, как самому узнать, где спрятан код "дешифратора"?

В качестве отладчика пользуюсь OllyDbg 1.10.
Решение от tscube: http://slil.ru/28335223

e027_12.12.2009_CRACKLAB.rU.tgz - neo-cm1.zip




Ранг: 568.2 (!), 464thx
Активность: 0.550.57
Статус: Участник
оптимист

Создано: 13 декабря 2009 10:17
· Личное сообщение · #2


////////////////////////////////////////////////////////////////////// ///////
/*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
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

/*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

-----
Чтобы правильно задать вопрос, нужно знать большую часть ответа. Р.Шекли.




Ранг: 39.6 (посетитель)
Активность: 0.030
Статус: Участник

Создано: 13 декабря 2009 11:39 · Поправил: Bonez92
· Личное сообщение · #3

ClockMan
Спасибо коненчо. Но я по решению уже понял это.
Вопрос в том как это находить? Просто нажимать на F8, F7 пока не увидишь что-то вроде этого?




Ранг: 67.4 (постоянный)
Активность: 0.040
Статус: Участник

Создано: 13 декабря 2009 12:56
· Личное сообщение · #4

Ну да ручками трейсишь, я до OEP дошел меньше чем за минуту(только проснулся), со временем все будет быстрее и понятнее, в других ситуациях можно поступать по другому, но в твоей потрейси руками и сам увидишь эти циклы, там одно SEH исключение еще есть на INT 3.



Ранг: 39.6 (посетитель)
Активность: 0.030
Статус: Участник

Создано: 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 я убрал.




Ранг: 568.2 (!), 464thx
Активность: 0.550.57
Статус: Участник
оптимист

Создано: 13 декабря 2009 14:02
· Личное сообщение · #6

Bonez92 пишет:
INT 3

Срабатывает обработчик исключений самой проги где и идёт раскриптовка кода программы

-----
Чтобы правильно задать вопрос, нужно знать большую часть ответа. Р.Шекли.




Ранг: 39.6 (посетитель)
Активность: 0.030
Статус: Участник

Создано: 13 декабря 2009 14:49
· Личное сообщение · #7

Не понял?Разве INT3 не служит для обнаружения отладчика? Если в данном случаи нет - то какова ее роль?



Ранг: 20.5 (новичок), 3thx
Активность: 0.010
Статус: Участник

Создано: 13 декабря 2009 16:42 · Поправил: coolangel
· Личное сообщение · #8

Bonez92 пишет:
какова ее роль?

int 3 вызывает исключение. В зависимости от настроек отладчика,он может либо остановить программу на этом исключении,либо молча проигнорировать его. В данном случае,со слов ClockMan'а, программа сама обрабатывает данное исключение,и не просто обрабатывает, а еще и код в обработчике расшифровывает.



Ранг: 39.6 (посетитель)
Активность: 0.030
Статус: Участник

Создано: 13 декабря 2009 19:11
· Личное сообщение · #9

Буду больше про IN3 изучать.
ClockMan, Sunzer, coolangel - выражаю благодарность


 eXeL@B —› Вопросы новичков —› Не получается реализовать инлайн патч
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати