Skip to content

cnevil/MemScan

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MemScan

License: MIT Go Platform

跨平台的进程内存关键字扫描工具,主要用于应急响应与安全分析。通过在各进程内存中搜索关键字 (如 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 地址),点击「开始扫描」即可,默认配置已是最佳实践。

GUI 扫描结果

下载

预编译产物见 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 在管理员终端里跑)。

GUI 使用说明

在上方输入框中输入需要查询的内容,例如 C2 地址,点击「开始扫描」即可,默认配置已是最佳实践。

如果第一遍扫描没有需要的结果,勾选「含只读页」并取消「仅驻留页」,则为全量内存扫描。

搜索到结果后可以展示具体的匹配值及其前后一定范围内的内容,用以辅助判断是否是所需要定位的进程。 也可以双击某条结果跳转至 内存查看器 页面,展示该条匹配项所属内存页的全部内容。

功能区选项说明

选项 默认 含义
hex 用 HEX 字节序列(如 DE AD BE EF)当作搜索内容
通配符 通配符:文本用 ?,HEX 用 ??
含只读页 默认不扫描属性为只读的内存页
仅驻留页 仅扫描已驻留物理内存(活跃)的页,取消勾选将增加磁盘 IO 占用
单进程最大匹配 200 单进程内最多匹配到符合输入的字符串的个数
上下文字节 16 展示内存中匹配到的字符串前后的字节数(1–32)

CLI 使用说明

完整命令行参考(含输出格式、退出码、编码细节)见 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.txt

兼容性测试

Linux 版本仅确认可运行、功能可用,具体效果差异未详细测试。已验证的系统:

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.bat

License

MIT © RyneZ

About

跨平台进程内存关键字扫描工具,用于应急响应 / DFIR:在进程内存中搜索文本或 HEX 字节(自动多编码 UTF-8 / UTF-16LE / GBK),快速定位发起可疑连接、执行可疑命令的进程。提供 GUI 与纯静态 CLI,支持 Windows 与 Linux(amd64 / arm64,含国产化系统)。

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors