mfthomps/RESim

GitHub: mfthomps/RESim

基于全系统模拟器的逆向工程与动态分析平台,支持非侵入式外部分析、时间回溯和模糊测试。

Stars: 193 | Forks: 38

# RESim ## 利用全系统模拟器进行逆向工程。 * 通过使用 Simics[1] 仪器化模拟硬件进行动态分析 * 追踪进程树、系统调用和独立程序 * 反向执行至选定的断点和事件 * 与 IDA Pro(tm) 调试客户端集成 * 用于 Ghidra 调试器的 Ghidra 插件 * 使用定制的 AFL 进行 Fuzz,直接注入模拟内存 RESim 是一个动态系统分析工具,可深入了解联网计算机内的进程、程序和数据流。RESim 通过使用 Simics 平台对处理器、外设(例如网卡)和磁盘的高保真模型来模拟计算机网络。联网计算机平台模型加载并运行从被模拟的物理系统提取的镜像中复制的目标软件。 RESim 通过根据进程执行的程序和消耗的数据来清点进程,从而辅助基于 Linux 和 Windows 系统网络的逆向工程和漏洞分析。数据源包括文件、设备接口和进程间通信机制。进程执行和数据消耗通过对运行中的模拟系统进行动态分析来记录,无需在模拟系统中安装或注入软件,也无需详细了解托管进程的内核。 RESim 还通过使用 IDA Pro 和 Ghidra 反汇编器/调试器的插件,为单个正在执行的程序提供交互式可见性。反汇编器/调试器允许设置断点,以便在未来或过去的时间[2]暂停模拟以等待选定事件。例如,RESim 可以将模拟状态反向引导,直到最近一次修改选定内存地址为止。 在系统执行期间的任何时刻都可以生成可重新加载的检查点(Checkpoint)。RESim 模拟可以暂停以进行检查,例如当指定进程被调度执行时,随后可以继续运行,并可能改变内存或寄存器状态。分析人员可以显式修改内存或寄存器内容,还可以根据系统事件动态修改内存,例如当 *su* 程序读取时更改密码文件条目。 分析完全通过观察模拟目标系统的内存和处理器状态来执行,无需 Shell、软件注入或内核符号表。这种分析被称为 *外部* 分析,因为观察函数不会影响模拟系统的状态。 RESim 已与 *American Fuzzing Lop* (AFL) Fuzzer 集成。该 Fuzz 系统将变异后的数据直接注入应用程序读取缓冲区,简化了 Fuzz 设置和工作流程。RESim 自动重放和分析任何检测到的崩溃,识别崩溃的原因,例如执行控制损坏。 请参阅 [RESim 用户指南](docs/RESim-UsersGuide.pdf) 获取更多信息。可以在此处查看 RESim 的简短演示: (https://nps.box.com/s/rf3n104ualg38pon6b7fm6m6wqk9zz50) 示例磁盘镜像在此 [readme](simics/examples/network\_file\_system/README.md) 中进行了描述 RESim 源自为 DARPA 网络挑战赛 创建的软件审查和取证分析平台。该仓库位于: https://github.com/mfthomps/cgc-monitor. 描述该工作的论文位于 https://www.sciencedirect.com/science/article/pii/S1742287618301920 关于在 CGC Monitor 中使用 Simics 的精彩总结位于 https://software.intel.com/content/www/us/en/develop/blogs/simics-software-automates-cyber-grand-challenge-validation.html [1]Simics 是由 Intel 开发的全系统模拟器,Intel 拥有所有相关商标。 [2]Simics 7 弃用了“反向执行”,但 RESim 将其重新加入。 ## 许可证 ``` This software was created by United States Government employees and may not be copyrighted. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ```
标签:AFL, Ghidra, IDA Pro, Simics, 二进制分析, 云安全运维, 云资产清单, 全系统模拟, 反向执行, 合规性检查, 快照, 恶意代码分析, 断点调试, 漏洞分析, 硬件仿真, 系统仿真, 系统调用追踪, 网络安全, 路径探测, 进程追踪, 逆向工具, 逆向工程, 配置文件, 隐私保护