Пример взлома: 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-окон, неработающих функций и т.п. Дело сделано, можно радоваться. |