yaklang/vm-and-bytecode-reverse

Playbook d'ingénierie inverse de VM personnalisées et de bytecode. À utiliser lorsque des challenges CTF ou des logiciels protégés implémentent des machines virtuelles personnalisées avec un bytecode propriétaire, des boucles de répartition ou des défis de type labyrinthe.

Qu'est-ce que vm-and-bytecode-reverse ?

Ce skill fournit un playbook complet pour l'ingénierie inverse de machines virtuelles personnalisées et de bytecode propriétaire, couramment rencontrés dans les challenges CTF ou les logiciels protégés. Il aide les analystes à comprendre et à déconstruire des VM sur mesure, leurs boucles de répartition, et des structures de bytecode complexes. Le skill est conçu pour être utilisé avec des outils comme IDA Pro, Ghidra, ou des frameworks de rétro-ingénierie, et couvre l'analyse statique et dynamique. Il explique comment identifier le flux de contrôle, extraire les opcodes, et reconstruire la logique sous-jacente, même face à des défis de type labyrinthe. L'objectif est de fournir une méthodologie reproductible pour inverser des protections logicielles ou résoudre des challenges CTF complexes.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/yaklang/hack-skills/tree/main/skills/vm-and-bytecode-reverse

Installed? Explore more Développement et programmation skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Que fait vm-and-bytecode-reverse ?

Playbook d'ingénierie inverse de VM personnalisées et de bytecode. À utiliser lorsque des challenges CTF ou des logiciels protégés implémentent des machines virtuelles personnalisées avec un bytecode propriétaire, des boucles de répartition ou des défis de type labyrinthe.

Aperçu

Ce playbook fournit une approche structurée pour analyser et déconstruire des machines virtuelles personnalisées (VM) et leur bytecode. Il est particulièrement utile dans les contextes suivants :

  • Challenges CTF (Capture The Flag) avec VM sur mesure
  • Logiciels protégés utilisant des VM personnalisées pour obscurcir la logique métier
  • Défis de type labyrinthe nécessitant l'analyse de bytecode
  • Analyse de boucles de répartition (dispatcher loops) complexes

Étapes clés

1. Identification du point d'entrée

  • Localiser la fonction principale ou le point d'entrée de la VM
  • Rechercher des boucles infinies avec des structures switch-case ou des sauts indirects
  • Utiliser des outils comme IDA Pro, Ghidra ou Binary Ninja pour l'analyse statique

2. Analyse du dispatcher

  • Identifier la boucle de répartition (dispatcher loop) qui lit et exécute les instructions
  • Analyser la gestion des opcodes (lecture, décodage, exécution)
  • Extraire les handlers d'instructions individuelles

3. Extraction du bytecode

  • Localiser le bytecode dans la mémoire ou les données binaires
  • Déterminer la taille et le format des instructions
  • Créer des scripts (Python, etc.) pour désassembler le bytecode

4. Reconstruction de la logique

  • Reconstruire le jeu d'instructions (opcodes, opérandes)
  • Créer un désassembleur pour convertir le bytecode en pseudo-code
  • Analyser les motifs communs (arithmétique, contrôle de flux, etc.)

Outils recommandés

  • IDA Pro : Analyse statique avancée avec support des scripts Python
  • Ghidra : Framework open-source avec désassembleur et décompilateur
  • Binary Ninja : Analyse interactive avec API puissante
  • Python : Pour créer des scripts d'extraction et d'analyse de bytecode
  • Unicorn Engine : Pour émuler et exécuter dynamiquement le bytecode

Exemple de workflow

1. Ouvrir le binaire dans IDA Pro
2. Trouver la boucle de répartition (rechercher des sauts indirects)
3. Extraire les handlers (sous-fonctions appelées par le dispatcher)
4. Localiser la section de données contenant le bytecode
5. Écrire un désassembleur (ex: en Python) pour interpréter le bytecode
6. Analyser le flux de contrôle pour comprendre la logique du challenge

Notes importantes

  • Les VM personnalisées peuvent utiliser des opcodes de taille variable ou des encodages complexes
  • Certaines VM utilisent des tables de saut (jump tables) pour la répartition
  • L'analyse dynamique (débogage, émulation) peut être nécessaire pour les VM avec des boucles de répartition complexes
  • Garder une trace des opcodes et des handlers dans un tableau pour référencer rapidement

Contribution

Les améliorations et retours sont les bienvenus. Veuillez ouvrir une issue ou soumettre une pull request pour partager vos techniques ou corrections.

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

yaklang/401-403-bypass-techniques

