|
#1
|
||||
|
||||
Антидампинг
Вот распаковываю программу в память. Мне нужно, что во время ее работы с памяти не сняли дамп. Как можно реализовать антидампинг (если можно, то с кодом). Я знаю, что абсолютной защиты от дампа не бывает, но как можно усложнить жизнь взломщику пытающегося это сделать? Рылся в WWW, но все методы которые там есть уже неактуальны.
Программирование - это искусство и наш смысл жизни. Последний раз редактировалось moo2k, 05.03.2008 в 17:06. |
#2
|
||||
|
||||
Антидампинг
Сразу вопрос - ты свой пакер пишешь либо используешь какой-нибудь сторонний?
Если свой - то можно воровать первых 15-20 байт (в зависимости от инструкций), потом исполнять в секции распаковщика, а только потом возвращать управление в основную программу. В идеале разбор должна вести ВМ. Недостаток - нужно писать дизассемблер длин. Если пакер сторонний, то можно перенести первых 30 команд в секцию распаковщика руками и подправить переход на OEP. Ну а чтобы враги не догадались разбавить команды мусором. Недостаток - невозможность автоматизации. Как вариант использовать технологию CopyMem, что реализована в Armadillo. Суть ее в том, что происходить динамическая шифровка/дешифровка кода. Для этого используется DebugAPI. Недостаток - медленннооо.. И еще.. Дамп можно снять в любом случае. Даже если в программе есть как-будто бы антидамповые технологии. Дамп можно снять при помощи функции ReadProcessMemory. А сколько байт считывать об этом скажет РЕ-заголовок. Мой тебе совет - критические участки кода выполняй в виртуальной машине или используй скрипты. Есть очень хороший компонент FastScript 1.92 (скачать отсюда http://www.fast-report.com/pbc_download/fsd7.exe ) Если что пиши в личку. Хорошо написанная программа не требует документации ICQ 9-184-668. |