GDB在内存中找到值

时间:2016-07-08 23:39:34

标签: search memory int find gdb

我在gdb中使用find命令时遇到问题。我想要做的是,找到一个特定的值,例如(964)在一个进程的记忆中。我已经成功了,但我的解决方案需要很长时间!

我做了什么:

p

比获取libc_malloc部分,我知道值在那些内部。

cat /proc/16617/maps

我可以使用examine命令来调查每个值。这个工作正在进行,但需要花费很多时间。我想gdb中的find命令可以更快地执行此操作。

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]

E.g地址由于多次运行而不匹配,但它正在运行:)

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

我的查找命令是这样的:

x/dw 0x78B0E19c    --> Result 964

但是我得到了这些

find 0x419a1000, 0x7e5b6000, 964

这不是真的。它可能只在5个地址内。它应该更多。它似乎也没有正确搜索。因为它只在0x419a3xxx范围内。

我在arm架构中搜索int值。但这一点无关紧要。我做错了什么?能否请您提供一些示例来查找进程地址空间中的所有int值(964)?这很快? :)

谢谢!

0 个答案:

没有答案