Skip to main content

reverser-virtualized-protectors

VMProtect, VMP2, Themida, and CodeVirtualizer reversing workflow using Radare2/Ghidra facts and Back Engineering Labs research guidance.

跳到安装

来源信息

仓库
BitterSecurity/Decepticon
最近来源活动
2026年7月12日 19:52
检测到的 SKILL.md 语言
英语
星标
5,565
分支
1,053

安装方式

默认使用会先检查来源的 Prompt;你也可以切换为直接命令,或下载本地副本。

检查来源文件

决定是否安装前,请先阅读 SKILL.md,以及 SkillsMP 当前展示的配套文件。

正在显示 SKILL.md

SKILL.md
来源说明 · 只读预览
name
reverser-virtualized-protectors
description
VMProtect, VMP2, Themida, and CodeVirtualizer reversing workflow using Radare2/Ghidra facts and Back Engineering Labs research guidance.
metadata
{"subdomain":"reverse-engineering","when_to_use":"VMProtect VMP2 VMProtect2 Themida CodeVirtualizer virtualized protector devirtualization VMEnter VMEXIT VIP handler table","upstream_ref":"Back Engineering Labs vmp2, vmhook, and Static Devirtualization of Themida research"}
# VMProtect / VMP2 / Themida Workflow Use this for VMProtect 2, VMP2 tooling questions, Themida, CodeVirtualizer, and other VM-based protectors. Do not promise automatic devirtualization. Most wins come from disciplined recovery of VM control-flow facts. ## Source Guidance Back Engineering Labs' public VMP2/Themida work points to one durable rule: Avoid brittle VM-handler pattern matching. Handler layouts, opcode tables, and dispatch glue change too easily. Prefer incremental lifting and control-flow recovery with as little VM-specific logic as possible. ## Loop 1. `bin_identify` and `bin_packer` first; record format, arch, entropy, and protector strings. 2. Use `bin_r2_script` or Ghidra to locate VMEnter stubs, handler-table references, VM context/virtual stack sections, and suspicious indirect dispatch loops. 3. Recover VIP movement. For VMProtect 2, track bytecode/module loads feeding the indirect jump. For Themida, expect branch state in VM context and trace the branch-taken flag through the VPC update. 4. Classify VMEXIT behavior: return to native epilog, call-shaped exit, or unsupported-instruction exit. Record stack displacement evidence. 5. Prefer trace/lift plans that run simple optimizations to convergence: constant promotion over VM-private ranges, constant folding, instruction combination, branch folding, dead-store/dead-dependency cleanup, and stack pointer rewrite. 6. If using VMP2-style tooling, treat `vmemu`/`vmprofiler`/`vmprofiler-cli` outputs as evidence, not ground truth. Re-check recovered paths in r2/Ghidra. 7. Write findings with exact addresses, section names, vmenter candidates, VMEXIT classification, VIP source, and unresolved symbolic branches. ## Report Shape - Protector: VMProtect / VMProtect 2 / Themida / CodeVirtualizer / unknown - Entrypoints: candidate VMEnter addresses and why - Dispatch: handler-table location, decrypt/transform clues, indirect jump path - VIP: source load or Themida branch flag/VPC update evidence - VMEXIT: stack displacement and native continuation/call target - Recovery plan: trace, lift, or manual simplification; no fake devirt claims
在 GitHub 查看