Blog. Just Blog

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

Версия для печати Добавить в Избранное Отправить на E-Mail | Категория: Темная сторона Силы | Автор: ManHunter
Скриншот программы FolderSizes
Скриншот программы FolderSizes

FolderSizes - это не просто программа, а целый "швейцарский нож" для анализа дискового пространства. Она превращает рутинную задачу поиска больших файлов в быстрый, наглядный и даже увлекательный процесс. Если вы столкнулись с сообщением "Недостаточно места на диске", FolderSizes - это один из самых эффективных инструментов для решения этой проблемы. Существуют платная версия с полным функционалом, которая имеет некоторые ограничения, если ее не купить.

Авторы оставили для скачивания дистрибутив старой 32-битной версии, в первую очередь для пользователей операционных систем, таких как Windows XP или 32-битные версии Windows 7/Vista. Так что заберем последний подходящий дистрибутив, устанавливаем, смотрим. Проверяем, запакован или зашифрован ли основной исполняемый файл. Нет, файл чистый.

Триальное окно
Триальное окно

Это сильно упрощает последующий анализ в дизассемблере, так как мы сразу видим оригинальный код, а не код распаковщика. Параллельно проверяем триальные ограничения.

Триальный текст
Триальный текст

Наличие строки "EVALUATION VERSION" в интерфейсе - ключевая находка, которая сильно сужает область поиска. Более того, использование ключевого слова "evaluation" является маркером, подтверждающим, что в коде следует искать и другие текстовые элементы, связанные с проверкой лицензии.
  1. .text:004F4DAF                 call    loc_4E6B90
  2. .text:004F4DB4                 lea     ecx, [ebp-134h]
  3. .text:004F4DBA                 mov     byte ptr [ebp-4], 5
  4. ; Функция проврки
  5. .text:004F4DBE                 call    sub_11307C0
  6. ; Результат проверки
  7. .text:004F4DC3                 test    eax, eax
  8. ; Переход
  9. .text:004F4DC5                 jz      short loc_4F4DD8
  10. ; Текст заголовка окна
  11. .text:004F4DC7                 push    15h
  12. .text:004F4DC9                 push    offset aEvaluationVers
  13. ; " - EVALUATION VERSION"
  14. .text:004F4DCE                 lea     ecx, [ebp-10h]
  15. .text:004F4DD1                 call    loc_4248A0
  16. .text:004F4DD6                 jmp     short loc_4F4E1D
  17. .text:004F4DD8 ; ----------------------------------------------------
  18. .text:004F4DD8 loc_4F4DD8:
  19. .text:004F4DD8                 push    ecx
  20. .text:004F4DD9                 lea     eax, [ebp-14h]
Функция проверки компактна, что позволяет легко отследить ее перекрестные ссылки. Анализ показывает, что вызовы этой функции находятся в тех же участках кода, что и строки "Licensed user" или "License error: %s".
  1. .text:011307C0 sub_11307C0     proc near
  2. .text:011307C0                 push    esi
  3. .text:011307C1                 mov     esi, ecx
  4. .text:011307C3                 call    sub_112ED50
  5. .text:011307C8                 cmp     dword ptr [esi+30h], 2
  6. .text:011307CC                 jz      short loc_11307D5
  7. .text:011307CE                 mov     eax, 1
  8. .text:011307D3                 pop     esi
  9. .text:011307D4                 retn
  10. .text:011307D5 ; ------------------------------------------------
  11. .text:011307D5 loc_11307D5:
  12. .text:011307D5                 mov     eax, [esi+24h]
  13. .text:011307D8                 and     eax, 8E00h
  14. .text:011307DD                 neg     eax
  15. .text:011307DF                 pop     esi
  16. .text:011307E0                 sbb     eax, eax
  17. .text:011307E2                 neg     eax
  18. .text:011307E4                 retn
  19. .text:011307E4 sub_11307C0     endp
Заменяем код по адресу 011307C0 и поменяем патч MOV EAX,0 и RET. Сохраняем изменения.

Программа успешно "зарегистрирована"
Программа успешно "зарегистрирована"

Проведенное тестирование подтверждает, что программа была успешно модифицирована для устранения ограничений пробной версии. В пользовательском интерфейсе полностью отсутствуют триальные надписи, а весь заявленный функционал выполняется без каких-либо исключений или сообщений об ошибках. Цель достигнута.

Поделиться ссылкой ВКонтакте
Просмотров: 551 | Комментариев: 4

Комментарии

Отзывы посетителей сайта о статье
ManHunter (23.11.2025 в 16:19):
Да не мелочись :)
https://z0mbie.daemonlab.org/21zero.html
voffka (23.11.2025 в 14:21):
MOV EAX,0
Шикуешь. А где старый добрый xor eax,eax?
ManHunter (21.11.2025 в 11:32):
Ключ появляется автоматически после патча, даже делать ничего не надо. Он прибит строкой в коде. А если этот License key зарегистрировать без патча, то программа напишет, что EVALUATION VERSION на 8 дней.
AleshaA (21.11.2025 в 10:56):
Как MOV EAX,0 и RET сочетается с License key на последней картинке

Добавить комментарий

Заполните форму для добавления комментария
Имя*:
Текст комментария (не более 2000 символов)*:

*Все поля обязательны для заполнения.
Комментарии, содержащие рекламу, ненормативную лексику, оскорбления и т.п., а также флуд и сообщения не по теме, будут удаляться. Нарушителям может быть заблокирован доступ к сайту.
Наверх
Powered by PCL's Speckled Band Engine 0.2 RC3
© ManHunter / PCL, 2008-2025
При использовании материалов ссылка на сайт обязательна
Время генерации: 0.1 сек. / MySQL: 2 (0.0093 сек.) / Память: 4.5 Mb
Наверх