Доспехи
ря
З
ащищая свою программу, рассчиты-
вайте на высокую квалификацию
взломщика и на то, что для взлом.а
будет использоваться лучшее ПО.
Профессиональный взломщик, как прави-
ло, высококлассный программист, хорошо
владеющий ассемблером, и знакомый с
технологией обратного проектирования
(reversing engineering), имеющий на своем
счету не одну взломанную защиту. Каче-
ство защиты оценивается количеством че-
ловекочасов, необходимых на ее снятие.
Чем и зачем
Очень часто приходится слышать, что для
защиты программы ее достаточно сжать ка-
ким.-нибудь упаковщиком, например ASPock
(www.aspack.com) или UPX (upx.soorce forge.net).
Вот выдержка из документации ASPack:
«Может ли ASPack защитить мою про-
грамму от хакеров?
ASPack — только упаковщик, он не яв-
ляется полноц енной защитой. Н о ASPack —
хорош ая защ ита от непрофессиональных
хакеров».
Вы уверены, что вашу программу будут
проверять на стойкость только непрофес-
сиональные хакеры?
Так как при запуске упакованной про-
граммы загрузчик сначала полностью рас-
паковывает программу в памяти, а потом
передает ей управление, не составляет
особого труда сбросить на диск дамп па-
мяти образа программы и при необходи-
мости подкорректировать таблицу импор-
та, тем самым получив работоспособную
версию программы.
Программы для упаковки можно исполь-
зовать в комплексе с другими мерами, та-
кими как антиотлсщочные приемы, провер-
ка контрольной суммы, шифрование и т.д.
Ч то о как
При создании защиты следует проек-
тировать программу так, чтобы она изна-
чально была неработоспособна без за-
щиты. Последняя должна быть максим,аль-
но, насколько это возможно, интегриро-
вана в программу.
Также не следует прямо прибегать к по-
пыткам, обнаружить определенного типа про-
граммы, находящиеся в арсенале взломщи-
ка, равно как и противодействовать им. На-
пример, известны и часто употребительны
способы обнаружения отладчика Softlce, но
они легко обходятся. Мало того, все это при-
водит лишь к тому, что защита сама пока-
зывает взломщику, где она находится. Такие
меры лучше применять для отвлечения взлом-
щика от реального кода защиты.
Для предотвращения снятия дампа об-
раза программы применяйте динамиче-
ское шифрование кода и данных по мере
исполнения программы. Тогда просто так
снять дамп программы грабителю не удаст-
ся. Придется снимать дамп несколько раз,
а потом, объединять расшифрованные час-
ти в одну программу. Кроме того, можно
не только шифровать, но и перемещать
процедуры в памяти.
Г
Геннадий ФРОЛОВ
На страницах еженедельника, а также в других печатных изданиях
неоднократно поднималась тема защиты ПО от взлома. По многим
причинам она еще долго будет оставаться актуальной. Опасаться
есть чего: это и незаконное использование алгоритмов ПО, и его
модификация, и распространение, и сбыт. Проходит совсем немного
времени после выхода программы в свет — и вот уже на хакерских
серверах лежат к ней кряки, хотя разработчик вроде бы уделил
должное внимание защите. Почему же так происходит?
Для защиты данных используйте только
известные и проверенные криптографиче-
ские алгоритмы — правда, это мало помо-
жет, если ключ к шифру будет храниться в
самой программе.
В парольных защитах не храните па-
роль в открытом, виде и для сравнения ис-
пользуйте хеш-функцию, например алго-
ритм, MD5 (www.foqs.org/rfcs/rfcf321.html), —
это обезопасит программу от восстанов-
ления пароля из кода программы. Прове-
ряйте контрольную сумму критических уча-
стков кода, таких как, например, процеду-
ры сравнения.
Если вы используете защиту, основан-
ную на регистрационных номерах, то для
генерации номеров используйте так назы-
ваемые алгоритмы шифрования с откры-
тым ключом, и тогда, если вы все сделае-
те правильно, вашей программе не страш-
ны никакие кодогенераторы. Также эти ал-
горитмы хорошо применять для цифровой
подписи программы, как, например это
реализовано у системных файлов Win-
dows 2k+. Наиболее известным алгорит-
мом на открытом ключе является алгоритм
RSA (www.faqs.org/rfcs/rfc3447.html).
При создании триальных версий не
стоит рассчитывать на достоверность да-
ты и времени системных часов — если
программа предназначена для работы с
Интернет, есть смысл получать дату че-
рез NTP- или SNTP-сервисы. Также если
программа для работы использует базы
данных, то можно использовать даты на-
чальной и конечной записей какого-ни-
будь журнала, наприм.ер журнала опе-
раций в складских и бухгалтерских про-
граммах.
Если продукт корпоративный, есть смысл
позаботиться о защите с помощью аппа-
ратных средств, например USB-ключей. Се-
годня на рынке представлено достаточное
их количество, среди которого встречают-
ся модели, поддерживающие мощные крип-
тографические алгоритмы и содержащие
в себе энергонезависимые часы (www.
oladdin.ru/ solutions /hasp/haspline/HASP4time.php).
Полный комплекс мер по созданию за-
щиты зачастую может превысить трудоза-
траты на создание программы. И если вы
не специалист в этой области и хотите об-
легчить себе работу, пожалуй, стоит об-
ратиться к специально созданному для этой
цели программному обеспечению:
ASProtect
VAvw.aspack.com
Статус: shareware
Программа предназначена для защи-
ты исполняемых файлов и динамических
библиотек формата Win32/PE. Поддер-
живает: антиотладочные приемы, поли-
морфное шифрование, проверку кон-
трольной суммы как программы в целом,,
так и участков кода, сжатие кода и дан-
ных, создание триальных версий про-
грамм, генерацию ключей по алгоритму
RSA, что исключает возможность созда-
ния кодогенератора, эмуляцию систем-
ных функций, что затрудняет снятие за-
щиты.
Armadillo
www.siliconrealms.com
Статус: shareware
Мощный протектор с солидным ар-
сеналом настроек, работает на основе
трейсера практически со всеми W in32/
PE-файлами, независимо от использо-
ванных языков программирования. Под-
держивает антиотладочные приемы, про-
верку контрольной суммы, сжатие кода
и данных, создание триальных версий
программ, привязку к аппаратному обес-
печению, динам,ическое шифрование ко-
да, имеет развитую систему генерации
ключей.
1
№ 3 /3 3 0 17января-24 января 2005
предыдущая страница 37 Мой Компьютер 2005 03 читать онлайн следующая страница 39 Мой Компьютер 2005 03 читать онлайн Домой Выключить/включить текст