RESim is a dynamic system analysis framework designed to help security researchers understand how programs execute, interact with system resources and process data across networked Linux environments. It uses full system simulation to observe software behavior without installing monitoring tools or injecting code into the target system.
Built on the Simics full system simulator, RESim recreates networked computers using detailed models of processors, peripheral devices, network interfaces and storage devices. The simulated machines run software loaded from images extracted from the physical systems being analyzed.
RESim helps researchers investigate Linux-based systems by tracking processes, the programs they execute and the data they consume. It identifies interactions with different data sources, including files, device interfaces and inter-process communication mechanisms.
Rather than relying on software installed inside the target environment, RESim observes the simulated system’s processor and memory state. This external analysis approach does not require shell access, software injection or detailed knowledge of the target kernel’s symbols.
Because the observation mechanisms operate outside the simulated system, they do not directly modify the target’s execution state. This makes RESim useful for examining software behavior while keeping the analysis environment separate from the application being investigated.
RESim provides interactive debugging capabilities through a custom plugin for IDA Pro. Plugins for the Ghidra Debugger are also available, allowing analysts to inspect individual programs during simulation.
Researchers can set breakpoints and pause execution when selected events occur. RESim also supports reverse-time debugging, allowing analysts to move the simulation backward to investigate earlier execution states. For example, it can locate the most recent modification of a particular memory address.
Other debugging capabilities include:
su program.RESim integrates with American Fuzzy Lop (AFL), a popular coverage-guided fuzzing tool. This integration allows fuzzed input to be delivered directly into an application’s read buffer, reducing the setup complexity associated with conventional fuzzing workflows.
When the fuzzing process discovers a crash, RESim can automatically replay and analyze the failure. Researchers can inspect the resulting system state and investigate the underlying cause, including memory corruption and execution-control corruption.
This combination of full system simulation, debugging and automated crash analysis makes RESim useful for vulnerability research and software behavior analysis.
RESim builds on a software vetting and forensic analysis platform developed for the DARPA Cyber Grand Challenge. Its predecessor project, CGC Monitor, provides additional background on the underlying research and architecture.
Researchers interested in the project’s technical foundations can also explore the following resources:
RESim is intended for researchers and security professionals working on reverse engineering, vulnerability analysis, debugging and software testing in simulated Linux environments.
Download RESim from GitHub to explore the source code and project resources.
For related security research, see our guide to BurpSuite Secret Finder, a tool for discovering API keys and tokens.