跨平台的进程内存关键字扫描工具,主要用于应急响应与安全分析。通过在各进程内存中搜索关键字 (如 C2 地址、可疑命令、Webshell 特征、明文凭据等),快速定位发起可疑连接、执行可疑命令的进程。
提供 图形界面(GUI) 与 无界面命令行(CLI) 两种形态,覆盖 Windows 与 Linux (amd64 / arm64,含主流国产化系统)。
⚠ 免责声明:本工具仅供在获得授权的应急响应、安全测试与研究场景下使用。 读取其他进程内存需要管理员 / root 权限。请勿用于任何未授权的系统,使用者需自行承担合规责任。
- 文本 / HEX 搜索:按文本或 HEX 字节序列(如
DE AD BE EF)搜索,支持通配符(文本?,HEX??)。 - 自动多编码匹配:文本含非 ASCII(如中文)时,自动同时按 UTF-8 / UTF-16 LE / GBK 搜索,命中标明实际编码。
- 可控扫描范围:默认聚焦可写 / 已驻留页(快);可切换全量扫描(含只读段、映射文件)。
- 字符串 dump:按编码(ASCII / UTF-16 LE)与长度过滤,导出进程内可打印字符串。
- GUI:匹配上下文预览、双击跳转内存查看器、进程详情。
- CLI:纯 Go 静态二进制、零外部依赖、可交叉编译,适合 headless 服务器;支持
text/json/csv输出。 - 跨平台:Windows 10 / Server 2016+,Linux amd64 & arm64(含国产化系统);Windows 7 提供 CLI 版。
- 中文字体已内嵌,免装字体。
在上方输入框中输入要查询的内容(例如 C2 地址),点击「开始扫描」即可,默认配置已是最佳实践。
预编译产物见 Releases:
| 平台 | 文件 | 说明 |
|---|---|---|
| Linux amd64 | memscan-cli-amd64 |
x86-64 命令行版本 |
memscan-gui-amd64 |
x86-64 图形界面版本 | |
| Linux arm64 | memscan-cli-arm64 |
ARM64 命令行版本(国产化系统可用) |
memscan-gui-arm64 |
ARM64 图形界面版本(国产化系统可用) | |
| Windows amd64 | memscan.exe |
通用图形界面版本,支持 Win10 / Server 2016+ |
memscan-cli.exe |
通用命令行版本,支持 Win10+ | |
memscan-cli-win7.exe |
Win7 专用(Win7 不支持 GUI,仅命令行) | |
memscan-GUI-winserver.zip |
Windows Server / 虚拟机等缺少 OpenGL 渲染库、GUI 报错时使用 |
想自行编译?见 HowToBuild.md。
读取其他进程的内存需要足够权限:
- Linux:以 root 运行(
sudo ./memscan),或给二进制授予 ptrace 能力免 sudo:sudo setcap cap_sys_ptrace,cap_dac_read_search+ep ./memscan-cli
- Windows:以管理员身份运行(GUI 双击会弹 UAC;CLI 在管理员终端里跑)。
在上方输入框中输入需要查询的内容,例如 C2 地址,点击「开始扫描」即可,默认配置已是最佳实践。
如果第一遍扫描没有需要的结果,勾选「含只读页」并取消「仅驻留页」,则为全量内存扫描。
搜索到结果后可以展示具体的匹配值及其前后一定范围内的内容,用以辅助判断是否是所需要定位的进程。
也可以双击某条结果跳转至 内存查看器 页面,展示该条匹配项所属内存页的全部内容。
| 选项 | 默认 | 含义 |
|---|---|---|
hex |
否 | 用 HEX 字节序列(如 DE AD BE EF)当作搜索内容 |
| 通配符 | 否 | 通配符:文本用 ?,HEX 用 ?? |
| 含只读页 | 否 | 默认不扫描属性仅为只读的内存页 |
| 仅驻留页 | 是 | 仅扫描已驻留物理内存(活跃)的页,取消勾选将增加磁盘 IO 占用 |
| 单进程最大匹配 | 200 |
单进程内最多匹配到符合输入的字符串的个数 |
| 上下文字节 | 16 |
展示内存中匹配到的字符串前后的字节数(1–32) |
完整命令行参考(含输出格式、退出码、编码细节)见 docs/CLI.md。下面是速查与三种模式。
memscan-cli -list # 列进程
memscan-cli <文本> # 全局搜文本
memscan-cli -pid N <文本> # 指定进程搜文本
memscan-cli -hex "AA BB CC" # 搜 HEX
memscan-cli -strings -pid N # dump 字符串
memscan-cli -strings -pid N -len =8 # dump 恰好 8 位字符串
memscan-cli ... -format json -out result.json # 导出 JSON| 模式 | 命令形式 | 说明 |
|---|---|---|
| 搜索(默认) | memscan-cli [选项] <搜索内容> |
在进程内存中查找文本 / HEX |
| 字符串 dump | memscan-cli -strings -pid <PID> [选项] |
导出某进程中的可打印字符串 |
| 列出进程 | memscan-cli -list |
打印 PID 名称,便于挑选目标 |
注意:选项必须写在
<搜索内容>之前(Go flag 解析遇到第一个非选项参数即停止)。
常用示例:
memscan-cli password # 所有进程搜索文本 password(不区分大小写)
memscan-cli -pid 1234 -case Secret # 只在 PID 1234 中区分大小写搜索
memscan-cli -hex "DE AD BE EF" # 按 HEX 字节序列搜索
memscan-cli -wildcard "us?r" # 文本通配符
memscan-cli -hex -wildcard "DE ?? BE EF" # HEX 通配符
memscan-cli -format json -out hits.json token # 结果以 JSON 写入文件
memscan-cli -strings -pid 1234 -len ">=16" -encoding ascii -out s.txtLinux 版本仅确认可运行、功能可用,具体效果差异未详细测试。已验证的系统:
x86-64
- Huawei EulerOS 2.0
- CentOS 7.9
- Ubuntu 18
- UOS 1050e
- 麒麟桌面 V10 (SP1) 2503
- Windows 7 及以上(Win7 仅命令行版本)
ARM64
- Huawei Cloud EulerOS 2.0
- CentOS 7.4
- Ubuntu 18
- Kylin Linux Advanced Server
- UOS 20 Euler (1000)
各平台(Windows / Linux amd64 / arm64 / 老发行版兼容 / Win7 CLI)的编译步骤见 HowToBuild.md。
# Linux GUI
./build.sh
# 无界面 CLI(纯 Go 静态,可交叉编译)
./build-cli.sh
# Windows(GUI + CLI)
build.batMIT © RyneZ
