Исследование защиты программы Astra Image
Скриншот программы Astra Image
Astra Image - интересный графический редактор для обработки фотографий. Помимо набора привычных для такого софта фильтров, в программе есть немало полезных "улучшайзеров", таких как восстановление размытого фона или выборочный контраст мелких деталей снимка. При этом все действия выполняются буквально за пару кликов в удобном интерфейсе. Также хочется отметить, что разработчики сделали основной упор на сохранение качества изображения после любой операции, поэтому можно смело рекомендовать Astra Image как новичкам, так и профессионалам. Демонстрационная версия не позволяет сохранить или скопировать результаты ваших трудов, а за полный вариант требуется выложить немаленькую сумму вечнозеленых денег. Посмотрим, можно ли что-нибудь с этим сделать.
Забираем с сайта дистрибутив, устанавливаем. В папке обнаруживается основной исполняемый файл и пара динамических библиотек, которые, похоже, выполняют всю грязную работу. Основной файл ничем не защищен и не упакован, значит дизассемблер уже ждет его :) После запуска сразу появляется наг-окно с предложением купить программу или продолжить работу в ограниченном демонстрационном режиме.
Наг-окно при старте программы
С покупкой пока повременим, проверим возможности демки. Действительно, при попытке сохранить отредактированный файл или скопировать изображение в буфер обмена появляется сообщение о невозможности выполнить это действие.
Сообщение незарегистрированной версии
А еще из внешних признаков в глаза бросается надпись "DEMO" в заголовке главного окна. Вот с нее и начнем. В файле строчка обнаруживается с первой попытки.
Строка найдена
По перекрестным ссылкам выходим на код, где эта строка задействуется. Вот он:
Code (Assembler) : Убрать нумерацию
- .text:007390E4 push dword ptr fs:[eax]
- .text:007390E7 mov fs:[eax], esp
- ; Функция проверки активации программы
- .text:007390EA call sub_656CB8
- ; Сохранить статус активации из EAX в EBX
- .text:007390EF mov ebx, eax
- ; Записать статус активации в блок настроек программы
- .text:007390F1 mov [esi+1631h], bl
- .text:007390F7 cmp bl, 1
- ; Программа не активирована, переход
- .text:007390FA jnz short loc_739107
- ; Функция проверки типа лицензии
- .text:007390FC call sub_656EB8
- ; Сохранить тип лицензии
- .text:00739101 mov [esi+1630h], al
- .text:00739107 loc_739107:
- ; Лицензия PLUS?
- .text:00739107 cmp byte ptr [esi+1630h], 2
- ; Нет, проверить еще
- .text:0073910E jnz short loc_739117
- ; Принудительно установить статус активации
- .text:00739110 mov byte ptr [esi+1630h], 1
- .text:00739117 loc_739117:
- .text:00739117 cmp byte ptr [esi+1630h], 3
- .text:0073911E jnz short loc_739127
- .text:00739120 mov byte ptr [esi+1630h], 1
- .text:00739127 loc_739127:
- ; Программа активирована?
- .text:00739127 cmp byte ptr [esi+1631h], 0
- ; Да, вывести в заголовок тип лицензии
- .text:0073912E jnz short loc_73913F
- .text:00739130 lea eax, [ebp+var_4]
- .text:00739133 mov edx, offset aDemo ; " - DEMO"
- .text:00739138 call sub_409AC0
- .text:0073913D jmp short loc_739147
- .text:0073913F ; -------------------------------
- .text:0073913F loc_73913F:
- .text:0073913F lea eax, [ebp+var_4]
- .text:00739142 call sub_409620
- .text:00739147 loc_739147:
- ; Проверить тип лицензии
- .text:00739147 movzx eax, byte ptr [esi+1630h]
- ; Чтобы выполнился переход на PLUS, тип лицензии должен быть равен 2
- .text:0073914E sub al, 1
- .text:00739150 jb short loc_739161
- .text:00739152 jz short loc_739188
- .text:00739154 dec al
- .text:00739156 jz short loc_7391AF
- .text:00739158 dec al
- .text:0073915A jz short loc_7391D6
- .text:0073915C jmp loc_7391FB
- .text:00739161 ; -------------------------------
- .text:00739161 loc_739161:
- .text:00739161 lea eax, [ebp+var_C]
- .text:00739164 mov ecx, [ebp+var_4]
- .text:00739167 mov edx, offset aAstraImage
- ; "Astra Image"
- .text:0073916C call sub_409E6C
- .text:00739171 mov edx, [ebp+var_C]
- .text:00739174 lea eax, [ebp+var_8]
- .text:00739177 call sub_40A3A4
- .text:0073917C mov edx, [ebp+var_8]
- .text:0073917F mov eax, esi
- .text:00739181 call sub_52E920
- .text:00739186 jmp short loc_7391FB
- .text:00739188 ; -------------------------------
- .text:00739188 loc_739188:
- .text:00739188 lea eax, [ebp+var_14]
- .text:0073918B mov ecx, [ebp+var_4]
- .text:0073918E mov edx, offset aAstraImagePlus
- ; "Astra Image PLUS"
- .text:00739193 call sub_409E6C
- .text:00739198 mov edx, [ebp+var_14]
- .text:0073919B lea eax, [ebp+var_10]
- .text:0073919E call sub_40A3A4
- .text:007391A3 mov edx, [ebp+var_10]
- .text:007391A6 mov eax, esi
Программа успешно "зарегистрирована"
Наг-окно при запуске программы больше не показывается, в заголовке красуется "Astra Image PLUS", при попытке сохранить файл он сохраняется. Цель достигнута, программа работает без ограничений. А главное, что после таких целебных процедур программа может работать со сменного носителя и ее можно использовать в дорожном комплекте. Спасибо авторам за интересный софт.
Просмотров: 3213 | Комментариев: 13
Метки: исследование защиты, графика
Внимание! Статья опубликована больше года назад, информация могла устареть!
Комментарии
Отзывы посетителей сайта о статье
brute
(17.02.2018 в 17:51):
что-то не очевидно.. Может, как-то использовать DynamoRIO для получения трассы, плагин xHotSpots для получения магических точек, перехват проверок реестра.. или выпрямитель рук какой? Короче, запатчил (у меня винда х64, поэтому адреса другие) как описано, файл сохраняется (я и сам с таким же результатом запатчивал на стадии ввода серийника). Только изменения в сохраненном файле не сохраняются! Кручу ползунки, жму "сохранить как" под другим именем, а в сохраненном файле изменений нет..
п.с. зачем "хиев"? Ида тачно также ищет строки, только в option-general-string надо выбрать в данном случае юникод.
п.с. зачем "хиев"? Ида тачно также ищет строки, только в option-general-string надо выбрать в данном случае юникод.
xussr
(15.02.2018 в 06:18):
Скорее опыта и знаний чтоб так фундументально все осмыслить до конца нежели у вас здесь на готовых подсказках, иначе не было интереса к данному ресурсу который помогает в этом
ManHunter
(14.02.2018 в 17:36):
И что удерживает от подвига? Копай, изучай.
xussr
(14.02.2018 в 17:29):
Да про генерацию ключа если можно очень хотелось докапаться как и что тут производиться хотя бы вводно совсем до конца думаю не стоит все будет и так понятно
ManHunter
(13.02.2018 в 18:08):
x64 патчится точно так же.
wet
(13.02.2018 в 16:53):
Эх, жалко, что Вы на этот раз пошли по пути наименьшего сопротивления, а не как обычно, вычисляли валидный серийный номер. Если бы серийник вычислили, то можно было бы зарегистрировать версию x64, которая тоже есть в комплекте.
Спасибо за идею - ни столько сам процесс, как то, что узнаю о годных программах. А серийник можно и на варёзнике раздобыть.
Спасибо за идею - ни столько сам процесс, как то, что узнаю о годных программах. А серийник можно и на варёзнике раздобыть.
ManHunter
(13.02.2018 в 14:35):
В DecomAS есть опция с подменой хвида. Но оффтопить все-таки не надо.
pawel97
(13.02.2018 в 14:14):
Извиняюсь что не в тему, не бейте больно...
Как распаковать аспр, если есть ключ на другой не известный мне hwid?
Как распаковать аспр, если есть ключ на другой не известный мне hwid?
ManHunter
(13.02.2018 в 10:41):
nubuser, на самом деле в статью попадают только итоги поисков. До этого, естественно, перебирается множество вариантов, пробуются разные подходы. Так что вся грязная работа остается "за кадром", потому и кажется, что все так просто находится с первого раза.
nubuser
(13.02.2018 в 09:23):
То, что я боялся спросить...
В том то и дело, что даже поиск"- DEMO" дает два вхождения.
А просто DEMO там еще больше.
ТО ли у ManHunter (как говорили в польском фильме "Знахарь") или потрясающая интуиция, или колоссальный опыт.
В том то и дело, что даже поиск"- DEMO" дает два вхождения.
А просто DEMO там еще больше.
ТО ли у ManHunter (как говорили в польском фильме "Знахарь") или потрясающая интуиция, или колоссальный опыт.
xussr
(13.02.2018 в 06:22):
Какието ключи что то с чемто сравнивается обфуцируется читается из lic файла лицензии мути много
Noobie
(12.02.2018 в 15:05):
Спасибо, познавательно, но уж очень быстро :-) А в софте есть на что поглядеть, вот такая надпись имеется 'TheHairyHackerHackedAndHavingHac' и еще много чего. Но пока в ольку не заряжал, просто поглядел с высоты хьюшного полета.
Добавить комментарий
Заполните форму для добавления комментария
[HKEY_CURRENT_USER\Software\Phase Space Technology\Astra Image 4.0]
"LicenseKey"="3941495052"
Еще может быть ключ с онлайн проверкой