CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

il2cpp

Unity IL2CPP game reversing — Il2CppDumper metadata recovery, global-metadata.dat decryption, IDA/Ghidra symbol restore via generated scripts, Frida method hooking, IAP/license bypass, and zygisk-il2cpp-dumper for obfuscated metadata.

Quality

75%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Critical

Do not install without reviewing

Fix and improve this skill with Tessl

tessl review fix ./packages/decepticon/decepticon/skills/standard/mobile/android/il2cpp/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

65%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 dense, command-first playbook with mostly copy-paste-ready code and clear step sequencing including decision branches. Its weaknesses are the missing validation checkpoint in the destructive APK patch-and-repack workflow and the total absence of progressive disclosure — all content is inlined in a single long file with no bundle references.

Suggestions

Add a validation step to the static-patch workflow: verify the patched bytes (e.g., re-read the 8 bytes at the file offset) and run a post-install smoke test before declaring success, and make the LOAD_OFFSET verification an actual readelf command.

Split self-contained detail into bundle reference files (e.g., references/obfuscated-metadata.md for Step 5 countermeasures and references/evidence.md for the kg_add_node templates) and link them one level deep, keeping SKILL.md as the overview.

Turn the IDA and MCP-Ghidra comment blocks into concrete, runnable steps (exact menu/script paths plus the script.json argument) to close the last actionability gaps.

DimensionReasoningScore

Conciseness

The body is almost entirely commands, code, and tables, and the one conceptual block (the intro quote) is brief, skill-specific context rather than general knowledge. Minor trimmable padding remains: the References section repeats the three GitHub URLs already given in Prerequisites, and a few comments restate what the command output shows. Efficient with minor instances of over-explanation — anchor 4, not 5.

4 / 5

Actionability

Core paths are copy-paste ready: concrete bash with expected outputs, a working Frida hook using Module.findBaseAddress, an AArch64 byte-level patch script, and a Ghidra headless command. Minor gaps keep it below the fully-executable anchor: the IDA and MCP-Ghidra sections are comment-only walkthroughs rather than executable scripts, and LOAD_OFFSET = 0x0 is asserted with only a 'verify with readelf' comment instead of a verification command.

4 / 5

Workflow Clarity

Steps 1–6 are clearly sequenced with useful decision branches ('only libmono.so → Mono, N/A'; 'no global-metadata.dat → go to Step 5') and Step 5's magic-byte check is a good checkpoint. However the destructive static-patch workflow (binary write → repack → re-sign → install) has no validation between patch and install — no byte verification after writing, no post-install smoke test — so the rubric's destructive/batch cap holds workflow clarity at 3.

3 / 5

Progressive Disclosure

No bundle files exist (references/, scripts/, assets/ are all absent), so everything — including content that would fit a reference file such as the Step 5 obfuscation countermeasure table, the Step 6 Il2CppInspector alternative, and the evidence templates — is inlined in one ~300-line SKILL.md. Section headers are clear, but there is no content split or one-level-deep bundle navigation at all, matching the 'could be better organized / content that should be separate is inline' anchor rather than the good-structure anchor.

3 / 5

Total

14

/

20

Passed

Description

75%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 strong, highly specific description that names concrete actions and tools across the full IL2CPP reversing workflow with excellent distinctiveness. Its main gap is the missing explicit 'Use when...' trigger clause, which caps completeness at 3.

Suggestions

Append an explicit trigger clause, e.g., 'Use when reversing Unity IL2CPP games, or when an APK contains libil2cpp.so or global-metadata.dat.'

Fold a few natural synonyms from the when_to_use metadata into the description itself (e.g., 'libil2cpp.so', 'cheat', 'anti-cheat bypass') to round out trigger-term coverage.

DimensionReasoningScore

Specificity

The description lists multiple concrete actions covering the entire workflow — 'Il2CppDumper metadata recovery', 'global-metadata.dat decryption', 'IDA/Ghidra symbol restore via generated scripts', 'Frida method hooking', 'IAP/license bypass', and 'zygisk-il2cpp-dumper for obfuscated metadata' — matching the comprehensive-coverage anchor. It is not a 4 because every capability present in the body is represented by a specific action phrase.

5 / 5

Completeness

The 'what' is clearly and comprehensively answered, but the description contains no explicit 'Use when...' clause or equivalent trigger guidance — the rubric caps completeness at 3 in that case. It is not a 2 because the 'what' is concrete and specific, not vague.

3 / 5

Trigger Term Quality

Good natural-term coverage: 'Unity IL2CPP', 'game reversing', 'global-metadata.dat', 'Frida method hooking', 'IAP/license bypass', plus tool names users would actually mention. A few natural synonyms and extensions (e.g., 'libil2cpp.so', 'cheat', 'modding') appear only in the when_to_use metadata rather than the description itself, so it falls just short of the comprehensive anchor.

4 / 5

Distinctiveness Conflict Risk

A clear niche with distinct triggers — 'Unity IL2CPP', 'global-metadata.dat', 'zygisk-il2cpp-dumper' — that are unlikely to fire for a wrong skill, and the body explicitly distinguishes sibling domains (Mono backend, Flutter/Dart AOT). Minimal conflict risk matches the top anchor.

5 / 5

Total

17

/

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/mobile/android/il2cpp/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.