использования и прочее бла-бла-бла.
Сегодняшняя тема: IDA, hasp и как не надо делать защиту.
Имеем: некий аппаратно-программный комплекс ***, привязанный к хаспу. Задача - эту глупость из
него выбить
Инструменты:
IDA 6 (няшная, с кьютом)
Hex Editor Neo
Far manager
Xenocode Fox
Итак, поехали.
В бинарном каталоге находим кучу исполняемых файлов и библиотек. Первичный анализ показывает, что
часть писалась на .net, часть на чем-то вроде с++. Тыкаем все подряд, и смотрим что происходит.
Самая вкусная часть, это, конечно, логи. Внезапно находим следующее:
---
Thinclient.log:
2010.12.30 11:51:43 icCommon: Dongle not found. Exiting.
---
Грепаем по "Dongle not found", выясняем, что это находится в icCommon.dll
Ошибка №1. Всегда линкуйте библиотеки безопасности в основной бинарь. Никогда не используйте
библиотеки.
Загружаем иду. И тут нас ждет еще один сюрприз:

Ошибка №2. Никогда не выкладывайте дебаг-версии библиотек. Это открывает реализацию классов и
имена и параметры функций. Всегда включайте максимальный уровень оптимизации - это усложняет код
для человеческого восприятия.
Так выглядит мое рабочее место большую часть времени:

Следующий этап - находим вхождение строки через бинарный поиск

Переходим по кросс-ссылкам на источник, который использует эту строку

Продолжение следует...