Skip to content

zhuweiyou/memoryscanner

Repository files navigation

memoryscanner

内存扫描器 - 一个专业的进程内存搜索工具

概述

memoryscanner 是一个用 Go 语言开发的内存扫描工具,专门用于在指定进程的内存中搜索特定的字符串模式。该工具主要用于安全研究、调试和教育目的。

主要功能

  • 自动搜索并扫描指定的进程内存
  • 支持字符串模式匹配(包括精确搜索和模糊搜索)
  • 实时显示搜索进度和结果统计
  • 详细的日志记录功能
  • 友好的交互式命令行界面
  • 支持中断搜索(Ctrl+C)
  • 智能内容格式化和显示

微信内存搜索工具

支持的进程

  • WeChatAppEx.exe: 微信小程序进程
  • WechatBrowser.exe: 微信内置浏览器进程

核心特性

  • 多进程支持: 同时搜索小程序和网页进程
  • 模糊搜索: 支持 ? 通配符进行模糊匹配(例如 we?ha?
  • 静默处理: 找不到进程时不会报错,优雅降级
  • 实时进度: 显示搜索进度和匹配结果统计
  • 详细日志: 自动生成带时间戳的日志文件,记录完整搜索结果
  • 智能格式化: 控制台显示优化,日志文件保留原始内容

安装和使用

编译

go build -o wechatmemorysearch.exe ./cmd/wechatmemorysearch

运行

./wechatmemorysearch.exe

交互式使用流程

  1. 输入搜索字符串

    • 精确搜索:直接输入字符串,如 WeChat
    • 模糊搜索:使用 ? 作为通配符,如 we?ha?
  2. 输入搜索长度

    • 直接回车使用默认长度 1024 字节
    • 输入数字自定义长度,如 2048
  3. 查看结果

    • 控制台显示前10个匹配结果
    • 所有结果记录在日志文件中
    • 按回车键退出程序

使用示例

示例1:精确搜索

=== 微信内存搜索工具 (支持小程序和网页) ===

请输入要搜索的字符串 (支持?模糊搜索,例如we?ha?): WeChat
请输入要搜索的字节长度 (默认1024):

正在搜索 WeChatAppEx.exe 进程...
正在搜索 WechatBrowser.exe 进程...
找到 2 个进程: WeChatAppEx.exe(1个) WechatBrowser.exe(1个) -> [1234, 5678]

开始搜索字符串: 'WeChat' (长度: 1024)
按 Ctrl+C 可以随时停止搜索...

正在扫描进程 1234...
进程 1234 中找到 150 个匹配项:
  [1] 地址: 0x12345678, 内容: 'WeChat'
  [2] 地址: 0x23456789, 内容: 'WeChatVersion'
  [3] 地址: 0x34567890, 内容: 'MyWeChatApp'
  ...
  [10] 地址: 0x56789012, 内容: 'WeChatMiniProgram'
  ... (还有 140 个结果未显示,详见日志文件)

正在扫描进程 5678...
进程 5678 中找到 25 个匹配项:
  [1] 地址: 0x45678901, 内容: 'WeChat'
  [2] 地址: 0x56789012, 内容: 'WeChatApp'
  ...

搜索完成!总共找到 175 个匹配项

按回车键退出...

示例2:模糊搜索

=== 微信内存搜索工具 (支持小程序和网页) ===

请输入要搜索的字符串 (支持?模糊搜索,例如we?ha?): we?ha?
请输入要搜索的字节长度 (默认1024): 2048

正在搜索 WeChatAppEx.exe 进程...
正在搜索 WechatBrowser.exe 进程...
找到 1 个进程: WeChatAppEx.exe(1个) WechatBrowser.exe(0个) -> [1234]

开始搜索字符串: 'we?ha?' (长度: 2048)
按 Ctrl+C 可以随时停止搜索...

正在扫描进程 1234...
进程 1234 中找到 8 个匹配项:
  [1] 地址: 0x12345678, 内容: 'wechat'
  [2] 地址: 0x23456789, 内容: 'weihao'
  [3] 地址: 0x34567890, 内容: 'wehcat'

搜索完成!总共找到 8 个匹配项

按回车键退出...

日志文件

程序会自动创建日志文件,文件名格式为:wechatmemorysearch_YYYY-MM-DD_HH-MM-SS.log

日志文件包含:

  • 搜索开始和结束时间(精确到秒)
  • 找到的进程ID列表
  • 每个进程的详细搜索结果
  • 完整的匹配内容(保留原文格式,包含换行符等特殊字符)

技术细节

搜索算法

  • 模式匹配: 使用 AOB (Array of Bytes) 模式匹配
  • 模式转换: StringToPattern() 将用户字符串转换为字节模式,支持 ? 通配符
  • 内存扫描: 扫描进程所有可读内存区域

性能优化

  • 支持上下文取消(Ctrl+C 中断)
  • 实时进度显示(每100个匹配项更新)
  • 控制台显示限制(前10个结果)
  • 智能内容格式化(处理换行符、制表符等特殊字符)

内存范围

  • 扫描范围:0x0 到 0x7FFFFFFFFFFF
  • 大小写不敏感搜索

系统要求

  • Windows 操作系统
  • Go 1.21 或更高版本
  • 管理员权限(用于访问其他进程内存)

安全说明

此工具仅用于教育和安全研究目的。在使用前请确保:

  1. 您有权限访问目标进程
  2. 遵守当地法律法规
  3. 不要用于恶意目的

故障排除

"未找到相关进程"

  • 确保目标进程正在运行
  • 尝试以管理员身份运行

"访问被拒绝"

  • 以管理员身份运行程序
  • 检查目标进程的权限设置

"扫描失败"

  • 目标进程可能已经退出
  • 内存区域可能无法访问(这是正常的)

About

内存扫描器, 类似于CE的字符串模糊搜索

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages