MemTracer是一款功能强大的内存扫描工具,该工具提供了一种实时内存分析功能,可以帮助广大研究人员或数字取证专家扫描、发现和分析隐藏在内存中的不易被发现的恶意行为或网络攻击痕迹。
MemTracer基于纯Python语言开发,旨在检测内存中原生.Net框架动态链接库DLL的反射型加载行为。
该工具支持检测和搜寻内存区域中的以下异常特征:
1、每个内存区域中的内存页状态标志,尤其是MEM_COMMIT。因为MEM_COMMIT标志用于为虚拟内存的使用保留内存页;
2、目标内存区域中的页面类型,MEM_MAPPED页面类型表示内存区域内的内存页面被映射到了一个内存区域视图中;
3、目标内存区域中的内存保护,如果Assembly.Load(byte[]) 方法被用来向内存中加载一个模块的话,PAGE_READWRITE保护则可以表示目标内存区域是可读写的;
4、内存区域是否包含一个PE Header;
该工具首先会扫描正在运行的进程,并分析分配的内存区域特性,以检测反射型DLL加载痕迹。随后,该工具便会将被识别为DLL模块的可疑内存区域转储以进行进一步的分析和调查。
除此之外,该工具还提供了下列功能选项:
1、转出存在安全问题的进程信息;
2、将受损进程的信息转储到一个JSON文件中,例如进程名称、进程ID、进程路径、进程大小和基地址等信息;
3、通过名称搜索特定的已加载模块;
由于该工具基于Python开发,因此我们首先需要在本地设备上安装并配置好Python环境。接下来,广大研究人员可以直接使用下列命令将该项目源码克隆至本地:
git clone https://github.com/mayHamad/MemTracer.git
然后直接运行下列命令即可运行MemTracer:
cd MemTracer
python MemTracer.py
python.exe memScanner.py [-h] [-r] [-m MODULE]
-h, --help:查看工具帮助信息和退出;
-r, --reflectiveScan:扫描反射型DLL加载行为;
-m MODULE, --module MODULE:搜索和扫描指定的已加载DLL;
需要注意的是,如果你想要使用MemTracer扫描所有的进程,则需要使用管理员权限执行该工具脚本。
MemTracer:
GitHub - mayHamad/MemTracer: Memory Scaner