Skip to content

内存

域名:memory

面向原生内存扫描、指针链分析、结构体推断与断点观测的内存分析域。

Profile

  • full

典型场景

  • 首扫/缩扫定位目标值
  • 指针链与结构体分析
  • 内存断点与扫描会话管理

常见组合

  • memory + process
  • memory + debugger
  • memory + workflow

工具清单(34)

工具说明
memory_first_scan开始新的内存扫描会话。扫描整个进程内存中的指定值并返回匹配地址。支持所有数值类型(byte/int8/int16/uint16/int32/uint32/int64/uint64/float/double/pointer)以及十六进制和字符串模式,并创建可供 memory_next_scan 继续缩小范围的会话。
memory_next_scan缩小已有扫描会话范围。重新读取上次匹配到的地址,并按比较模式进行过滤。通常接在 memory_first_scan 或 memory_unknown_scan 之后使用,等同于 Cheat Engine 的“Next Scan”。
memory_unknown_scan开始未知初始值扫描。先捕获指定类型的全部可读内存地址,再结合 memory_next_scan 的 "changed"、"unchanged"、"increased"、"decreased" 模式逐步缩小范围。等同于 Cheat Engine 的“Unknown initial value”扫描。
memory_pointer_scan查找指向目标地址的指针。扫描进程内存中的指针大小值,定位那些直接指向目标地址或落在目标地址附近(±4096 字节,适用于结构体成员访问)的指针。
memory_group_scan同时搜索多个已知偏移上的值。适合在你已知结构体相对布局时使用,例如生命值在 +0、法力值在 +4、等级在 +8。
memory_scan_session管理扫描会话。操作:list(列出全部)、delete(删除指定会话)、export(导出为 JSON)。
memory_pointer_chain多级指针链操作:扫描、验证、解析和导出指针链。
memory_structure_analyze分析某个地址处的内存内容,以推断数据结构布局。使用启发式规则将字段识别为 vtable 指针、普通指针、字符串指针、浮点数、整数、布尔值或填充区。可选解析 RTTI,以获取类名和继承链(MSVC x64)。
memory_vtable_parse解析 vtable,枚举其中的虚函数指针并解析为模块名 + 偏移。同时尝试解析 RTTI,以恢复类名和继承层级。
memory_structure_export_c将推断出的结构体导出为 C 风格的 struct 定义,并附带偏移注释和类型标注。
memory_structure_compare比较两个结构体实例,找出哪些字段会变化(如生命值、坐标等动态值),哪些字段保持不变(如 vtable、类型标志等),便于定位关键字段。
memory_breakpoint使用 x64 调试寄存器(DR0-DR3)的硬件断点操作,最多支持 4 个并发断点。
memory_patch_bytes向目标进程的指定地址写入字节序列。会保存原始字节,便于后续撤销。适用于运行时代码补丁。
memory_patch_nop将指定地址处的指令改写为 NOP(0x90)。常用于禁用检查逻辑或跳转指令。
memory_patch_undo撤销之前的补丁,并恢复原始字节内容。
memory_code_caves在已加载模块的可执行节中查找 code cave(连续的 0x00 或 0xCC 区段),并按大小优先返回。
memory_write_value向指定内存地址写入一个带类型的值,并支持通过 memory_write_history 的 undo/redo 动作进行撤销与重做。
memory_freeze将某个地址冻结为固定值。工具会按设定间隔持续回写该值,防止它被其他逻辑修改。
memory_dump以十六进制 + ASCII 列的形式导出一段内存区域,输出风格类似 xxd 的格式化十六进制转储。
memory_speedhack变速器:Hook 时间 API 以缩放进程时间流速。speed=2.0 为两倍速,0.5 为半速。
memory_write_history撤销或重做最近一次内存写入操作。
memory_heap_enumerate通过 Toolhelp32 快照枚举目标进程中的所有堆和堆块,返回堆列表、块数量、块大小以及整体统计信息。
memory_heap_stats获取详细的堆统计信息,包括大小分布桶(0-64B、64B-1KB、1-64KB、64KB-1MB、>1MB)、碎片率和各类汇总指标。
memory_heap_anomalies检测堆异常,包括堆喷射模式(大量同尺寸块)、可能的 use-after-free(已释放块中仍存在非零数据),以及可疑块尺寸(0 或大于 100MB)。
memory_pe_headers从进程内存中的模块基址解析 PE 头(DOS、NT、File、Optional),返回机器类型、入口点、镜像基址、节区数量以及数据目录信息。
memory_pe_imports_exports从进程内存中的 PE 模块解析导入表和/或导出表,返回 DLL 名称、函数名、序号、hint 以及 forwarded export 等信息。
memory_inline_hook_detect通过比较磁盘文件与内存中每个导出函数的前 16 个字节来检测 inline hook。可识别 JMP rel32、JMP abs64、PUSH+RET 等 hook 形式,并解析跳转目标。
memory_anticheat_detect扫描进程导入项中的反调试/反作弊机制,例如 IsDebuggerPresent、NtQueryInformationProcess、计时检测(QPC、GetTickCount)、线程隐藏、堆标志检查以及 DR 寄存器检测。每项发现都会附带绕过建议。
memory_guard_pages查找进程中所有带有 PAGE_GUARD 保护属性的内存区域。Guard page 常用于防篡改机制或栈溢出检测。
memory_integrity_check通过比较磁盘字节与内存字节的 SHA-256 哈希,检查代码节完整性。可用于发现补丁、Hook 以及其他对可执行节的运行时修改。
memory_region_enumerate枚举目标进程的内存区域。跨平台:Windows(VirtualQueryEx)、macOS(mach_vm_region)、Linux(/proc/pid/maps)。返回基址、大小、保护属性(r/w/x/rw/rx/rwx)、状态、类型(image/mapped/private)和模块名(如有模块背书)。
memory_aob_scan支持通配符的字节阵列扫描(AOB scan)。在可读内存中搜索如 "48 8B ?? ?? 00 00" 的字节模式。接受十六进制字节(00-FF,可选 0x 前缀)和 "??" 通配符,大小写不敏感。
memory_find_accesses查找写入或访问某内存地址的指令(Cheat Engine MWT 工作流)。在目标地址设置硬件断点,每次命中后自动重装,捕获触发故障的指令地址、上下文和时间戳,可选择反汇编该指令。返回聚合的命中记录及每条命中的指令详情。
memory_parse_dump解析 Windows Minidump(.dmp)文件并提取取证信息:已加载模块(基址/大小/名称/时间戳)、线程(ID/栈/上下文)、内存范围(64 位或 32 位)、系统信息(OS/CPU)和异常记录。可选解析地址列表对照 dump 内容。纯 TS 实现——跨平台(可在 Linux/macOS 上分析 Windows dump)。

Released under AGPL-3.0-only