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, 内存保护, 内存取证, 内存映射, 地址空间布局, 子域名枚举, 客户端加密, 快照对比, 数字取证, 系统安全, 自动化脚本, 虚拟内存, 进程分析, 进程检查