обход антиотладочного приема в отладчике, интегрированном в IDA Pro
Основная проблема протектора в том, что переменная anti_debug
проверяется в одном-единственном месте, один единственный раз! Чтобы обойти защиту можно либо записать в переменную anti_debug
любое значение отличное от нуля, либо трассировать программу вплоть до достижения INT 03h, после чего "вручную" изменить значение регистра $pc на anti_debug
и спокойно продолжить отладку. так же можно заменить инструкцию "cmp anti_debug, 0" на "cmp anti_debug, 1" (но это только в том случае, если в программе нет проверки целостности собственного кода). Короче вариантов много, но все они требуют участия человека, что напрягает.
Когда борьба с Byrneye всех ### хакеров окончательно достала, пацак ### хакер по кличке ByteRage (byterage@yahoo.com) написал автоматический распаковщик — burneye unwrapper, по обыкновению бесплатно распространяемый в исходных текстах. Впрочем, называть "исходными текстами" крошечную Си-программу представляющую собой загружаемый модуль ядра, можно только с большой натяжкой.