你好,我正在尝试在Mac OS上使用lldb查找字符串的地址。
在GDB中,我会使用find
命令,并指定要搜索的地址范围。
但是我无法找到lldb中类似的命令。我知道该字符串位于cstring部分,而在我的情况下它的地址范围是0x00000000002e4f08-0x000000000032e0a8
。
但我需要确切地知道它在哪个位置。
image dump sections
、memory find
和memory read
的简单示例,用于在剥离、发布的应用程序中查找字符串。(lldb) image dump sections MyAppBinary
[0x0000010462c000-0x00000107744000] 0x0003118000 MyApp`__TEXT
[0x00000107744000-0x00000107d48000] 0x0000604000 MyApp`__DATA
/* removed sections for brevity */
(lldb) mem find -s "youtube" -- 0x00000107744000 0x00000107d48000
data found at location: 0x10793362c
0x10793362c: 79 6f 75 74 75 62 65 2e 63 6f 6d 2f 65 6d 62 65 youtube.com/embe
(lldb) memory read -c100 0x10793362c
0x10793362c: 79 6f 75 74 75 62 65 2e 63 6f 6d 2f 65 6d 62 65 youtube.com/embe
0x10793363c: 64 2f 58 46 67 45 59 75 35 71 66 36 38 3f 61 75 d/XFgccu5qf68?a
lldb
,您可以访问 https://github.com/DerekSelander/LLDB。例如,我更喜欢 Derek 的脚本 sections
而不是 image dump sections MyAppBinary
。(lldb) section
是什么?我找不到它作为内置命令?这是您添加的别名吗?如果是,那它是什么别名?谢谢。 - AymenTMmemory region <some address>
命令来查找包含 <some address>
的内存区域,这对于在运行时堆栈中查找值非常有用。 - Alexandermemory find
命令来实现此操作。Enrico几个月前添加了这个命令的快速实现。
image lookup ...
)。 - trojanfoe