Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
drltrace — Drltrace es un rastreador de llamadas a bibliotecas para aplicaciones Windows y Linux. | Kitploit
Herramientas/GitHubGitHub/mxmssh/drltrace
Análisis Dinámico (Sandboxing)Ingeniería InversaDepuradoresAnálisis de MalwareAnálisis de Binarios
GitHubmxmssh/drltrace

drltrace

Drltrace es un rastreador de llamadas a bibliotecas para aplicaciones Windows y Linux.

Ver Repositorio
4197190hace 6 añosRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Drltrace

Compilación de prueba de Windows build status

Compilación de prueba de Linux Build Status

Drltrace es un trazador dinámico de llamadas API para aplicaciones Windows y Linux. Drltrace está construido sobre el framework de instrumentación binaria dinámica DynamoRIO. Drltrace fue implementado inicialmente por Derek Bruening y distribuido con los frameworks DynamoRIO y DrMemory. Este repositorio contiene una versión independiente de drltrace con scripts adicionales y materiales sobre cómo usarlo para análisis de malware. La compilación de lanzamiento se puede descargar aquí.

Uso

El uso de drltrace es muy simple. El usuario debe especificar un directorio de registro y el nombre de un proceso objetivo de la siguiente manera:

drltrace -logdir . -- calc.exe

Eso es todo, la herramienta inyectará las DLL necesarias en el proceso objetivo, iniciará la instrumentación y en paralelo registrará información sobre todas las llamadas a bibliotecas que se ejecuten en el proceso objetivo:

~~43600~~ msvcrt.dll!__wgetmainargs
    arg 0: 0x010d2364
    arg 1: 0x010d2368
    and return to module id:0, offset:0x193a
~~43600~~ ntdll.dll!EtwEventRegister
    arg 0: 0x002ff994
    arg 1: 0x010d1490
    and return to module id:0, offset:0x157e
~~43600~~ ntdll.dll!EtwEventSetInformation
    arg 0: 0x007b4b40
    arg 1: 0x00000033
    and return to module id:0, offset:0x15a1
~~43600~~ SHELL32.dll!ShellExecuteW
    arg 0: <null> (type=<unknown>, size=0x0)
    arg 1: <null> (type=wchar_t*, size=0x0)
    arg 2: calculator:// (type=wchar_t*, size=0x0)
    arg 3: <null> (type=wchar_t*, size=0x0)
    arg 4: <null> (type=wchar_t*, size=0x0)
    arg 5: 0x1 (type=int, size=0x4)
    and return to module id:0, offset:0x167d

El formato de la salida es simple y puede ser analizado fácilmente por un script externo:

