
Автоматизированный инструмент для распаковки и исправления дампов Themida / Code Virtualizer / WinLicense (v3.0-v4)
Универсальный распаковщик для бинарных файлов, защищённых Themida, и инструмент для снятия runtime-защиты. Unthemidator НЕ запускает бинарный файл, а также не вызывает никаких API и не выполняет системные вызовы, используемые целевыми бинарными файлами на хост-машине.
Unthemidator работает со всеми видами Windows-бинарных файлов (dll, exe, sys и другими) как в вариантах x86 (32-бит), так и x86_64 / amd64 (64-бит).
После распаковки выполняется полная перестройка PE, что делает распакованный бинарный файл запускаемым и отлаживаемым.
Помимо распаковки и перестройки PE, Unthemidator может определять версию виртуальных машин Themida / Code Virtualizer, используемых в бинарных файлах.
Просто перетащите упакованный бинарный файл на unthemidator или используйте следующую команду CLI в Windows:
unthemidator.exe [options] {path_to_bin.exe|.dll|.sys|.bin}
и следующую команду CLI в системе на базе Unix:
./unthemidator [options] {path_to_bin.exe|.dll|.sys|.bin}
PE будет считаться драйвером ядра только в том случае, если его расширение файла — .sys. Это сделано для обеспечения корректного разбора файлов с любыми расширениями как пользовательских приложений по умолчанию. Не говоря уже о том, что упакованные драйверы ядра встречаются крайне редко и могут работать только на незащищённых системах.
Ниже приведён полный обзор всех опций unthemidator.
--out-file — имя / путь выходного файла. По умолчанию {program_name}.unpacked.{program_extension}--license-file — имя / путь файла лицензии. Требуется для успешной распаковки бинарников, защищённых WinLicense.--imports-file — имя (или путь) файла для сохранения информации об импортах. Должен быть JSON. По умолчанию {program_name}.imports.json--vms-file — имя (или путь) файла для сохранения информации о точках входа VM. Должен быть JSON. По умолчанию {program_name}.vms.json--vm-depth — для исследования виртуальных машин и трассировки виртуальных инструкций: сколько слоёв виртуализации следует выполнять пошагово. По умолчанию 0 — без исследования VM.--no-imp — пропустить поиск импортов--no-startup — пропустить обработку запуска во время выполнения. Это предотвратит ВСЮ распаковку, кроме начального этапа загрузки.--no-vm-lookup — пропустить поиск виртуальной машины--no-loader — пропустить генерацию загрузчика anti-dump fixer. Это может сделать бинарник неработоспособным, если OEP виртуализирован или присутствуют проверки безопасности на уровне макросовНекоторые бинарники полагаются на пользовательские модули, поставляемые вместе с программой. Вы можете просто поместить все пользовательские модули
в каталог modules перед распаковкой таких бинарников. То же самое можно сделать для отсутствующих системных
модулей, что полезно, если вы запускаете unthemidator в системе Unix.
Если у вас возникла проблема или что-то работает не так, как задумано (или не работает вовсе), создайте issue в этом репозитории.
Зайдите на страницу Releases, чтобы найти скомпилированный unthemidator. В настоящее время доступны следующие варианты:
Узнайте больше о внутреннем устройстве обфускации Themida, включая её виртуальные машины, в следующих статьях: