#maps #mem #command-line-tool #proc #linux

nightly app mempeek

这是一个类似于调试器和Cheat Engine的命令行工具,用于在内存中搜索值。

6个版本

0.1.5 2022年5月28日
0.1.4 2022年5月28日

Unix APIs中排名第489

BSD-2-Clause

36KB
667

摘要

这是一个小型命令行工具,旨在浏览运行中的Linux进程的内存。它还提供了类似于Cheat Engine的筛选机制,用于扫描特定值。

它使用 rustyline 来维护命令行参数的历史记录,这些记录保存在 .peekieboi 文件中。允许“上箭头”在工具的不同运行之间工作!

安装

只需运行 cargo install mempeek 即可安装此工具!然后通过运行 mempeek <要检查进程的PID> 来调用它。

命令

表达式支持

我添加了对各种进制表达式的极基本支持,包括加、减、乘、除。尚不支持括号。

这允许你在任何需要常量值的命令参数中使用类似 0x13370000+0o100*4 的表达式。 默认的数字进制为16,即十六进制,除非你使用 0b0o0d 前缀

类型

类型可以是以下之一

  • b - u8
  • w - u16
  • d - u32
  • q - u64
  • B - i8
  • W - i16
  • D - i32
  • Q - i64
  • f - f32
  • F - f64

约束

约束可以是以下任何一种

  • =[val] - 等于 [val]
  • ![val] - 不等于 [val]
  • >[val] - 大于 [val]
  • >=[val] - 大于或等于 [val]
  • <[val] - 小于 [val]
  • <=[val] - 小于或等于 [val]

当前只支持少数几个命令

q | exit | quit

退出程序

h<查询索引|l>

从之前的内存扫描中获取结果。获取查询的查询索引。可选地,您可以使用 l 替代查询索引以获取最新的查询结果

s[bwdqBWDQfF] <addr> <length> [constraints]

addr 开始,使用 constraintslength 字节内扫描给定类型的内存值

u[bwdqBWDQfFo] <query#> [constraints]

使用之前查询的地址列表,将指向的值解释为指定的类型 o 表示更新应使用原始查询的类型。

d[bwdqBWDQfF] <addr> [<number of bytes>]

以给定类型将内存解释为给定字节数

ss<addr> <length> <string>

在由 addrlength(以字节为单位)指定的内存区域中搜索 string

m

转储内存区域及其权限。

示例

Example of mempeek

转储输出中的绿色值表示值在转换为 u64 时是有效的指针

依赖项

~5–17MB
~181K SLoC