Ir al contenido

TinyTracer - Rastreador de API/Instrucciones para Desempaquetamiento

TinyTracer - Rastreador de API/Instrucciones para Desempaquetamiento

TinyTracer (por hasherezade) es una herramienta de rastreo dinámico construida sobre Intel Pin. Ejecuta un ejecutable destino y produce un registro de rastreo de llamadas a API e instrucciones seleccionadas, registrando cada evento como un offset relativo al módulo (RVA) para que la salida siga siendo significativa incluso para código reubicado. Porque Pin instrumenta a un nivel bajo, TinyTracer no se ve afectado por la mayoría de trucos anti-depuración que usa el stub del empaquetador, lo que lo hace excelente para localizar el Original Entry Point (OEP) de una muestra y ver qué hace realmente.

Para análisis de malware autorizado. Ejecuta muestras no confiables solo en una VM/sandbox aislada.

Requirements

  • Intel Pin (el framework de instrumentación binaria dinámica)
  • VM de análisis de Windows (x86/x64)
  • TinyTracer compilado TinyTracer.dll (Pintool)

Installation

PasoCómo
Obtén PinDescarga Intel Pin y establece PIN_ROOT
Obtén TinyTracerDescarga una versión o compila el Pintool
Scripts auxiliaresUsa los run_me.bat agrupados / ayudantes de instalación
VerificarEjecuta contra un EXE conocido y verifica la salida .tag/log

Running a Trace

# Invocación conceptual (vía el ayudante agrupado o pin directamente)
pin.exe -t TinyTracer.dll -o output.tag -- target.exe
FlagPropósito
-t TinyTracer.dllCarga TinyTracer como el Pintool
-o FILERuta del registro de rastreo (.tag)
-m MODULELimita el rastreo a un módulo
-bRastrea bloques básicos / eventos más granulares
-- target argsEl programa a rastrear y sus argumentos

What the Tracelog Contains

EntradaSignificado
RVA;called: FUNCUna llamada a API, en una dirección relativa al módulo
Transiciones de secciónEjecución moviéndose entre secciones (desempaquetamiento)
Retrollamadas TLSGanchos de anti-análisis/ejecución temprana
Sub-llamadasOpcionalmente, destinos de llamadas internas

El registro basado en RVA es clave: incluso después de que un empaquetador desempaquet y salta a nuevo código, las entradas permanecen ancladas al módulo para que puedas mapearlas de vuelta en un desensamblador.

Finding the OEP

El uso clásico: observa dónde cae la ejecución después de que el stub del empaquetador termina.

PasoQué buscar
1Ejecuta la muestra empaquetada bajo TinyTracer
2Observa un salto a una sección previamente no escrita
3Los primeros “reales” ráfagas de API (GetModuleHandle, etc.) marcan código desempaquetado
4Anota el RVA — esa región es tu candidato OEP
5Vuelca en ese punto (p. ej. con PE-sieve) y analiza estáticamente

Integration with the Toolkit

HerramientaRol junto a TinyTracer
PE-sieveVuelca el módulo desempaquetado encontrado en el OEP
x64dbgEstablece un punto de ruptura en el OEP RVA para análisis más profundo
Detect It EasyIdentifica el empaquetador antes de rastrear
GhidraMapea RVA rastreados al desensambly

Common Workflows

# Rastreo conductual del uso de API de una muestra
pin -t TinyTracer.dll -o sample.tag -- sample.exe
# → revisa sample.tag para secuencias sospechosas de API (cripto, red, inyección)

# Búsqueda OEP para un empaquetador desconocido
# 1) rastrear, 2) encontrar la transición de sección en código desempaquetado,
# 3) PE-sieve para volcar, 4) analizar el binario limpio
AspectoTinyTracerx64dbg (manual)API Monitor
BasisInstrumentación PinDepurador interactivoAPI hooking
Anti-debug resistanceAltaNecesita ScyllaHideModerada
SalidaRegistro de rastreo RVAInteractivoRegistro de API en directo
Mejor paraRastreo automático OEP/comportamientoStepping a manoObservar llamadas a API

Resources