A dynamic API calls tracer for Windows and Linux applications, built on DynamoRIO for transparent malware analysis.
Drltrace is a dynamic API calls tracer for Windows and Linux applications, built on the DynamoRIO binary instrumentation framework. It logs all library calls made by a target process, including function names and arguments, to aid in reverse engineering and malware analysis. It solves the problem of transparently tracing malware that employs anti-research techniques like packers, encryption, and anti-hooking measures.
Security researchers and malware analysts who need to understand the behavior of Windows and Linux executables, especially those protected by obfuscation or anti-analysis tricks.
Developers choose Drltrace because it offers undetectable tracing through dynamic binary instrumentation, avoiding the pitfalls of traditional API-hooking. It is open-source, cross-platform, and provides easily parsable output with flexible filtering options for focused analysis.
Drltrace is a library calls tracer for Windows and Linux applications.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Uses DynamoRIO for dynamic binary instrumentation, avoiding detection by anti-hooking and anti-debugging techniques common in malware, as highlighted in the motivation section.
Supports both Windows and Linux on x86/x64 architectures, making it versatile for analyzing diverse executables, unlike OS-specific tools.
Offers options like -only_from_app and filter files to reduce log noise, allowing focused analysis on relevant API calls from the main module.
Allows users to define custom function prototypes in configuration files for printing arguments of unknown or non-system DLL calls, enhancing adaptability.
Includes Python scripts for log visualization and string extraction, such as api_calls_viz.py for generating RGB images from API call sequences.
The README admits that DBI engines like DynamoRIO can be detected by sophisticated malware, as referenced in future work, which may limit effectiveness against advanced threats.
Setting up requires building with DynamoRIO and following detailed wiki instructions, which can be cumbersome for users unfamiliar with binary instrumentation frameworks.
Lacks built-in heuristics for automatic behavior detection; analysis relies on manual parsing and external scripts, slowing down automated workflows.
Dynamic binary instrumentation inherently adds execution overhead, which could impact tracing of time-sensitive applications or lead to timing anomalies in malware.