Исследование защиты программы Light Image Resizer
Скриншот программы Light Image Resizer
Программа Light Image Resizer предназначена для массового изменения размера изображений и конвертирования их в разные форматы. Лично у меня подобная необходимость возникала всего лишь несколько раз за всю жизнь, но раз есть задача, то должен быть и инструмент. Light Image Resizer позиционируется как бесплатная программа для домашнего использования, но, как часто бывает в таких случаях, это всего лишь маркетинговая уловка.
Скачиваем дистрибутив, запускаем установку, но делаем это очень осторожно. В процессе установки нам пытаются впарить загрузчик какой-то адвары, которую антивирус успешно блокирует. Еще на фаерволе отмечается какая-то сетевая активность установщика, что тоже должно незамедлительно пресекаться. Зато все бесплатно для домашнего использования, ага.
Триальное окно при старте программы
Перед запуском программы появляется вот такое окно со счетчиком времени и предложением выложить бабло на полную версию.
Окно при выходе из программы
Просто выйти из программы тоже нельзя, перед завершением работы обязательно откроется еще одно рекламное окно.
Незарегистрированная программа
Ну и совсем невинным на этом фоне смотрится надпись "Незарегистрированная" в окне "О программе". С чего начать исследование? Я считаю, что лучше сделать это с поиска начального триального окна. В ресурсах оно описано как "TFRMTRIAL".
Форма триального окна в ресурсах
Программа написана на Дельфи, значит лучше всего для анализа подойдет IDR. Я уже несколько раз описывал в статьях работу с этим замечательным инструментом, вот и на этот раз он нам очень поможет. Впрочем, от дизассемблера тоже отказываться рано, поэтому откроем исполняемый файл и в IDR, и в IDA. В IDR на вкладке "ClassView" поиском находим все, что связано с триальным окном.
Обработчики триального окна в IDR
Первые четыре обработчика триального окна относятся к его кнопкам и таймеру, а вот последний, ".Execute" - это именно то, что нас интересует. Он срабатывает при создании формы. Клик на названии обработчика и мы переходим к его дизассемблированному коду.
Код обработчика триального окна в IDR
В правой колонке две перекрестные ссылки на него. Первая - из секции данных, вторая - из секции кода. Клик на второй и мы попадаем на участок кода, откуда вызывается обработчик ".Execute". Я специально выделил курсором строчку, где выполняется проверка и последующий условный переход. Обратите внимание, как обозначен байт, который проверяется. Это булева переменная, да еще и обозначенная как "fTrial".
Код вызова обработчика триального окна в IDR
На этом с IDR закончили, переходим в дизассемблер. В нем надо открыть тот же самый участок кода, который был найден в IDR в последнем действии.
Code (Assembler) : Убрать нумерацию
- .text:00E01D32 mov eax, off_EBF72C
- .text:00E01D37 mov eax, [eax]
- .text:00E01D39 call sub_5B086C
- .text:00E01D3E mov eax, [ebp+var_1C]
- ; Проверить байт (boolean)
- .text:00E01D41 cmp byte ptr [eax+761h], 0
- ; Если он равен 0, то есть false, то перепрыгиваем вызов триального окна
- .text:00E01D48 jz short loc_E01D70
- .text:00E01D4A mov eax, off_EBE9FC
- .text:00E01D4F cmp dword ptr [eax], 0
- .text:00E01D52 jz short loc_E01D70
- .text:00E01D54 call sub_A1EB30
- .text:00E01D59 mov edx, eax
- .text:00E01D5B sar edx, 1
- .text:00E01D5D jns short loc_E01D62
- .text:00E01D5F adc edx, 0
- .text:00E01D62 loc_E01D62:
- .text:00E01D62 mov eax, off_EBE9FC
- .text:00E01D67 mov eax, [eax]
- .text:00E01D69 xor ecx, ecx
- ; Открыть триальное окно
- .text:00E01D6B call sub_D7C720
- .text:00E01D70 loc_E01D70:
- .text:00E01D70 push offset asc_E039FC ; "-/"
- .text:00E01D75 xor ecx, ecx
- .text:00E01D77 mov edx, offset dword_E03A10
- .text:00E01D7C mov eax, offset off_E03A20
Code (Assembler) : Убрать нумерацию
- .text:00E158B8 call sub_4D1AE4
- .text:00E158BD test eax, eax
- .text:00E158BF jnz short loc_E158D9
- .text:00E158C1 cmp dword ptr [ebp-18h], offset dword_895440
- .text:00E158C8 jle short loc_E158D9
- .text:00E158CA mov eax, [ebp-14h]
- ; Программа работает в триальном режиме
- .text:00E158CD mov byte ptr [eax+761h], 1
- .text:00E158D4 jmp loc_E159AB
- .text:00E158D9 ; ---------------------------------------
- .text:00E158D9 loc_E158D9:
- .text:00E158D9 mov eax, [ebp-14h]
- ; Программа зарегистрирована
- .text:00E158DC mov byte ptr [eax+761h], 0
- .text:00E158E3 lea edx, [ebp-94h]
- .text:00E158E9 mov eax, off_EBF72C
- .text:00E158EE mov eax, [eax]
Code (Assembler) : Убрать нумерацию
- .text:00E15989 loc_E15989:
- .text:00E15989 mov eax, [ebp-14h]
- ; Программа работает в триальном режиме
- .text:00E1598C mov byte ptr [eax+761h], 1
- .text:00E15993 jmp short loc_E159AB
- .text:00E15995 ; ---------------------------------------
- .text:00E15995 loc_E15995:
- .text:00E15995 mov eax, [ebp-14h]
- ; Программа работает в триальном режиме
- .text:00E15998 mov byte ptr [eax+761h], 1
- .text:00E1599F jmp short loc_E159AB
- .text:00E159A1 ; ---------------------------------------
- .text:00E159A1 loc_E159A1:
- .text:00E159A1 mov eax, [ebp-14h]
- ; Программа работает в триальном режиме
- .text:00E159A4 mov byte ptr [eax+761h], 1
Программа успешно "зарегистрирована"
Триальное окно при запуске программы пропало, в окне "О программе" теперь написано "Зарегистрированная версия", рекламное окно при выходе тоже не открывается. Вот и все, порядок наведен. Теперь программа стала действительно бесплатной для домашнего использования. Можете даже отредактировать строчку "Зарегистрированная версия" в языковом файле, вписав туда что-нибудь свое.
ЗЫ. Да, я знаю, что в интернете есть генераторы ключей для этой программы, но за каждым из них следуют сообщения пользователей, что эти ключи после перезапуска программы слетают. Так что патч в этом случае надежнее.
Просмотров: 6052 | Комментариев: 20
Метки: исследование защиты, графика
Внимание! Статья опубликована больше года назад, информация могла устареть!
Комментарии
Отзывы посетителей сайта о статье
ManHunter
(03.08.2014 в 20:21):
I am not interested absolutely
Forseti
(03.08.2014 в 19:46):
@ManHunter, Light Image Resizer v4.6.5.0 is out now, please patch the new version!
user
(01.06.2014 в 11:48):
На офсайте сейчас версия 4.6.2.0. Хотя алгоритм тот же.
Версия 4.6.1.0, как в этой статье, с кейгеном, здесь:
_http://nemo-crack.org/soft/graphic/101959-light-image-resizer.html
Версия 4.6.1.0, как в этой статье, с кейгеном, здесь:
_http://nemo-crack.org/soft/graphic/101959-light-image-resizer.html
ManHunter
(29.05.2014 в 19:38):
Читай внимательно, все написано.
MaCTeP
(29.05.2014 в 18:57):
Салют ManHunter!
Есть еще строка ее тоже нужно изменить ?
.text:00E158CD mov byte ptr [eax+761h], 1
Есть еще строка ее тоже нужно изменить ?
.text:00E158CD mov byte ptr [eax+761h], 1
Vladimir
(16.05.2014 в 18:28):
Устал ждать, пока IDA прожует exe-шник. Вырубил.
Может в этом и заключается новая тактика в защите программ: сваять код настолько устрашающего размера и с таким уровнем абстракции, чтобы у хакера руки опускались?
Может в этом и заключается новая тактика в защите программ: сваять код настолько устрашающего размера и с таким уровнем абстракции, чтобы у хакера руки опускались?
Андрей
(12.05.2014 в 08:20):
brute, Макс! Light Image Resizer менее синтетический, чем crackme.
ManHunter
(11.05.2014 в 22:44):
В моем любимом XnView тоже есть замечательная пакетная обработка, которой, собственно, и решались все мои задачи. Ресайзер тут рассматривается исключительно как жертва для исследования, а не как мегарулезная чудо-софтина, рекомендованная к использованию.
Макс
(11.05.2014 в 22:38):
Да, кстати, сразу как прочитал название подумал, кому нужен этот имагрезайсер если инфравью пачками может конвертировать картинки и что хочешь делать при этом.
ManHunter
(11.05.2014 в 22:17):
Что ж теперь, зачехлить отладчик и сидеть на попе ровно? :) Готовые ключи и кейгены тоже ведь не с Марса присылают, все делают такие же живые люди. А новичкам лучше учиться на простых примерах. Изучив основы, они могут самостоятельно развиваться дальше, переходить к более сложным защитам. Никто ж в первом классе интегралы не проходит, все начинают с букваря.
brute
(11.05.2014 в 22:12):
для массового измененения размера\качества\типа графических файлов использую IrfanView. Много лет, бесплатно. Вообще, имхо, взлом файлов в последние годы - это игра в биссер. Сложные, типа игр, иды, с железными ключами и дорогими протекторами - не взломаешь. А к простым прогам - есть куча бесплатных аналогов, "старых" бесплатных версий этих же программ и банальных готовых ключей\сериалов\кейгенов\портабельных сборок в инете. Или даже покупка "вскадчину" нужного софта. Кроме браузера, где постоянно латаются дыры, мне софт обновлять не требовалось.. как некоторым знакомым на win8.1, где после каждого! включения система 40 минут "обновляется"..
ManHunter
(11.05.2014 в 20:03):
Такие вещи должны быть уже на уровне рефлексов. Внимательно смотреть на все галочки инсталлятора любой программы.
brute
(11.05.2014 в 18:00):
в следующий раз предупреждать надо, что программа трояно-спамерская-системузасирательная! Если не убрать при установке флажок "sspecial offer"..
lammer
(11.05.2014 в 12:11):
У IDR есть опция генерации IDC-скрипта. Полученный скрипт импортируем в IDA и продолжаем работу в ней.
7819509
(10.05.2014 в 23:33):
AyTkACT, согласен, для полноты комплекта с официального сайта скачиваем Idr.exe и kb2010.bin файлы и заменяем их в сборке. И ф`се... ;) sehr gut всегда с нами.
AyTkACT
(10.05.2014 в 20:08):
В природе есть вариант и с некастрированным kb2.bin.
Хотя и на офсайте kb2.bin вполне годен для крисмас эдишна.
Хотя и на офсайте kb2.bin вполне годен для крисмас эдишна.
7819509
(10.05.2014 в 17:43):
AyTkACT
(10.05.2014 в 17:17):
ManHunter, так точно. Я видимо проспал это дело, но китайцы выручили.
ManHunter
(10.05.2014 в 16:18):
Были же праздничные раздачи полных баз от автора, кетайчеги тоже что-то релизили.
AyTkACT
(10.05.2014 в 16:13):
IDR нахаляву даёт максимум базу знаний от 2010 делфи, а сабж на делфи 2011.
Добавить комментарий
Заполните форму для добавления комментария