Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #57, АВГУСТ 2005 г.

Ключик к сердцу

Chingachguk/HI-TECH

Спецвыпуск: Хакер, номер #057, стр. 057-094-2


bpx CreateFileA if (*(esp->4)==0x5C2E5C5C).

Выполнив эту команду, реверсер установил в отладчике SoftIce слежение (всплытие отладчика по настроенному событию) за открытием файлов, имена которых начинаются с "\\.\". Скорее всего, первый и единственный вызов с таким именем файла со стороны защиты и будет происходить в коде, который "проверяет" наличие отладчика в системе.

Словом, между разработчиками и реверсерами издревле существует своего рода гонка вооружений. Несмотря на переменные успехи то одной, то другой стороны, ясно одно: при примерно одинаковом интеллектуальном потенциале и терпении у защиты и реверсера устанавливаются приблизительно равные шансы, но при неограниченном времени у последнего возникает практически 100% вероятность вскрытия кода! А это уже заставляет серьезно задуматься. К тому же разработчик никогда не может быть уверен в том, что он не допустил досадного промаха при проектировании/реализации защиты, а самое главное: его код, написанный раз и навсегда, в любой момент может быть атакован совершенно новыми техниками реверсинга/аппаратными возможностями процессора или запуском в той же виртуальной машине. Вынося же часть алгоритма в "черный ящик" аппаратного ключа, он может быть уверен хоть в чем-то, потому что исследовать начинку dongle'a намного сложнее, чем обычный код. Раз так, подробнее поговорим об аппаратных ключах защиты.

Маркетинг решает все

Прежде чем приступить к рассказу о внутренностях ключей защиты, разрешим вопрос о том, что именно подталкивает разработчиков защит к их выбору? Основная причина очевидна – простота. У разработчика появляется возможность не писать защиту самостоятельно, не будучи профессионалом в этой области, а просто купить "коробку", которая вроде бы несложным образом подключится к его программе и защитит это детище. За ведущими разработчиками ключей стоит специализация в области защиты и отличная репутация как результат хорошей маркетинговой политики. Именно по этим причинам рынок аппаратных ключей защиты расширяется не по дням, а по часам. Разработчикам ключей относительно несложно привести "весомые" доказательства неуязвимости своих товаров, так как полный анализ всего комплекса защиты, как правило, занимает довольно значительное время и вряд ли будет выполнен в момент презентаций. Декларируемые разработчиком свойства ключа (функциональность) даже в плане ознакомления требуют от программиста значительного времени, что уж говорить о серьезном криптоанализе функций ключа. Производители ключей предлагают не просто "железку" - они предлагают полный комплект разработчика защиты, включающий в себя удобный интегратор защиты с защищаемой программой, хорошо документированное API защиты, техподдержку и т.п. При таких условиях сделать выбор в их пользу не так уж и трудно. Тем не менее, и здесь не все так просто.

Назад на стр. 057-094-1  Содержание  Вперед на стр. 057-094-3