
Исследование защиты программы Detwinner

Скриншот программы Detwinner
Программа Detwinner предназначена для поиска и удаления дубликатов файлов или похожих изображений на компьютере. Дубликаты определяются по стопроцентному совпадению содержимого, а изображения группируются по похожести. Найденные дубли можно сразу же удалить. Незарегистрированная версия позволяет обработать только 1000 файлов за один проход, что, естественно, очень мало. И хоть цена регистрации невелика, попробуем обойтись совсем без нее.
Скачиваем дистрибутив, устанавливаем. При установке можно выбрать портативный вариант, это и надо сделать. В заголовке и строке состояния программы присутствуют надписи, что она не зарегистрирована. Теперь попробуем что-нибудь найти. Тут же получим уведомление, что обработано будет не более 1000 файлов. Что ж, признаков триальности для поиска достаточно, переходим к исследованию.

Сообщение незарегистрированной программы
Исполняемый файл ничем не упакован, отправляем его в дизассемблер. Когда тот закончит свою работу, поищем в листинге что-нибудь, относящееся к сообщениям о регистрации или триальности. Обычно первым делом я использую поиск по строке "unregistered". Вот что у меня нашлось:
Code (Assembler) : Убрать нумерацию
- .text:0042452A push 12h ; size_t
- .text:0042452C push offset aAbout_unregist
- ; "about.unregistered"
- .text:00424531 lea ecx, [ebp+var_40] ; int
- .text:00424534 mov [ebp+var_2C], 0Fh
Code (Assembler) : Убрать нумерацию
- .text:004242DC mov eax, [edi+38h]
- .text:004242DF lea edx, [eax+0B8h]
- .text:004242E5 lea ecx, [eax+0D0h] ; lpWideCharStr
- ; Вызвать функцию проверки
- .text:004242EB call sub_458A30
- .text:004242F0 mov [ebp+var_14], 0Fh
- .text:004242F7 lea ecx, [ebp+var_28] ; int
- .text:004242FA mov [ebp+var_18], 0
- .text:00424301 mov byte ptr [ebp+var_28], 0
- ; Если она вернула AL=0, то перепрыгнуть на загрузку строки "unregistered"
- .text:00424305 test al, al
- .text:00424307 jz loc_4244A6
- .text:0042430D push 13h ; size_t
- ; Загрузить строку сообщения о зарегистрированности программы
- .text:0042430F push offset aAbout_register
- ; "about.registered-to"
- .text:00424314 call sub_407DC0
- .text:00424319 mov [ebp+var_4], 0
- .text:00424320 mov eax, dword_4D6234
- .text:00424325 test al, 1

Программа успешно "зарегистрирована"
В окне исчезли все надписи о резарегистрированности, в окне "О программе" написано, что программа зарегистрирована, но вместо регистрационных данных пустое место. В принципе, можно оставить и так. А можно сделать еще красивее. В папке settings внутри папки с установленной программой находится файл с настройками settings.ini.

Файл конфигурации
Если открыть этот файл на редактирование, то один из параметров в нем будет называться UserName. Это и есть регистрационное имя, которое должно отображаться в окне "О программе". Вписываем туда нужное значение и сохраняем изменения.

Программа успешно "зарегистрирована"
Вот теперь полный порядок. Ну и самое главное, осталось проверить функционал программы. Никаких сообщений об ограничении больше не выводится, самого ограничения тоже нет, программа обрабатывает все файлы без исключения. Цель достигнута.
Просмотров: 2217 | Комментариев: 3
Метки: исследование защиты, система

Внимание! Статья опубликована больше года назад, информация могла устареть!
Комментарии
Отзывы посетителей сайта о статье

4kusNick
(17.09.2016 в 11:11):
Я вот Similarity пользую, она ещё и музычку может на похожесть проверять)
Статья напомнила мне мои молодые годы, с такого патчинга я начинал, эх было время! =D
Статья напомнила мне мои молодые годы, с такого патчинга я начинал, эх было время! =D

Vladimir
(29.07.2016 в 00:08):
Перепробовал я этих программ для поиска дубликатов, а в итоге остановился вот на этой http://antidupl.sourceforge.net/
Но это просто к слову, а Detwinner надо попробовать, вдруг лучше будет...
Но это просто к слову, а Detwinner надо попробовать, вдруг лучше будет...

Добавить комментарий
Заполните форму для добавления комментария

0458A35: C3 ret