Aller au contenu

TinyTracer - Cheatsheet Traceur API/Instruction pour le Déballage

TinyTracer - Cheatsheet Traceur API/Instruction pour le Déballage

TinyTracer (par hasherezade) est un outil de traçage dynamique construit sur Intel Pin. Il exécute un exécutable cible et produit un tracelog des appels API et des instructions sélectionnées, enregistrant chaque événement comme un offset par rapport au module (RVA) pour que la sortie reste significative même pour le code relocalisé. Parce que Pin instrumente au bas niveau, TinyTracer n”est pas affecté par la plupart des astuces anti-debug qu”un stub de packer utilise, ce qui le rend excellent pour identifier le Point d”Entrée Original (OEP) d”un échantillon et observer ce qu”il fait réellement.

Pour l”analyse de malwares autorisée. Exécuter les échantillons non fiables uniquement dans une VM/sandbox isolée.

Conditions Requises

  • Intel Pin (la structure d”instrumentation binaire dynamique)
  • VM d”analyse Windows (x86/x64)
  • TinyTracer.dll compilée de TinyTracer (Pintool)

Installation

ÉtapeComment
Obtenir PinTélécharger Intel Pin et définir PIN_ROOT
Obtenir TinyTracerTélécharger une release ou compiler le Pintool
Scripts helperUtiliser les run_me.bat / helpers d”installation fournis
VérificationExécuter contre un EXE connu et vérifier la sortie .tag/log

Exécuter un Trace

# Invocation conceptuelle (via le helper fourni ou pin directement)
pin.exe -t TinyTracer.dll -o output.tag -- target.exe
DrapeauObjectif
-t TinyTracer.dllCharger TinyTracer comme Pintool
-o FILEChemin du tracelog (.tag)
-m MODULELimiter le traçage à un module
-bTracer les blocs de base / événements plus granulaires
-- target argsLe programme à tracer et ses arguments

Ce que Contient le Tracelog

EntréeSignification
RVA;called: FUNCUn appel API, à une adresse relative au module
Transitions de sectionL”exécution se déplaçant entre les sections (déballage)
Callbacks TLSHooks d”anti-analyse/exécution précoces
Appels secondairesOptionnellement, les cibles d”appel interne

L”enregistrement basé sur RVA est la clé : même après qu”un packer déballes et saute dans un nouveau code, les entrées restent ancrées au module pour que vous puissiez les mapper dans un disassembleur.

Trouver l”OEP

L”utilisation classique : observer où l”exécution se pose après que le stub du packer se termine.

ÉtapeCe qu”il faut chercher
1Exécuter l”échantillon empaqueté sous TinyTracer
2Observer un saut dans une section précédemment non écrite
3Les premiers vrais bursts d”API (GetModuleHandle, etc.) marquent le code déballé
4Noter le RVA — cette région est votre candidat OEP
5Dumper à ce point (ex. avec PE-sieve) et analyser statiquement

Intégration avec la Boîte à Outils

OutilRôle aux côtés de TinyTracer
PE-sieveDumper le module déballé trouvé à l”OEP
x64dbgDéfinir un breakpoint au RVA OEP pour l”analyse plus approfondie
Detect It EasyIdentifier le packer avant le traçage
GhidraMapper les RVAs tracés au disassembly

Flux de Travail Courants

# Trace comportemental de l''utilisation API d''un échantillon
pin -t TinyTracer.dll -o sample.tag -- sample.exe
# → examiner sample.tag pour les séquences d''API suspectes (crypto, réseau, injection)

# Chasse OEP pour un packer inconnu
# 1) tracer, 2) trouver la transition de section dans le code déballé,
# 3) PE-sieve pour dumper, 4) analyser le binaire propre

TinyTracer vs Approches Connexes

AspectTinyTracerx64dbg (manuel)API Monitor
FondementInstrumentation PinDebugger interactifHooking API
Résistance anti-debugÉlevéeNécessite ScyllaHideModérée
SortieTracelog RVAInteractifJournal API en direct
Meilleur pourTraçage OEP/comportement automatiséStepping pratiqueObserver les appels API

Ressources