A simple memory scanner
Attach process
attach -p pid
Scan number(I32)
scan -I =0x123
Filter scan session
filter <0x123
Scan pointer chain
ptr --mask 0xFFFFFFFFFFFFFC00 --depth-max 4 --offset-max 512 --result-max 512 0x7389f6a000 0x738d7d9000 0x73672e99f0
0x7389f6a000 0x738d7d9000 is the source memory region. For example the .bss segment of so/executable
0x73672e99f0 is the target pointer.
"0x123+100"
"0x123-100"
"0x123*100"
"0x123/100"
"0x123%100"
"0x10+0x3*0o5"
"(0x10+0x3)*0o5"
"1+3&1"
"2&4|8"
"~1+2"
"1+3<<1"
"2>1|2"
"1?2:3"
"0?2:3"
"((10-2)+0x3)*((4+5)+(5-2))"
Example
scan -I "=(0x123+456)*2"
=
!=
>
>=
<
<=
Example
filter "<0x123*2+1"
Ubuntu 22.04
CMake 3.22.1
Python 3.10.6
Install DSL parser generator
git clone git@github.com:vrolife/playlang.git
cd playlang
python3 setup.py install
Compile
cmake --preset dev-host-libc++ -B build
cmake --build build
Run
./build/src/mypower
The main program mypower
release under GPLv3 license.
The TUI library tui
release under MIT license.