use*_*230 5 memory int search gdb find
我在gdb中使用find命令时遇到问题.我想要做的是,在进程的内存中找到特定值,例如(964).我已经成功了,但我的解决方案需要很长时间!
我做了什么:
cat /proc/16617/maps
Run Code Online (Sandbox Code Playgroud)
比得到libc_malloc部分,我知道值是在那些.
7e43c000-7e451000 rw-p 00000000 00:00 0 [anon:libc_malloc]
7e452000-7e45b000 rw-p 00000000 00:00 0 [anon:libc_malloc]
7e470000-7e47c000 rw-p 00000000 00:00 0 [anon:libc_malloc]
7e47d000-7e490000 rw-p 00000000 00:00 0 [anon:libc_malloc]
7e4cc000-7e4dc000 rw-p 00000000 00:00 0 [anon:libc_malloc]
Run Code Online (Sandbox Code Playgroud)
我可以使用examine命令来调查每个值.这个工作正在进行,但需要花费很多时间.我想gdb中的find命令可以更快地执行此操作.
0x78b0e070: 0 829055599 57 59
0x78b0e080: 2 2024857820 2024857860 2024857900
0x78b0e090: 1970810756 4587520 71 0
0x78b0e0a0: 0 2024857756 2024857756 0
0x78b0e0b0: 0 27 1970675312 1
0x78b0e0c0: 1 2024857728 0 43
0x78b0e0d0: 23 23 0 1936029041
Run Code Online (Sandbox Code Playgroud)
由于几次运行,地址不匹配,但它正在工作:)
x/dw 0x78B0E19c --> Result 964
Run Code Online (Sandbox Code Playgroud)
我的find命令是这样的:
find 0x419a1000, 0x7e5b6000, 964
Run Code Online (Sandbox Code Playgroud)
但是我得到了这些结果
0x419a3058
0x419a30c0
0x419a348c
0x419a3e7d
0x419a3fec
5 patterns found.
Run Code Online (Sandbox Code Playgroud)
这不是真的.它可能只在5个地址内.它应该更多.它似乎也没有正确搜索.因为它只在0x419a3xxx范围内.
我在arm架构中搜索int值.但这一点无关紧要.我做错了什么?能否请您提供一些示例来查找进程地址空间中的所有int值(964)?这很快?:)
谢谢!