Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #57, АВГУСТ 2005 г.

Пример взлома: SourceFormatX

Ara (ara@clteam.net)

Спецвыпуск: Хакер, номер #057, стр. 057-052-6


0045A00D MOVZX ESI,BYTE PTR DS:[EBX]

0045A010 MOVZX ECX,AL

0045A013 XOR ECX,ESI

0045A015 SHR EAX,8

0045A018 XOR EAX,DWORD PTR DS:[ECX*4+579BC0]

0045A01F INC EBX

0045A020 DEC EDX

0045A021 JNZ SHORT 1003.0045A00D

0045A023 POP ESI

Разбираться в алгоритме мы не будем, отметим только, какое значение получается в итоге - оно будет в регистре ЕАХ. У меня на выходе из процедуры EAX = 69E70672. Естественно, эта контрольная сумма будет неверной. Чтобы узнать правильную, будем смотреть, что должно быть в оригинальной программе. Потом попробуем подставить нужное значение в распакованную.

Не попадаясь на антиотладочные приемы, запускаем программу и аттачимся к своему процессу. Для этого запускаем оригинальную версию программы, открываем в отладчике меню File->Attach и выбираем наш процесс. Нажимаем <F9>, ставим бряк на 0045A026 (остановившись на этом адресе, можно будет увидеть верную контрольную сумму), открываем любой пример, жмем Format и смотрим правильную контрольную сумму. Должно быть 1DFF122A.

Поменяем немного код распакованной жертвы. Тут можно делать все, на что хватит фантазии. Я сделал таким образом:

0045A009 MOV EAX,1DFF122A

0045A00E JMP SHORT 1003.0045A023

...

0045A024 NOP

0045A025 NOP

Сохраняем изменения, перезапускаем программу и проверяем работу - теперь все форматируется как положено. К тому же работает кнопка Obfuscate. Очень хорошо, можно заняться функцией Format All, которая вообще не хочет работать в незарегистрированной версии. Опять обратимся к помощи DeDe. Теперь наша процедура будет называться FormatAllBtnClick. Таким же способом, как и раньше, ставим бряк на адрес начала процедуры и, немного потрейсив, находим адрес вызова сообщения. Снова чуть выше вызова поменяем условный переход на безусловный.

0056468B CMP BYTE PTR SS:[EBP-35],0

0056468F JNZ SHORT 1003.005646B2

00564691 MOV EAX,0D9

00564696 CALL 1003.005589B0

0056469B MOV EAX,1003.00565680

005646A0 CALL 1003.005570D0

Сохраняем изменения и любуемся работой взломанной программы. Нет никаких нудных сообщений, NAG-окон, неработающих функций и т.п. Дело сделано, можно радоваться.

Назад на стр. 057-052-5  Содержание  Вперед на стр. 057-052-7