Xaker (xakfaq@chat.ru)

Xakep, номер #020, стр. 020-062-4


crc=~crc;

for(i=32;i;i--) if(crc & 0x80000000) crc=(crc<<1)^0xDB710641;

else crc<<=1;

printf("%s %X","Possible contents:",~crc);

}

Q: Реально ли снять FLEXcrypt с инсталляционных пакетов FLEXlm или других файлов?

A: Да, абсолютно реально. Там используется простой XOR с перестановкой. Можно идти разными путями: анализ зашифрованных .fc файлов (выделить одинаковые 8-байтовые блоки кода - мы можем утверждать с 99%-ой вероятностью, что это ключ шифровки, проXORенный с 00h, то есть ничем не изменившийся), анализ с предположением внутренней (расшифрованной) информации в .fc файлах (это можно делать только в том случае, когда мы точно знаем вид и/или структуру зашифрованного файла - мы просто XORим пошифрованные куски предполагаемыми расшифрованными данными и получаем готовый ключ).

Q: Что такое CrypKey? Много слышал про него, а толком ничего не знаю...

A: CrypKey - это обычная "навертка" на программное обеспечение, которая обеспечивает легкое лицензирование (его легкость подразумевается в удобстве для производителей и дилеров). Существует несколько режимов защиты. Для активации какой-либо возможности программы (здесь сделано разделение на уровни) требуется ввести определенный код. Сей комплекс привязывается к жесткому диску, и поэтому даже после переинсталляции защищенной программы по истечению срока ее годности она также будет кричать, что не зарегистрирована. При определенных навыках отламывается очень легко. :)

Q: Как можно "снять" с программы такую заглушку (ключик в LPT-порт), как Rainbow Sentinel Super Pro?

A: Если защита имеет более чем стандартный вид, то довольно легко. Достаточно выцепить все обращения к драйверу ключа (в случае, если сам драйвер не зашит в программу) и сэмулировать их либо изменить (пропатчить) проверки ответов. В случае же, если сам драйвер прошит в программу, необходимо воспользоваться специальным скриптом для получения имен функций API в IDA. Далее все будет легко. :)

Задавать вопросы можно по E-Mail адресу xakfaq@chat.ru (E-Mail адрес состоит _только_ из английских букв). Поле письма Subject _обязательно_ должно быть с пометкой "[вопрос для FAQ]", иначе ответа ты просто не дождешься.

твой постоянный ведущий рубрики, Xakep

Назад на стр. 020-062-3  Содержание