Исследование защиты программы Folder2List
Скриншот программы Folder2List
Программа Folder2List предназначена для формирования списка файлов и папок, учитывая различные метаданные файлов. Вы можете легко настроить внешний вид готового списка и сохранить его в формате XLS, XML, PDF, HTML, CSV или TXT. Все делается буквально за несколько кликов мышкой. В демонстрационном варианте список можно включить не более 10 файлов, а за полную версию требуется отвалить какое-то ненулевое количество бабла. Это, конечно, для нас неприемлемо.
Первым делом забираем с сайта дистрибутив, устанавливаем его и смотрим. Наиболее наглядным признаком демонстрационной версии является надпись "Demo" в заголовке главного окна программы. Давайте поищем эту строчку в исполняемом файле.
Строки в ресурсах
Строка обнаружится в ресурсах. Программа многоязычная, но в ресурсах основной язык немецкий. Это сейчас неважно, ведь нас интересует только индекс строки - 63706 или 0F8DAh в шестнадцатеричной системе счисления. Отправляем файл в дизассемблер, когда он закончит работу, поищем в листинге значение "0F8DAh". Обнаружится вот такая конструкция, присущая программам на Дельфи:
Code (Assembler) : Убрать нумерацию
- .text:00BE3144 off_BE3144 dd offset hInstance
- .text:00BE3148 dd 0F8DAh
Code (Assembler) : Убрать нумерацию
- .text:00BE364B mov eax, [eax]
- .text:00BE364D mov eax, [eax+68h]
- ; Вызвать функцию проверки
- .text:00BE3650 call sub_9857D8
- ; Если она вернула AL=1, то программа считается незарегистрированной
- .text:00BE3655 cmp al, 1
- .text:00BE3657 jnz short loc_BE3684
- ; Поменять заголовок на "Demo"
- .text:00BE3659 lea edx, [ebp+var_8]
- .text:00BE365C mov eax, offset off_BE3144
- .text:00BE3661 call sub_40C29C
- .text:00BE3666 mov edx, [ebp+var_8]
- .text:00BE3669 lea ecx, [ebp+var_4]
- .text:00BE366C mov eax, off_CD565C
- .text:00BE3671 mov eax, [eax]
- .text:00BE3673 call sub_939488
Code (Assembler) : Убрать нумерацию
- .text:009857D8 sub_9857D8 proc near
- .text:009857D8 push ebx
- .text:009857D9 push esi
- .text:009857DA mov esi, eax
- .text:009857DC xor ebx, ebx
- .text:009857DE mov eax, esi
- .text:009857E0 call sub_9857D0
- .text:009857E5 test al, al
- .text:009857E7 jz short loc_9857F3
- .text:009857E9 mov bl, 1
- .text:009857EB cmp byte ptr [esi+19h], 0
- .text:009857EF jz short loc_9857F3
- .text:009857F1 mov bl, 2
- .text:009857F3 loc_9857F3:
- .text:009857F3 mov eax, ebx
- .text:009857F5 pop esi
- .text:009857F6 pop ebx
- .text:009857F7 retn
- .text:009857F7 sub_9857D8 endp
Программа успешно "зарегистрирована"
Все надписи о демо-версии пропали, ограничение по количеству файлов к формируемым спискам тоже не применяется. Цель достигнута. Защита на остальных продуктах этого разработчика обходится таким же образом.
Просмотров: 2486 | Комментариев: 11
Метки: исследование защиты, Exif
Внимание! Статья опубликована больше года назад, информация могла устареть!
Комментарии
Отзывы посетителей сайта о статье
user
(28.04.2024 в 12:23):
А, ну да
ManHunter
(28.04.2024 в 12:05):
user, так она тут и не для полезности :) А NikFileTree тут уже было самым первым камментом.
user
(28.04.2024 в 12:00):
Программа по нужности не очень. Не строит дерево.
А вот NikFileTree это то, что надо.
http://www.niksoft.ru/rus/prog...etree_ss.htm
А вот NikFileTree это то, что надо.
http://www.niksoft.ru/rus/prog...etree_ss.htm
ManHunter
(26.05.2018 в 11:14):
Exescope исключительно по привычке, ничего более.
pawel97
(26.05.2018 в 00:49):
Exescope - просто дело привычки, или там есть хоть одна уникальная фича в сравнении с тем же ResHacker?
p.s. Лайфхак по ida - строки лучше искать по alt-b чем alt-t, так найдёт без вариантов (если не в ресурсах), даже если не определились анализом. А индексы по alt-i (можно не переводить в hex). Ну вдруг кто не знал, я поначалу вообще asm сохранял и дальше блокнотом :d
p.s. Лайфхак по ida - строки лучше искать по alt-b чем alt-t, так найдёт без вариантов (если не в ресурсах), даже если не определились анализом. А индексы по alt-i (можно не переводить в hex). Ну вдруг кто не знал, я поначалу вообще asm сохранял и дальше блокнотом :d
tr
(25.05.2018 в 23:54):
Вы являетесь образцом видео для этих операций. спасибо
nubuser
(25.05.2018 в 11:55):
Спасибо за развернутый ответ!
ManHunter
(25.05.2018 в 11:52):
В HiEW ищу сперва ASCII-строку, потом переключаюсь на юникод, ищу там. Затем на глаз определяю, где строка находится - просто в секции кода/данных или же в ресурсах. Там ошибиться сложно, в крайнем случае можно посмотреть, в какую секцию попадает нужный адрес. Если строка в ресурсах, то уже открываю в eXeScope список ресурсов со строками и ручками ищу индекс нужной мне строки, это совсем не трудно.
В случае, когда используются всякие библиотеки, языковые файлы и прочая хрень, то выручает Total Commander с поиском строки по файлам во всех мыслимых кодировках. Локализовав файл с нужной строкой, повторяю пункт 1.
Зная адрес, в большинстве случаев в HiEW достаточно поставить курсор на начало строки и нажать F6, сразу будет найден код, где эта строка используется. Но в любом случае я всегда уточняю это в дизассемблере. Для индексов, как в статье, однозначно IDA c поиском значения индекса по всему листингу.
Как-то так.
В случае, когда используются всякие библиотеки, языковые файлы и прочая хрень, то выручает Total Commander с поиском строки по файлам во всех мыслимых кодировках. Локализовав файл с нужной строкой, повторяю пункт 1.
Зная адрес, в большинстве случаев в HiEW достаточно поставить курсор на начало строки и нажать F6, сразу будет найден код, где эта строка используется. Но в любом случае я всегда уточняю это в дизассемблере. Для индексов, как в статье, однозначно IDA c поиском значения индекса по всему листингу.
Как-то так.
nubuser
(25.05.2018 в 11:46):
А можете раскрыть секрет общей формулы поиска строк? В каких программах и где начинаете, что затем подключаете?
MacTePXP
(23.05.2018 в 21:52):
Благодарю за мануал !
С помощью последнего IDR с ехелаба, нашел адрес и перешел в IDA. Есть поддержка IDA, OllyDbg, x32Dbg, Hiew из IDR, очень удобно.
С помощью последнего IDR с ехелаба, нашел адрес и перешел в IDA. Есть поддержка IDA, OllyDbg, x32Dbg, Hiew из IDR, очень удобно.
brute
(23.05.2018 в 21:33):
если такая программа нужна, то вот эта лучше:
http://www.niksoft.ru/rus/prog...etree_ss.htm
Всего 600кб и бесплатно.
http://www.niksoft.ru/rus/prog...etree_ss.htm
Всего 600кб и бесплатно.
Добавить комментарий
Заполните форму для добавления комментария