Исследование защиты программы Asoftis 3D Box Creator
Скриншот программы Asoftis 3D Box Creator
Программа 3D Box Creator от компании Asoftis предназначена для создания изображений трехмерных коробок с красивым оформлением, логотипами и прочим. Результаты до шедевров точно не дотягивают, видели и получше. Но и которые получше, и это поделие, по какой-то неведомой причине все требуют денег.
Первым делом забираем с офсайта дистрибутив, устанавливаем, смотрим. Главный исполняемый файл ничем не упакован, отправляем его на дизассеблирование. На ввод левых регистрационных данных программа реагирует следующим сообщением:
Сообщение о неправильной регистрации
Строка сообщения для начального анализа есть, поиском в исполняемом файле находится следующая конструкция. Необычная запись, но тут первой частью гарантированно идет индекс, а дальше варианты сообщения на нескольких языках.
Строка сообщения в файле
Получается, что строка грузится по индексу. Он тоже обнаруживается в файле с первого же захода:
Строка индекса
А вот используется этот индекс в следующей конструкции. Как видите, тут сразу загружаются несколько языковых строк.
Указатели на индексы
Теперь давайте задействуем логику. Если строки загружаются, то должны быть какие-то ссылки на результат загрузки, по которым в дальнейшем программа будет к этим строкам обращаться. Первая функция одинаковая для всех строчек, можно предположить, что она выполняет загрузку. А вот следующей за ней функции в качестве одного из аргументов передается DWORD с увеличивающимся значением. Вот это и есть адрес, куда должна сохраняться ссылка на загруженную строку. Строке с сообщением о неправильной регистрации соответствует ячейка с адресом 00BB0830.
Перекрестные ссылки на указатель
Открываем в дизассемблере список перекрестных ссылок на этот адрес, смотрим. Кроме кода загрузки этот адрес используется в следующем коде.
Code (Assembler) : Убрать нумерацию
- .text:00AA8A62 push eax
- .text:00AA8A63 lea edx, [ebp+var_24]
- .text:00AA8A66 mov eax, [ebx+3C4h]
- .text:00AA8A6C call sub_53DF28
- .text:00AA8A71 mov edx, [ebp+var_24]
- .text:00AA8A74 pop eax
- ; Вызвать функцию сравнения
- .text:00AA8A75 call sub_40C7AC
- ; Если строки не равны, перейти на вывод сообщения
- .text:00AA8A7A jnz short loc_AA8AFB
- .text:00AA8A7C mov eax, dword_BB082C
- .text:00AA8A81 call sub_5992CC
- .text:00AA8A86 mov ecx, 2001Fh
- .text:00AA8A8B mov dl, 1
- .text:00AA8A8D mov eax, ds:off_502868
- .text:00AA8A92 call sub_5039F8
- .text:00AA8A97 mov esi, eax
- .text:00AA8A99 mov edx, 80000001h
- .text:00AA8A9E mov eax, esi
- .text:00AA8AA0 call sub_503A9C
- .text:00AA8AA5 mov cl, 1
- .text:00AA8AA7 mov edx, offset off_AA8B70
- .text:00AA8AAC mov eax, esi
- .text:00AA8AAE call sub_503BF4
- .text:00AA8AB3 lea edx, [ebp+var_28]
- .text:00AA8AB6 mov eax, [ebx+3C0h]
- .text:00AA8ABC call sub_53DF28
- .text:00AA8AC1 mov ecx, [ebp+var_28]
- .text:00AA8AC4 mov edx, offset off_AA8BBC
- .text:00AA8AC9 mov eax, esi
- .text:00AA8ACB call sub_50454C
- .text:00AA8AD0 lea edx, [ebp+var_2C]
- .text:00AA8AD3 mov eax, [ebx+3C4h]
- .text:00AA8AD9 call sub_53DF28
- .text:00AA8ADE mov ecx, [ebp+var_2C]
- .text:00AA8AE1 mov edx, offset off_AA8BDC
- .text:00AA8AE6 mov eax, esi
- .text:00AA8AE8 call sub_50454C
- .text:00AA8AED mov eax, off_BB1448
- .text:00AA8AF2 mov eax, [eax]
- .text:00AA8AF4 call sub_AAB494
- .text:00AA8AF9 jmp short loc_AA8B05
- .text:00AA8AFB ; ---------------------------------------
- .text:00AA8AFB loc_AA8AFB:
- ; Вывести сообщение о неправильной регистрации
- .text:00AA8AFB mov eax, dword_BB0830
- .text:00AA8B00 call sub_5992CC
Сравнение строк
Отправляем программу в отладчик, ставим точку останова по адресу 00AA8A75, запускаем программу на выполнение и повторяем регистрацию левыми данными. Когда точка останова сработает, в регистрах EAX и EDX будут указатели на введенную левую строку и нечто, очень похожее на серийный номер. Так, для имени "ManHunter / PCL" проверочный серийник будет "888576-554916".
Программа успешно зарегистрирована
Закрываем отладчик, запускам программу в обычном режиме и повторяем региcтрацию найденными данными. Программа сухо благодарит, но все ограничения при этом тут же снимаются. Цель достигнута. Остальные программы этого разработчика приводятся в чувства аналогичным образом.
Просмотров: 393 | Комментариев: 0
Метки: исследование защиты
Комментарии
Отзывы посетителей сайта о статье
Комментариeв нет
Добавить комментарий
Заполните форму для добавления комментария