Показать сообщение отдельно
  #5  
Старый 17.10.2012, 03:17
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

Защитить её VMProtect'ом. Антивирусные компании даже не пытаются понять смысл того, что им защищено, потому что человек со здоровой головой понять это не сможет.
Я пробовал его реверсить. Там виртуалка с шифрованными опкодами, шифрованные адреса обработчиков опкодов, шифрованные данные и ни единой функции. Весь код так сказать прямым текстом, только после каждых 1-10 команд стоит jmp или call (который юзается как jmp) куда-нибудь ещё, и код превращается в беспорядочное месиво. Стек там используется как большая помойка, почти все регистры - тоже. Код виртуалки загаживается огромнейшим количеством совершенно тупых и бесполезных команд, среди которых реальный смысл даже маленького кусочка восстановить очень тяжело. И хоть все алгоритмы шифрования сами по себе там элементарные (xor, add/sub, rol/ror и различные их комбинации), разобрать это вручную невозможно.
Слышал где-то на хакерских форумах обитают скрипты для снятия VMP старых версий, однако для новых что-то не слышал и не видел.
Если не хочется платить за VMP, можно написать свой упрощенный аналог.

Цитата:
если эту функцию запихнуть в datamodule.bpl и там же сравнивать CRC этого модуля с изначальным, то взломщику не удастся подменить изменить сам модуль...
При высоком уровне хитромордости это тоже можно обойти без особо крупных проблем - CRC = const, как следствие то место, которое считает CRC, можно заполнить NOP'ами, и поверх записать возврат верного CRC. Нужно помнить, что изменить можно не только 1-2 команды. Изменить можно десятки, сотни и тысячи команд: в крайнем случае хакер может внедрить ДЛЛ, написанную на Delphi/C/C++ (LoadLibrary-то он найдет где впихнуть), которая будет полностью менять целые ветви программы, огромные функции и т.д. на полностью свой код. И это не трудно, мне самому приходилось так делать (только не для взлома, а для добавления множества совершенно новых фич в программу).

З.Ы. +1 к
Цитата:
Но прежде чем заниматься фигней, представить ситуацию, когда злые хакеры ломают программу прямо в локальной сети предприятия.
Один знакомый как-то раз сказал: защита делается такой, чтобы стоимость взлома была выше, чем польза от него.
__________________
jmp $ ; Happy End!
The Cake Is A Lie.
Ответить с цитированием