Structure de rapport reproductible pour une analyse de reverse engineering, à instancier projet par projet.

0. Metadata

  • Analyst:
  • Date(s) of analysis:
  • Report version:
  • Target binary / application:
  • Version / build info (if known):
  • Hashes:
    • SHA256:
    • MD5:

1. Contexte et objectifs

1.1 Contexte

  • FACT: …

1.2 Objectifs de l’analyse

  • Objectif principal:
  • Objectifs secondaires:

1.3 Portée et limites

  • Portée:
  • Hors périmètre:
  • Contraintes (temps, légales, techniques):

2. Environnement et outillage

2.1 Plateformes d’analyse

  • OS hôte:
  • VM / sandbox:
  • Snapshots utilisés:

2.2 Outils

  • Disassemblers / decompilers:
  • Debuggers:
  • System tools:
  • Network tools:
  • Scripting et automation:

2.3 Configuration spécifique

  • Options importantes:
  • Patches appliqués (pour analyse, anti-debug neutralisé, etc.):

3. Description de la cible

3.1 Propriétés générales

  • Type de binaire (ELF/PE/Mach-O, arch, 32/64 bits, etc.):
  • Mode (position independent, PIE, etc.):
  • Librairies dynamiques:

3.2 Sections et entropie

  • Sections notables:
  • Indices de packer / chiffrement:

3.3 Imports / exports

  • Imports clés (réseau, crypto, système, etc.):
  • Exports (API exposée):

3.4 Chaînes intéressantes

  • Chaînes (paths, URLs, messages d’erreur, etc.):

4. Vue d’ensemble architecturale

4.1 Modules / composants identifiés

  • Module 1: description, fonctions principales.
  • Module 2: …

4.2 Schéma général

  • Diagramme (même textuel) des interactions entre modules:

5. Analyse statique détaillée

5.1 Points d’entrée

  • Entry point:
  • Main / initialisation:
  • Autres points d’entrée (exports, callbacks):

5.2 Fonctions critiques

  • Fonction A:
    • Adresse(s):
    • Rôle supposé:
    • FACT: …
    • HYP: …
  • Fonction B: …

5.3 Structures de données

  • Structure X:
    • Champs identifiés:
    • Usage (lecture/écriture):

5.4 Patterns et mécanismes particuliers

  • Crypto / hash:
  • Formats de fichiers:
  • Gestion d’erreurs:

6. Analyse dynamique

6.1 Scénarios de test

Pour chaque scénario :

  • ID du scénario:
  • Commande / séquence:
  • Environnement (variables, fichiers présents/absents):

6.2 Observations principales

  • FACT: syscalls observés, fichiers créés, connexions réseau…
  • Mapping vers fonctions statiques (adresses, call graph):

6.3 Validation d’hypothèses

Pour chaque HYP :

  • HYP:
  • TEST:
  • Résultat:
  • DECISION: (confirmée / infirmée / incertaine)

7. Protections, obfuscation et anti-RE

7.1 Packer / chiffrement

  • Indices:
  • Méthode de dépack:
  • OEP reconstruit:

7.2 Anti-debug / anti-VM

  • Mécanisme:
  • Point de détection:
  • Effet observé:
  • Contournement utilisé pour l’analyse (si applicable):

7.3 Intégrité et anti-tampering

  • Checksums / hash internes:
  • Réactions en cas de modification:

8. Modèle de fonctionnement reconstruit

8.1 Modèle de données

  • Structures, formats de fichiers, protocoles:
  • États internes:

8.2 Modèle de contrôle

  • Flow typique d’exécution (diagramme textuel ou lien vers figure):
  • Points de décision importants:

8.3 Interfaces externes

  • API (fonctions, paramètres, invariants):
  • Endpoints réseau:
  • Formats d’entrée / sortie:

9. Points sensibles et surfaces d’attaque

9.1 Surfaces d’entrée

  • Entrées non fiables (réseau, fichiers, IPC):
  • Parsing complexe / fragile:

9.2 Hypothèses de vulnérabilité

Pour chaque piste :

  • Description:
  • Preuves partielles:
  • Tests réalisés:
  • Prochaines étapes (fuzz, exploitability, etc.):

10. Journal de recherche (chronologique)

Ce journal doit rester brut, mais structuré.

[YYYY-MM-DD HH:MM] Étape N

  • FACT:
  • HYP:
  • TEST (prévu / exécuté):
  • RES:
  • DECISION:
  • Notes libres:

(Répéter pour chaque bloc d’analyse significatif.)

11. Synthèse et recommandations

11.1 Résumé exécutif

  • Objectif, travail effectué, résultats principaux (en quelques phrases).

11.2 Conclusions techniques

  • Points compris avec un haut degré de confiance:
  • Points partiellement compris:
  • Zones inconnues / non traitées:

11.3 Recommandations

  • Pour un durcissement de l’application:
  • Pour des recherches futures (tests supplémentaires, instrumentation plus poussée, etc.):

Annexes

  • A. Timeline détaillée
  • B. Scripts, commandes et snippets de code
  • C. Patches appliqués
  • D. Dictionnaire des symboles et adresses
  • E. Diagrammes (call graphs, flows, etc.)