Найти строку памяти, используя символы отладки
Здравствуйте, я пытаюсь найти адрес строки в lldb на mac os.
В GDB я бы использовал команду find
с адресами для поиска между ними.
Но я не могу найти такую команду для lldb, я знаю, что строка находится в разделе cstring, который в моем случае является 0x00000000002e4f08-0x000000000032e0a8
.
Но мне нужно точно знать, где именно.
2 ответа:
Если у вас есть доступ к инструментам предварительной версии Xcode 6, lldb включает новую команду
memory find
, которая делает это. Энрико добавил быструю реализацию этой команды несколько месяцев назад.
Простой пример, в котором используются три команды lldb
section
,memory find
,memory read
чтобы найти строку внутри разделенного, отпустите приложение.(lldb) section [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