CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

reverser-virtualized-protectors

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

Quality

79%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Passed

No findings from the security scan

Fix and improve this skill with Tessl

tessl review fix ./packages/decepticon/decepticon/skills/standard/reverser/virtualized-protectors/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

86%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

A tight, well-structured workflow for VM-based protector reversing that stays lean, avoids over-claiming devirtualization, and gives a clearly sequenced investigative loop with a verification checkpoint. The main gaps are the absence of any executable command examples and an explicit error-recovery path when handler or vmenter hypotheses fail.

Suggestions

Add one or two concrete command examples (e.g. an r2 script snippet or the exact bin_r2_script invocation) for locating handler-table references, to lift actionability to fully executable.

Add a short fallback step to the Loop for when a VMEnter candidate or recovered path fails verification, e.g. 'if re-check in r2/Ghidra disagrees, discard the candidate and revisit step 2 with looser heuristics'.

Optionally fold the optimization-pass list in step 5 into a compact reference bullet list so it can be scanned faster during execution.

DimensionReasoningScore

Conciseness

The body is ~40 lean lines with no padding, no explanation of concepts Claude already knows (it never explains what VMProtect or virtualization is), and dense factual guidance ('track bytecode/module loads feeding the indirect jump', 'constant promotion over VM-private ranges'). Every line carries actionable or framing information, matching the 'every token earns its place' anchor.

5 / 5

Actionability

The guidance names concrete tool entry points ('bin_identify', 'bin_r2_script', 'vmemu/vmprofiler/vmprofiler-cli'), concrete artifacts (VMEnter stubs, handler-table references, VIP movement, VMEXIT classification), and a concrete optimization list. As an instruction-only skill code absence is not penalized, but no executable commands or example r2/Ghidra script invocations are given, leaving minor gaps versus the fully executable anchor 5.

4 / 5

Workflow Clarity

The 7-step Loop is clearly sequenced from identification to reporting, and step 6 provides an explicit verification checkpoint ('treat outputs as evidence, not ground truth. Re-check recovered paths in r2/Ghidra') plus a Report Shape checklist. However, there is no error-recovery feedback loop (what to do when a vmenter candidate is wrong or a trace diverges), which keeps it below anchor 5; this is not a destructive or batch operation, so the cap of 3 does not apply.

4 / 5

Progressive Disclosure

The skill is under 50 lines with no external references needed; no references/, scripts/, or assets/ directories exist in the bundle, so there are no dangling or buried references to penalize. Per the guideline, a sub-50-line skill with no need for external files scores 5 with well-organized sections, which this has (Source Guidance, Loop, Report Shape).

5 / 5

Total

18

/

20

Passed

Description

65%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

A focused, distinctive description whose trigger terms match what users would actually say, but it undersells the skill's concrete capabilities and omits an explicit 'when to use' clause from the description field itself. Promoting the when_to_use metadata and one or two concrete actions into the description would raise both specificity and completeness.

Suggestions

Add an explicit trigger clause to the description, e.g. 'Use when the user mentions VMProtect, Themida, CodeVirtualizer, devirtualization, or VM-based protectors' — the trigger guidance currently only exists in metadata.when_to_use.

Name 1-2 concrete capabilities instead of the generic 'reversing workflow', e.g. 'locates VMEnter stubs and handler tables, recovers VIP dispatch, and classifies VMEXIT behavior'.

Include natural synonym triggers such as 'devirtualization' and 'virtualized protector' in the description to round out keyword coverage.

DimensionReasoningScore

Specificity

The description names the domain ('VMProtect, VMP2, Themida, and CodeVirtualizer reversing') and concrete tooling ('Radare2/Ghidra facts', 'Back Engineering Labs research'), but the only stated action is a generic 'reversing workflow' — comparable to 'Processes PDF files and extracts content' rather than a list of specific actions. It is above anchor 2 because the named tools and research lineage make it more concrete than a purely generic action, but it does not list several specific actions as anchor 4 requires.

3 / 5

Completeness

The 'what' is reasonably clear (a reversing workflow grounded in Radare2/Ghidra facts and Back Engineering Labs research), but the description contains no 'Use when...' clause or equivalent explicit trigger guidance — the trigger phrases sit in metadata.when_to_use rather than the description itself. Per the guideline, a missing explicit 'when' caps completeness at 3; it is not 2 because the 'what' is concrete and specific.

3 / 5

Trigger Term Quality

'VMProtect', 'VMP2', 'Themida', and 'CodeVirtualizer' are exactly the names a user would type, giving strong natural keyword coverage. Natural variations like 'devirtualization', 'unpacking', 'virtualized protector', or file extensions (e.g. '.vmp', '.bin') are missing from the description field, which keeps it below the comprehensive anchor 5.

4 / 5

Distinctiveness Conflict Risk

The named commercial protectors (VMProtect, Themida, CodeVirtualizer) form a clear niche with distinct, unambiguous triggers that no general-purpose skill would claim. Conflict risk with other skills is minimal.

5 / 5

Total

15

/

20

Passed

Validation

93%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

metadata_version

'metadata.version' is missing

Warning

Total

15

/

16

Passed

Repository

PurpleAILAB/Decepticon

Path

packages/decepticon/decepticon/skills/standard/reverser/virtualized-protectors/SKILL.md

Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.