Исследование защиты программы DA-HtAccess
Скриншот программы DA-HtAccess
DA-HtAccess - редактор файлов .htaccess, которые используются для конфигурации серверов Apache. Неплохой помощник не только для начинающих web-мастеров, но и для профессионалов, потому что избавляет от необходимости держать в голове кучу инструкций. Как вы могли догадаться, раз уж программа появилась в этом разделе, значит она требует финансовых вливаний. Ну или достаточно ограничиться внимательным прочтением статьи.
Забираем с офсайта дистрибутив, устанавливаем, смотрим. При запуске программы открывается триальное окно с таймером и предложением зарегистрироваться. На ввод левых регистрационных данных программа реагирует сообщением:
Сообщение о неправильной регистрации
Программа написана на дотнете, поэтому отправляем ее в соответствующий инструмент, то есть в dnSpy. Обфускации там тоже никакой, файл откроется без ошибок. Если посмотреть список методов сборки, то сразу в глаза бросается обработчик триального окна с характерным названием:
Обработчик триального окна
В обработчике нажатия на кнопку регистрации выполняется вызов функции Register, после проверки выводится сообщение об успешной или ошибочной регистрации.
Обработчик нажатия на кнопку
Кликом на название функции переходим дальше.
Функция проверки регистрации
Еще одна "говорящая" функция - CheckSerial. Клик на нее и внутри мы обнаруживаем вызов функции генерации серийного номера. Еще один клик.
Функция генерации серийного номера
Код простейший. Берется первая буква из регистрационного имени, длина регистрационного имени, некая константа keyBase, а затем с этими значениями выполняются арифметические операции. Юникодная закорючка в первой строке формулы - это число 666, просто декомпилятор тут немного лажанул. Ставим точку останова на начало функции генерации, затем через меню запускаем программу на выполнение.
Локальные переменные в режиме отладки
Пошаговой трассировкой доходим до конца функции генерации и смотрим на локальные переменные. Отлично, теперь мы знаем правильную пару для регистрации, это регистрационное имя "ManHunter / PCL" и серийник "1335792-811039614-7723649". Также мы выяснили значение константы keyBase, которая используется в формуле. Это 14E82 в шестнадцатеричной системе счисления или 85634 в привычной нам десятичной. Закроем dnSpy и попробуем зарегистрировать программу найденными значениями.
Программа успешно зарегистрирована
Регистрация прошла успешно, после перезапуска все триальные признаки исчезли. Схема генерации ключа несложная, можно сделать свой кейген. Если убрать все ненужное, то код генерации правильного серийника сводится вот к такой формуле:
int length = name.Length;
int keyBase = 85634;
char c = name[0];
text = (keyBase * length + (int)(c * 666)).ToString() + "-";
text += (keyBase * (int)c * 123).ToString() + "-";
text += (keyBase + length * (int)c * 6613).ToString();
Код первого символа имени можно посмотреть по табличке, длину имени посчитать тоже не составит труда, значение константы keyBase мы выяснили в отладчике, а дальше все можно посчитать на обычном калькуляторе. Цель достигнута.
Просмотров: 1937 | Комментариев: 4
Метки: исследование защиты, .NET
Внимание! Статья опубликована больше года назад, информация могла устареть!
Комментарии
Отзывы посетителей сайта о статье
xT3r
(29.05.2019 в 10:32):
Случаем, в "кубик иона" эволюционной версии не заглядывали? Очень было бы интересно прочитать Вашу статью о его приручении, если, конечно, это возможно.
MaCTeP
(26.05.2019 в 09:16):
Сам кейген к утилите -> https://drive.google.com/open?...AZQGblO2MOke
xussr
(22.05.2019 в 06:30):
по dnSpy как и что делать не силен в нете чуть подробней можно ..
Добавить комментарий
Заполните форму для добавления комментария
PS:
Разминка для ума. :)