Сделал форк распаковщика
Unlicense (Themida/WinLicense 2.x и 3.x).
Собрал свой билд и пофиксил несколько багов:
Что исправлено
- Выход за границы секции при поиске call-сайтов импорта
- Патч 6-байтовой инструкции по 5-байтовому call-сайту портил соседний код
- Коллизии хэшей экспортов резолвились в произвольный экспорт
- Результат эмуляции обёртки не проверялся
- Эмуляция без лимита инструкций
- DLL: rundll32 получал аргументы раздельно (точка входа не вызывалась),
- Зависание при снятии защиты со страниц OEP-диапазона
Работает в двух режимах: через консоль или обычный Drag&Drop.
Проверено на 152, 166, 196, 306 и 418 протоколе.
Внимание: утилита запускает целевой исполняемый файл. Если вы не уверены в том, что делает целевой исполняемый файл, обязательно используйте VM/Sandbox.
Forked the
Unlicense unpacker (for Themida/WinLicense 2.x and 3.x).
Built my own binary and fixed the core issues:
What was fixed
- Out-of-bounds section reads when searching for import call-sites
- Patching a 6-byte instruction with a 5-byte call-site was corrupting adjacent code
- Export hash collisions were resolving to arbitrary exports
- Wrapper emulation results were left unvalidated
- Emulation ran without an instruction limit
- DLLs: rundll32 received arguments separately (causing the entry point not to be called)
- Hangs occurring when unprotecting OEP range pages
Supports two operating modes: CLI and simple Drag&Drop.
Tested on protocols 152, 166, 196, 306, and 418.
Warning: The tool executes the target file. If you are unsure about what the target executable does, make sure to run it inside a VM or Sandbox.
PWD:
*** Скрытый текст не может быть процитирован. ***
LINK:
*** Скрытый текст не может быть процитирован. ***