Исследование защиты программы Photo to Cartoon
Скриншот программы Photo to Cartoon
Графический редактор Photo to Cartoon позволяет преобразовать любую фотографию в рисунок. Все действия выполняются буквально за несколько движений мышью. Идея таких эффектов не нова, в интернете существует немало программ с подобным функционалом, так что Photo to Cartoon мне интересна исключительно с исследовательской точки зрения.
Скачиваем дистрибутив, устанавливаем, смотрим. На офсайте написано, что для работы программы требуется .NET Framework, значит и инструменты для исследования потребуются соответствующие. У меня это ILSpy. Исполняемый файл ничем не накрыт и не обфусцирован, сразу отправляем его на анализ.
Окно регистрации программы
Серийный номер состоит из трех групп символов. Это полезная информация, она нам в дальнейшем понадобится.
Функция проверки серийного номера
Переходим к анализу сборки. В списке классов обнаруживается один с очень характерным названием "License". Развернув его, мы обнаруживаем метод с еще более характерным названием "Check Code", который принимает три строковых параметра и возвращает true или false. Три группы символов в серийнике, три параметра на проверку, "говорящее" название функции - это означает, что надо осмотреть тут все поподробнее.
Алгоритм проверки серийного номера
А вот и алгоритм проверки серийного номера. Три группы строк преобразуются в числовые значения, затем выполняется следующая проверка. Каждое полученное число нацело делится на одну из переменных, обозначенных как "License.Key1", "License.Key2" и "License.Key3", остаток от каждого деления должен равняться 57.
Анализ переменной
Теперь надо посмотреть, где эти переменные инициализируются. Через меню "Analyze" определяем все места в сборке, где эти переменные задействуются на чтение и присвоение значений. Нас интересует именно присвоение значений, такое место только одно. Переходим на него, смотрим.
Инициализация переменных
Это значения 73, 75 и 77. Алгоритм проверки мы знаем, значения делителей и ожидаемые значения остатков от деления тоже. Чтобы не возиться с калькулятором, вот пара серийников, числа в которых удовлетворяют этому условию: 7357-7557-7757, 0057-0057-0057. После ввода любого из них никаких сообщений о неправильной регистрации не появится. После перезапуска программы пункты меню, относящиеся к регистрации, станут неактивными. Цель достигнута.
Программа успешно зарегистрирована
Вот такая несложная защита. Генератор серийников теперь написать не проблема, вы можете сделать это самостоятельно.
Просмотров: 2785 | Комментариев: 14
Метки: исследование защиты, графика
Внимание! Статья опубликована больше года назад, информация могла устареть!
Комментарии
Отзывы посетителей сайта о статье
egorus2010
(26.10.2017 в 14:03):
Ну да, это здесь работает, а раздел появляется после регистрации.
Но SpyStudio как раз и пишет, что прога ищет в реестре.
Я проверил - перестановил и зарегил заново.
Я имел в виду, что можно ли и эту дорогу найти при исследовании именно IlSpy?
И раз Вы здесь - у вас красивые листинги часто мелькают - это Ида?
И я правильно понял (по своему мизерному опыту), прежде чем учить Ассемблер, нужно знать устройство ОС и С++?
И спасибо за Ваши статьи!
Но SpyStudio как раз и пишет, что прога ищет в реестре.
Я проверил - перестановил и зарегил заново.
Я имел в виду, что можно ли и эту дорогу найти при исследовании именно IlSpy?
И раз Вы здесь - у вас красивые листинги часто мелькают - это Ида?
И я правильно понял (по своему мизерному опыту), прежде чем учить Ассемблер, нужно знать устройство ОС и С++?
И спасибо за Ваши статьи!
ManHunter
(26.10.2017 в 13:45):
Если это работает, то да, конечно, такой способ имеет право на жизнь.
egorus2010
(26.10.2017 в 13:35):
Подскажите, а то, что можно сделать такой рег
[HKEY_CURRENT_USER\Software\Caricature Software\Photo to Cartoon\7]
"Status"=dword:ffffffff
"Size"=dword:00000001
Если ffffffff - регистрация серая.
Если 0 - то рег сбрасывается.
Просто установка этого параметра может быть еще одним способом лома?
И виден этот путь изначально?
Бывает, SpyStidio или ProcMon прямо пишут, что за разделы или параметры прога пытается открыть и т.д.
У меня-то уровень крекерства минусовой, поэтому разъясните, пожалуйста.
[HKEY_CURRENT_USER\Software\Caricature Software\Photo to Cartoon\7]
"Status"=dword:ffffffff
"Size"=dword:00000001
Если ffffffff - регистрация серая.
Если 0 - то рег сбрасывается.
Просто установка этого параметра может быть еще одним способом лома?
И виден этот путь изначально?
Бывает, SpyStidio или ProcMon прямо пишут, что за разделы или параметры прога пытается открыть и т.д.
У меня-то уровень крекерства минусовой, поэтому разъясните, пожалуйста.
MaCTeP
(14.08.2017 в 15:03):
brute
(09.10.2016 в 19:11):
п.с. можно также запатчить Check License, чтобы после проверки ключей реестра возвращалось true (idc.i4.1)
brute
(09.10.2016 в 11:15):
пригодилась таблица значений IL-опкодов: поставил в начало метода "CheckCode" безусловный переход "Br.s 38(0060)" - прыжок на место записи в реестр в случае правильного серийника. Теперь прога регается любым ключом. (только ругнулвсь красным при сохранении - надеюсь, это не повлияло на её работоспособность:). Имхо, такой подход - прыжок на место правильной регистрации - может быть полезен во многих случаях (хотя бы для получения "правильного" слепка реестра).
speedboy
(07.10.2016 в 09:59):
good
Never
(29.09.2016 в 10:58):
Интересная программка. Не перестаешь ты меня удивлять/радовать софтом.
Анон
(26.09.2016 в 13:46):
Куда интереснее ковырять защиту которая использует RSA и при этом всё накрыто обфускатором. Но в конечном итоге взлом сводится к подмене ключа.
X-Wing Top Ace
(23.09.2016 в 11:26):
Тоже верно. Так я и цитату ввернул по поводу "защиты", а не статьи.
ManHunter
(23.09.2016 в 11:03):
Зато для новичков это очень хорошая тренировка по ковырянию дотнета. Инструменты поюзать, алгоритм посмотреть, кейген наваять - сразу +20 к интересу заниматься реверсингом.
X-Wing Top Ace
(23.09.2016 в 10:52):
"То, что поставили на эту дверь, даже не имело морального права называться гордым словом «замок»". ;)
Anonymous
(22.09.2016 в 16:08):
ILSpector (форк ILSpy) тоже очень неплох: активно разрабатывается, разработчики русскоязычные, держат обратную связь
https://exelab.ru/f/index.php?...&topic=23387
https://exelab.ru/f/index.php?...&topic=23387
Добавить комментарий
Заполните форму для добавления комментария
Наверняка можно. После проверки серийника как раз идет кусок работы с реестром. Установленной программы у меня нет, интереса возвращаться к ней тоже никакого.
Листинг из ida, подсветка моя.