~~[thread id]~~ [dll name]![api call name]
arg [arg #]: [value] (type=[Windows type name], size=[size of arg])
and return to module id:[module unique id], offset:[offset in memory]

El análisis con grep se puede realizar cuando se usa el argumento -grepable; esto imprime los nombres de las funciones y los argumentos todo en una línea:

~~4824~~ KERNELBASE.dll!CreateFileW {0: C:\Windows\Fonts\staticcache.dat (type=wchar_t*, size=0x0)} {1: 0x80000000 (type=DWORD, size=0x4)} {2: 0x3 (type=DWORD, size=0x4)} {3: 0x005cde8c (type=<unknown>*, size=0x0)} {4: 0x3 (type=DWORD, size=0x4)} {5: 0x80 (type=DWORD, size=0x4)}

La tabla de identificadores únicos de módulos se imprime al final del archivo de registro:

Module Table: version 3, count 70
Columns: id, containing_id, start, end, entry, checksum, timestamp, path
  0,   0, 0x010d0000, 0x010da000, 0x010d1b80, 0x0000f752, 0xb5fe3575,  C:\Windows\SysWOW64\calc.exe
  1,   1, 0x6d4c0000, 0x6d621000, 0x6d563940, 0x00136d65, 0x59ce1b0b,  C:\Users\Max\Downloads\drltrace\drltrace\dynamorio\lib32\release\dynamorio.dll
  2,   2, 0x73800000, 0x73975000, 0x7380dbf7, 0x00000000, 0x59ce1b0f,  C:\Users\Max\Downloads\drltrace\drltrace\bin\release/drltracelib.dll
  3,   3, 0x742f0000, 0x742fa000, 0x742f2a00, 0x0000c877, 0x0adc52c1,  C:\Windows\System32\CRYPTBASE.dll
  4,   4, 0x74300000, 0x74320000, 0x7430c9b0, 0x0002c617, 0x245970b4,  C:\Windows\System32\SspiCli.dll
  5,   5, 0x74410000, 0x74431000, 0x74416900, 0x0002a940, 0x88a53c1d,  C:\Windows\System32\GDI32.dll
  6,   6, 0x74440000, 0x74500000, 0x7446fb20, 0x000cc410, 0xd343d532,  C:\Windows\System32\RPCRT4.dll
  7,   7, 0x74500000, 0x74525000, 0x745047d0, 0x00026737, 0xa39c8991,  C:\Windows\System32\IMM32.DLL
  8,   8, 0x74550000, 0x745c7000, 0x7456e8a0, 0x00081857, 0x73b971e1,  C:\Windows\System32\advapi32.dll
  9,   9, 0x748f0000, 0x74929000, 0x748febd0, 0x00045303, 0xa58be652,  C:\Windows\System32\cfgmgr32.dll
 10,  10, 0x74930000, 0x75c78000, 0x74aa09d0, 0x01377aa6, 0x4b39926b,  C:\Windows\System32\SHELL32.dll

Drltrace puede filtrar fácilmente las llamadas entre bibliotecas e imprimir solo las llamadas API realizadas desde el módulo principal (o desde el heap) de una aplicación objetivo especificando la opción -only_from_app, lo cual es muy útil en caso de aplicaciones que generan registros enormes. Para un control más granular, la opción -filter permite al usuario especificar un archivo de configuración de filtro para filtrar funciones incluidas en una lista blanca específica, o ignorar funciones en una lista negra (consulte el archivo filter.config para ver ejemplos). Drltrace también tiene varios scripts externos útiles para filtrar llamadas API para cierta biblioteca, imprimir solo llamadas API potencialmente interesantes y cadenas.

Licencia

Los módulos principales de Drltrace se distribuyen bajo BSD.

Algunos archivos necesarios para drltrace se distribuyen bajo LGPL. Consulte los archivos fuente para más detalles.

Motivación

El análisis de malware no es una tarea fácil. Los empaquetadores de software sofisticados como Themida y Armadillo, y por supuesto docenas de empaquetadores sin nombre escritos por autores de malware, junto con el cifrado de código y datos, facilitan significativamente (en algunos casos haciendo completamente imposible) la ingeniería inversa estática de dichas muestras, complicando la vida de los analistas de malware. En tal caso, el tracing de llamadas API puede reducir significativamente la cantidad de tiempo necesaria para comprender la intención maliciosa real y revelar muchos detalles técnicos sobre el código malicioso protegido.

Si bien la técnica tradicional de API-hooking se ha implementado con éxito en varias soluciones, el enfoque está bien estudiado por los autores de malware y puede ser fácilmente detectado y/o eludido. Además, estas herramientas se distribuyen como aplicaciones GUI independientes y pesadas (como productos propietarios) que a menudo no son fáciles de integrar en un flujo de trabajo de análisis de malware existente.

Si miramos el mundo de Linux, existe una herramienta maravillosa llamada ltrace. Usando un solo comando bash, podemos obtener fácilmente el rastro completo de llamadas API de un ejecutable en particular.

¿Por qué no tenemos una herramienta así (como ltrace en Linux) para Windows que además sea transparente frente a trucos anti-investigación utilizados por el malware moderno?

Resulta que existe una técnica que puede ayudarnos a tener dicha herramienta para Windows y trazar llamadas API de manera transparente al programa ejecutado. Esta técnica se llama instrumentación binaria dinámica, también conocida como DBI. DBI es una técnica para analizar el comportamiento de una aplicación binaria en tiempo de ejecución mediante la inyección de código de instrumentación.

Sin embargo, la aplicación de DBI para el análisis de malware está injustificadamente limitada a la automatización de desempaquetado y a varias pruebas de concepto para el tracing de instrucciones, bloques básicos y llamadas a funciones. Hasta donde sabemos, drltrace es la primera herramienta para tracing de llamadas API basada en DBI que se puede usar en la práctica para el análisis de malware. Proporcionamos varios ejemplos de análisis de malware en nuestra wiki donde describimos cómo drltrace permitió revelar en pocos minutos muchos detalles técnicos internos sobre muestras maliciosas sofisticadas sin siquiera iniciar IDA o un depurador.

Descargar herramienta