【发布时间】:2017-01-20 19:36:24
【问题描述】:
当我运行这个命令时
otool -t binary
otool 将正确转储binary 的文本部分。例如
0000000100002100 55 48 89 e5 41 56 53 48 8b 35 32 24 54 00 4c 8b
:
但是当我运行这个命令时:
otool -tvV binary
otool 跳过大部分文本部分:
00000001003a32ce pushq %rbp
:
前 3805646 个字节只是被跳过而不是反汇编。如果我打开lldb中的二进制文件,我可以在跳过的地址处反汇编代码就好了。
有没有人有过类似的经历? otool 是否可能有内部大小限制并截断超出该限制的部分?是否有人发现了一种变通方法或知道免费提供的类似工具?
我尝试用lldb 反汇编整个二进制文件:
lldb binary
(lldb) dis -s 0x100002100 -e ...
将-e 设置为文本部分中最后一个字节的地址,但这也不起作用。实际上lldb在分解大约5000字节的文本部分后停止输出。
【问题讨论】:
标签: macos lldb disassembly mach-o otool