11philip22/extract-shellcode
GitHub: 11philip22/extract-shellcode
一套用 Rust 编写的 Windows shellcode 提取与内存执行验证工具,通过解析 map 文件从 PE 中精确提取代码并在隔离环境中快速测试。
Stars: 1 | Forks: 2
组件 · 前置条件 · 构建 · 用法 · 注意事项与限制 · 贡献 · 支持 · 许可证
## 组件
- `extract-shellcode`:读取 PE 文件,找到 `.text` 节 (section),并使用链接器 map 文件决定保留多少字节。
- `test-shellcode`:加载二进制数据块 (blob),在 Windows 上使用 `VirtualAlloc` 分配可执行内存,并跳转执行。
## 前置条件
- Rust 工具链 (edition 2024)。
- Windows 环境(用于 `test-shellcode` 执行;其他平台会退出)。
- 一个 PE 可执行文件及其对应的 `.map` 文件;`.text` 的 map 行应类似于 `0001:00000000 00000XXXH .text CODE`。
## 安装
```
cargo install extract-shellcode
```
## 构建
```
cargo build
```
## 用法
使用 map 文件从 PE 中提取 shellcode:
```
cargo run --bin extract-shellcode -- -e path\\to\\program.exe -m path\\to\\program.map -o shellcode.bin
```
检查并执行 shellcode blob(仅限 Windows):
```
cargo run --bin test-shellcode -- -i shellcode.bin
```
运行器会在执行前打印字节数和前几个字节。执行使用 RWX 页面;请仅在受控环境中使用。
## 注意事项与限制
- 提取器会查找第一个名为 `.text` 的节,并信任 map 文件中的长度;格式错误的输入将报错。
- 测试器不应用任何缓解措施(无 DEP/CFG 绕过),因此请仅运行已知安全的 shellcode。
- 未提供 CI/测试;如需可在本地使用 `cargo clippy` 和 `cargo fmt`。
## 支持
如果这个 crate 节省了您的时间或对您的工作有帮助,欢迎支持:
[](https://ko-fi.com/11philip22)
## 许可证
本项目基于 MIT 许可证授权;详情请参阅 [license](https://opensource.org/licenses/MIT)。
标签:Conpot, DNS 反向解析, ExecutableMemory, PE文件解析, Raspberry Pi, Rust, Shellcode, VirtualAlloc, Windows安全, XML 请求, 二进制分析, 云安全运维, 内存执行, 可视化界面, 安全开发, 恶意代码分析, 技术调研, 端点可见性, 网络安全, 网络流量审计, 通知系统, 通知系统, 配置文件, 隐私保护