# dma_forensic **Repository Path**: minbin2002/dma_forensic ## Basic Information - **Project Name**: dma_forensic - **Description**: 基于(https://github.com/ufrisk/MemProcFS)实现的内存可视化分析软件,能够基于dma技术直接获取设备的物理内存并进行解析、直观的分析内存数据并尝试检测潜在的恶意代码信息 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 26 - **Created**: 2025-03-21 - **Last Updated**: 2025-03-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 基于DMA的恶意代码分析取证系统 #### 介绍 基于DMA的恶意代码分析取证系统,本作品使用了网站 https://github.com/ufrisk/MemProcFS 上的工具实现了内存可视化分析软件,能够基于dma技术直接获取设备的物理内存并进行解析、直观的分析内存数据并尝试检测潜在的恶意代码信息。 基于跨平台应用程序开发框架Qt,设计实现了一个基于DMA的恶意代码分析取证系统,成果为可供用户交互使用的Windows应用软件。该系统基于开源工具PCIleech与PCIe设备,利用FPGA开发板借助DMA接口对内存进行直接读写,实现内存采集或转储完整的内存文件;在此基础上调用开源工具MemProcFS的API函数,对获取的原始物理内存进行解析,得到与恶意代码分析相关的重要内存结构信息,包括进程信息、注册表信息、网络连接信息等;最后针对逃避型恶意代码的逃避机理,对内存中的恶意行为进行捕获,从而实现对逃避型恶意代码的分析取证。 本项目的创新性主要体现在以下三个方面: 1、基于开源工具PCIleech与PCIe设备,借助FPGA设备利用DMA在恶意代码无感的情况下分析内存进程,能够分析其他分析方法难以分析的反取证、反调试恶意程序。 2、设计可交互式软件界面来取证分析物理内存中的具体数据。 3、基于项目的模块化特征,该产品可以有效结合多方安全产品工具,使得对不同的安全工具均可以使用同一套内存获取和解析的解决方案。 #### 软件架构 ![软件总体模块结构](image/image1.png) ![代码框架](image/image2.png) 整个项目的代码结构如图所示,其中Forensic为项目的工程文件,我们为每一个在软件中实现的具体功能定义了一个Qt类,包括一个头文件,定义在文件夹Headers中,一个同名的cpp文件,定义在文件夹Sources中,负责主要功能的实现,以及一个ui文件,定义在文件夹Forms中。 其中,mainwindow.cpp为项目的主窗口类,用于打开程序的主界面,并根据用户给出的交互信息打开程序的功能界面。 #### 安装教程 1. 下载发行版“可执行文件.zip” 2. 依照readme.txt进行使用 #### 使用说明 1. 在启动项目的exe文件后,首先会显示如下图的导航界面,用以启动该软件 ![导航界面](image/image3.png) 在选择这里,可以选择内存镜像文件或内存转储文件进行分析,默认为“镜像内存分析”模式,选择文件处,需要选择待分析的物理内存镜像,均选择完毕后,点击开始,进入程序的主窗口 ![程序主窗口](image/image4.png) 2. 具体功能 本部分内容主要介绍各个模块的具体功能以及实际分析效果,具体内容包括进程概要、注册表分析模块、系统信息分析模块、取证信息分析模块以及进程分析模块。 进程概要:在菜单栏中点击进程概要下的refresh,可在工作区左侧弹出,其中列举了当前运行状态下的全部进程的进程号、父进程号、进程名、创建时间以及结束时间(如果该进程已经退出),分析人员,可以通过查看该页面的进程名来锁定异常进程,从而进行下一步分析。以及,在实时分析中,再次刷新可以得到当前时间节点的进程列表。 ![进程概要信息](image/image5.png) 注册表分析模块:在菜单栏的整体信息栏下点击register后,可以在工作区弹出注册表分析页面,这里我们对注册表相关数据的处理,模仿了Windows操作系统下注册表编辑器,所有表项内容以树形目录结构展开方便用户查找注册表中的表项与对应键值。 ![注册表信息](image/image5.png) 类似的还有三个独立模块:系统信息分析模块,取证信息分析模块,进程信息分析模块 #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request #### 特技 1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md 2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com) 3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目 4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目 5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) 6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)