Паканем и зашифруем
Дубовцев Алексей
Xakep, номер #061, стр. 061-064-3
Протекторы
Если твоя основная цель не паковка программы, а защита кода от злых дядек, то тебе нужны утилиты другого класса – протекторы. Их принцип действия близок к паковщикам, но вместо уменьшения размера они шифруют файл. К тому же протекторы после загрузки файла в память пользуются специальными трюками, позволяющими предотвратить его отладку и исследование кода. Для этого они хитрым образом изменяют внутренние структуры исполняемого файла, используют самомодифицирующийся код, кусками шифруют части файла в памяти по ходу исполнения. Перечислять, а тем более детально описывать все применяемые ими приемы, здесь смысла не имеет, поскольку это очень большая и сложная тема, требующая специальной подготовки. Единственное, что стоит отметить, это наличие встроенных функций шифрования прямо в самом паковщике. Получается два в одном флаконе.
Наиболее мощным протектором на данный момент является ASProtect, написанный нашим соотечественником Алексеем Солодовниковым. До сих пор для него не написано депротектора, позволяющего деактивировать защиту в автоматическом режиме. Снятие такой защиты является задачей далеко не тривиальной, доступной даже не всем профессиональным хакерам. На тему снятия ASProtect написано множество статей, в которых обсуждаются отдельные сложные моменты, но абсолютной панацеи до сих пор не найдено.
Напоследок хотелось бы предупредить тебя, что протекторы защищают программы лишь от исследования другими людьми, но никак не от взлома и кражи. В их задачи не входит установка на твой файл паролей или серийных номеров. (Хотя есть и такие протекторы, но на их защиту не стоит надеяться – она снимается одним пальцем.) Поддержку системы регистрации и проверки серийных номеров тебе придется писать самостоятельно. А этот процесс отнюдь не из самых простых, поскольку если ты ошибешься, то ситуация может сложиться так, что для взлома твоей программы вообще не придется копаться в дебрях откомпилированного кода, а достаточно будет лишь подправить какой-нибудь ключик в реестре. Но это уже совсем другая история...
А я программер!
Если ты хочешь написать свой паковщик, то тебе несказанно повезло. Самый известный из паковщиков - upx.exe - распространяется вместе с исходным кодом. Ты можешь скачать его сорсы на sourceforge.net/projects/upx/.
WWW
Все вышеописанные протекторы и упаковщики ты сможешь слить с сайта wasm.ru. На нем ты также найдешь несколько статей, описывающих работу с ними.
CD
На нашем диске лежат бинарные версии упаковщиков, а также сорсы UPX.