Скриншот материала «О защитах и Взломах»
Это творение ни в коей мере не претендует ни на полноту изложения, ни
на 100%-ную точность предоставленных данных, его нельзя рассматривать как
техническое руководство, и т.п., это всего лишь размышления вслух, попытка хоть
как-то упорядочить и свести воедино разрозненные мысли и материалы, и каждое
предложение следует подвергать максимальной критике и сомнению, лишь в этом
случае может быть достигнут сколь-нибудь заметный прогресс (как и в любой
другой области, между прочим).
Основной темой будет защита от несанкционированного копирования, однако
возможны отступления и на сопутствующие области, я так думаю…
З.Ы. Разрешаю использовать как реферат, материала идейно (с учетом
ссылок) при желании и на диплом хватит.
Наиболее часто встречающийся
вопрос программиста хакеру (поскольку написанием защит у нас занимаются именно
последние, либо бывшие, либо совмещающие оба вида деятельности) звучит так: "Как
написать невзламываемую защиту
?"
И наиболее популярный ответ: "Таких защит не бывает"
Истина, как всегда, лежит
посередине, и про это уже было немало сказано, вкратце напомним: стоимость разработки защиты должна быть
эквивалентна стоимости потерь от ее взлома (а не стоимости взлома, как
принято считать). Например, избыточными можно назвать затраты по защите
комплекса 1С:Предприятие, недостаточными — систему security CityBank'а.
В основе существования области
обеспечения безопасности лежит извечный инстинкт человека делать то, что нельзя.
Исходя из этого методы борьбы можно разделить, условно, на 3 категории: психологические, социальные и технологические.
Ярким примером первой группы
можно считать популярную в начале 90-х программу Дэна Роллинза (Dan Rollins) TechHelp,
которая жалобно просила не использовать ее пиратским образом, чтобы дети автора
не ходили голодными.
Методы второй группы используют
поведение человека в социуме и опираются на уже установившиеся социальные нормы
обеспечения безопасности. Сюда можно отнести маркетинговые, юридические, бандитские (да, бывает и так !) и
некоторые другие приемы.
Ну и, наконец, третья группа,
которую и имеют в виду, задавая вышеуказанный вопрос. Собственно, про нее мы и
будем говорить.
Мотивом написания сего трактата
послужила необходимость создать схему или методику защиты от несанкционированного копирования, не использующую изощренных
технических приемов, но вместе с тем весьма устойчивую к наиболее
распространенным техникам взлома (а, значит, и большей части хакеров, не считая
гуру, разумеется J)
Почему без технических сложностей ? — потому, что исходя из
богатого опыта, автор убедился, что в споре "брони и снаряда" в
данном случае снаряд гораздо чаще бывает "на высоте" и все
стандартные анти-отладочные и т.п. трюки, а также методы Reverse Engineering (восстановления исходного
кода) детально описаны, изначально они появляются именно как хакерские приемы,
а лишь затем их модификации находят место в защитных системах (заметим, что вышесказанное относится к
защите от несанкционированного копирования, в других случаях это не обязательно
так).
Единственный достойный простенький трюк —
определение наличия WinICE, с непривычки сильно затрудняет взлом всем,
свято уверовавшим в абсолютную "крутость" (в смысле
"невидимость") NuMega
SoftICE for WinXX.
{ Выдержка
из Interrupt List by
R.Brown:
Int 2F Fn
1684 - MS Windows - Get Device API Entry
Point
AX = 1684h
BX = virtual device (VxD) ID
ES:DI = 0000h:0000h
Return: ES:DI
-> VxD API entry point, or 0:0 if the VxD does not support an API
[...]
BX = 0202h WINICE (SoftICE/W)
}