Исследование защиты программы Flagimation
Скриншот программы Flagimation
Программа Flagimation предназначена для создания красивых анимированных GIF-картинок в виде развевающегося флага. Интерфейс простейший, настройки тоже. Открываете картинку, которую хотите превратить во флаг, выбираете параметры качества и скорости анимации, после этого сохраняете готовый GIF. И все это за 20 баксов, ага.
Скачиваем дистрибутив, распаковываем, устанавливаем. Поищем что-нибудь, связанное с регистрацией. В меню About - Register обнаруживается вот такое окно:
Окно регистрации программы
На левые регистрационные данные программа реагирует сообщением: "Sorry. The registration number is incorrect. Please try again." Поищем эту текстовую строку в файле. Файл не упакован, проблем с поиском нет.
Нехорошая строка найдена
Программа написана на Delphi, поэтому воспользуемся новым инструментом - IDR (Interactive Delphi Reconstructor) - декомпилятором исполняемых файлов (EXE) и динамических библиотек (DLL), написанных на языке Delphi и выполняемых в среде 32х-разрядных операционных систем Windows. Загружаем исполняемый файл в IDR, ждем когда он завершит работу. Теперь перейдем в режим поиска строк (F8) и поищем в списке строку о неправильной регистрации. Увы, ее нет, так же как и строки об успешной регистрации.
Декомпиляция программы с помощью IDR
Зато найдется другая строка, которая присутствует в окне ввода серийного номера: "This software is shareware, and may be reviewed for 14 days. Continued use requires that you register." Зачем нам она нужна? IDR позволяет просматривать обработчики формы, а нам сейчас как раз надо найти форму регистрации, поэтому в правой части окна выберем перекрестную ссылку, которая указывает на эту строку. В окне дизассемблера сперва будет скучный код формирования формы, заполнения текстовых полей, а вот ниже обнаружится такой любопытный кусочек:
Код получения данных из формы регистрации
Не надо быть семи пядей во лбу, чтобы понять, что тут происходит. Берутся введенные значения из текстовых полей имени и серийного номера, после этого вызывается какая-то функция проверки, и если она вернула AL=0, то выводится сообщение о неправильной регистрации. Нас интересует функция по адресу 0046E768, ведь похоже, что именно она отвечает за защиту. Запускаем программу под отладчиком и поставим точку останова на адрес 0046E768, после этого попробуем зарегистрировать ее каким-нибудь левыми данными.
Запускаем программу под отладчиком
Когда точка останова сработает, пройдем код в пошаговом режиме. Сперва проверяется заполненность регистрационного имени и серийного номера, затем из имени путем преобразования получается какая-то строка, а затем на ее основе генерируется правильный код для проверки. Это все видно в стеке. После этого по адресу 0046E7F8 вызывается функция сравнения. В регистрах EAX и EDX виден наш кривой серийник и сгененированный правильный.
Функция проверки серийного номера
Сохраним серийный номер 30267332 и попробуем повторить регистрацию с тем же именем, но уже с правильным кодом. Программа радостно сообщит, что она успешно зарегистрирована.
Программа успешно зарегистрирована
Кстати, если посмотреть еще в списке строк, то там обнаружится любопытное послание: "Hey - why do you use such a strange name? Everyone can search for a registration key. But if I do not get paid, I cannot buy something to eat, which means I have to die, so you will not get updates any more. I just wanted to say." Оно появляется на попытку ввести регистрационное имя "NICESHOP" или "CZY". Судя по тому, что программа не обновлялась уже несколько лет, похоже, что аффтар все-таки склеил ласты с голодухи. А мы успешно выловили нужный серийник и попробовали в деле новый инструмент.
Сэкономленная денежка
Эта анимация сделана в зарегистрированной версии программы Flagimation, можете убедиться, что никаких ограничений у нее теперь нет.
Просмотров: 8459 | Комментариев: 11
Метки: исследование защиты, графика
Внимание! Статья опубликована больше года назад, информация могла устареть!
Комментарии
Отзывы посетителей сайта о статье
ManHunter
(23.09.2018 в 21:17):
Могу башку тебе сломать, например.
00000000000000000000
(23.09.2018 в 20:43):
стол закасов сломай еще чо нить
Dastin
(01.05.2018 в 21:34):
IDR форк новый появился на гитхабе -> https://github.com/7MacTep/IDR
А здесь полный комплект IDR -> https://drive.google.com/open?...AGdvq-qF0Vss
А здесь полный комплект IDR -> https://drive.google.com/open?...AGdvq-qF0Vss
Vladimir
(20.12.2012 в 14:43):
Насчет базы знаний для IDR к программам, написанным на Delphi 2010. Автор совершенно бесплатно лично мне дал пароль от архива с ней в ответ на мое ВЕЖЛИВОЕ письмо с просьбой об этом. Я попросил для использования сугубо в образовательных целях. Так и использую.
Так что стучитесь - и вам ответят.
Так что стучитесь - и вам ответят.
ManHunter
(16.11.2012 в 22:07):
Как бы это помягче сказать... Мне глубоко похер кому там чего надо, что существует или не существует. Здесь не стол заказов. Надо - ломай.
Kostyan
(16.11.2012 в 21:48):
Хороший результат, так держать!
А как насчёт очень замечательной программы "Stardock DeskScapes" 3-ей версии и выше (для win 7), пока что кряков к ней вообще не существует...???
А как насчёт очень замечательной программы "Stardock DeskScapes" 3-ей версии и выше (для win 7), пока что кряков к ней вообще не существует...???
ManHunter
(06.01.2011 в 16:58):
Автору и так полнейший респект и уважуха за такой грамотный инструмент.
crypto
(06.01.2011 в 16:45):
Интересно, где же во фразе
<<< База знаний для версии 2010 kb2010.bin защищена паролем, обращайтесь к автору.
AyTkACT разглядел слово бабло ??? :-)
Что касается остальных замечаний - не все сразу, надо автору тоже передышку давать.
<<< База знаний для версии 2010 kb2010.bin защищена паролем, обращайтесь к автору.
AyTkACT разглядел слово бабло ??? :-)
Что касается остальных замечаний - не все сразу, надо автору тоже передышку давать.
AyTkACT
(16.12.2010 в 08:24):
IDR - вообще полезная штука. Жаль что она работает только с неупакованными, только 32 битными и что с 2010 только за бабло :(
<<< База знаний для версии 2010 kb2010.bin защищена паролем, обращайтесь к автору.
<<< База знаний для версии 2010 kb2010.bin защищена паролем, обращайтесь к автору.
Isaev
(15.12.2010 в 02:19):
:) Это первый тутор с IDR! Вообще наверное первый...
checkbox
(14.12.2010 в 14:14):
<<<Эта анимация сделана в зарегистрированной версии программы Flagimation, можете убедиться, что никаких ограничений у нее теперь нет.
действительно, ввел вышеозначенные рег.данные, прога зарегилась, спс за серийнег ;)
действительно, ввел вышеозначенные рег.данные, прога зарегилась, спс за серийнег ;)
Добавить комментарий
Заполните форму для добавления комментария