401/403 bypass playbook. Use when encountering access-denied responses on admin panels, API endpoints, or restricted paths. Covers path manipulation, HTTP method tampering, header injection, protocol downgrade, and automated bypass tools.

yaklang/active-directory-acl-abuse

Active Directory ACL abuse playbook. Use when exploiting misconfigured AD permissions including GenericAll, WriteDACL, DCSync rights, shadow credentials, LAPS reading, GPO abuse, and BloodHound-guided attack paths.

yaklang/active-directory-certificate-services

AD Certificate Services attack playbook. Use when targeting misconfigured AD CS for privilege escalation via ESC1-ESC13 template abuse, NTLM relay to enrollment, CA officer abuse, and certificate-based persistence.

yaklang/active-directory-kerberos-attacks

Kerberos attack playbook for Active Directory. Use when targeting AD authentication via AS-REP roasting, Kerberoasting, golden/silver/diamond tickets, delegation abuse, or pass-the-ticket attacks.

yaklang/ai-ml-security

AI/ML security playbook. Use when assessing model supply chain attacks (pickle RCE, poisoned weights), adversarial examples, model poisoning, model stealing, data privacy attacks (membership inference, model inversion), and autonomous agent security risks.

yaklang/android-pentesting-tricks

Android pentesting playbook. Use when testing Android applications for SSL pinning bypass, exported component abuse, WebView vulnerabilities, intent redirection, root detection bypass, tapjacking, and backup extraction during authorized mobile security assessments.

yaklang/anti-debugging-techniques

Anti-debugging detection and bypass playbook. Use when reversing protected binaries that detect debuggers via ptrace, PEB flags, timing checks, or signal/exception handlers on Linux and Windows.

yaklang/api-auth-and-jwt-abuse

API authentication and JWT abuse playbook. Use when testing bearer tokens, API keys, claim trust, header spoofing, rate limits, and API auth boundary weaknesses.

yaklang/api-authorization-and-bola

API authorization and BOLA testing playbook. Use when APIs expose object identifiers, nested resources, hidden writable fields, or weak function-level authorization.

yaklang/api-recon-and-docs

API reconnaissance and documentation review playbook. Use when discovering endpoints, schemas, versions, OpenAPI specs, hidden docs, and surface area for API testing.

yaklang/api-sec

Entry P1 category router for API security. Use when choosing between API recon, authorization, token abuse, and hidden-parameter workflows before any deeper API topic skill.

yaklang/arbitrary-write-to-rce

Arbitrary write to RCE playbook. Use when you have an arbitrary write primitive (from heap exploitation, format string, or OOB write) and need to convert it into code execution by targeting GOT, hooks, _IO_FILE vtable, exit_funcs, TLS_dtor_list, modprobe_path, .fini_array, or C++ vtables.

yaklang/authbypass-authentication-flaws

Authentication bypass testing playbook. Use when assessing login flows, password reset logic, account recovery, MFA bypass, token predictability, brute-force resistance, and session boundary flaws.

yaklang/auth-sec

Entry P1 category router for authentication and authorization. Use when testing login flows, sessions, object authorization, JWT, OAuth, CORS, CSRF, and enterprise SSO weaknesses before any deeper auth topic skill.

yaklang/binary-protection-bypass

Binary protection bypass playbook. Use when identifying and bypassing ASLR, PIE, NX/DEP, stack canary, RELRO, FORTIFY_SOURCE, CET, and MTE protections in ELF binaries to enable exploitation.

yaklang/browser-exploitation-v8

Browser and V8 exploitation playbook. Use when exploiting JavaScript engine vulnerabilities including JIT type confusion, incorrect bounds elimination, and V8 sandbox bypass to achieve renderer RCE and sandbox escape in Chrome/Chromium.

yaklang/business-logic-vuln

Entry P1 category router for business logic testing. Use when workflow abuse, race conditions, pricing flaws, or multi-step state attacks matter more than parser-level input injection.

yaklang/business-logic-vulnerabilities

Business logic vulnerability playbook. Use when reasoning about workflows, race conditions, price manipulation, coupon abuse, state machines, and multi-step authorization gaps.

yaklang/classical-cipher-analysis

Classical cipher analysis playbook. Use when encountering substitution ciphers, Vigenere, transposition, XOR, or encoded text in CTF challenges that requires frequency analysis, Kasiski examination, or known-plaintext cryptanalysis.

yaklang/clickjacking

Clickjacking playbook. Use when testing whether target pages can be framed, whether X-Frame-Options or CSP frame-ancestors are properly configured, and whether UI redress attacks can trigger sensitive actions.

Skills associés