sdarzi/memmap

GitHub: sdarzi/memmap

一个用 C 编写的轻量级 Linux 内存取证工具,用于读取、解析进程的虚拟地址空间并支持快照对比。

Stars: 0 | Forks: 0

# memmap 一个用 C 编写的内存取证工具,用于读取和解析 `/proc/[pid]/maps` 用于检查运行中 Linux 进程的虚拟地址空间。 作为配合 K&R C 的学习项目编写。 ## 状态 暂已完成。 - [x] 步骤 1 — 读取并打印原始 `/proc/self/maps` - [x] 步骤 2 — 将每行解析为结构化字段 - [x] 步骤 3 — 对区域进行分类和标记 - [x] 步骤 4 — 按 PID 指定任意进程 - [x] 步骤 5 — 通过 `/proc/[pid]/mem` 读取内存内容 - [x] 步骤 6 — 对比两个时间点的快照 ## 背景 Linux 通过 `/proc` 文件系统公开实时内核数据。每个运行中的进程在 `/proc/[pid]/` 目录下都有其内存映射、状态和原始内存内容。本工具可读取和解析这些数据。 涉及的关键概念: - 虚拟内存布局(text、data、stack、heap、anonymous mappings) - Linux 进程权限和 DAC - W^X 内存保护(NX/DEP) - ptrace 系统调用 ## 构建和运行 ### 依赖项 - gcc - make ### 构建 ``` make ``` 如需强制完全重建: ``` make clean && make ``` ### 运行 ``` # 检查你自己的进程 ./memmap # 通过 PID 检查另一个进程 ./memmap # 检查 root 拥有的进程需要 sudo sudo ./memmap 1 ```
标签:DEP, heap分析, HTTP请求, Linux取证, NX位, /proc文件系统, ptrace, SecList, stack分析, 内存dump, 内存保护, 内存取证, 内存映射, 地址空间布局, 子域名枚举, 客户端加密, 快照对比, 数字取证, 系统安全, 自动化脚本, 虚拟内存, 进程分析, 进程检查