如何获取 mach-o 可执行入口点

问题描述 投票:0回答:2

我想获取 mach-o 可执行文件的入口点地址。 我读过 otool(-l 选项)命令能够向我们展示 mach-o 入口点。 我试过了,但我没有看到入口点。我已经尝试过 32 位和 64 位可执行文件。 如果我打印 main 函数的地址,我会看到最后 3 位数字在两次执行之间是相同的。但我看到其他数字在变化......

mach-o
2个回答
0
投票

尝试使用“料斗”应用程序。这对于显示 Mach-O 可执行文件的内容及其代码段非常有用。 https://www.hopperapp.com


0
投票

otool
称它为“
entryoff
”,大概是“入口偏移量”的缩写。例如,我在我的 M1(即 ARM)Mac 上编译了 curl 并运行了这个命令:

$ otool -l src/curl | grep entry
  entryoff 83892

83892 是十六进制的 0x147b4。跑步

objdump -d --macho src/curl | less

并搜索“147b4”,我们找到

_main
函数:

_main:
1000147b4:      ff 03 03 d1     sub     sp, sp, #192
1000147b8:      fd 7b 0b a9     stp     x29, x30, [sp, #176]
1000147bc:      fd c3 02 91     add     x29, sp, #176
1000147c0:      e8 03 01 aa     mov     x8, x1
[...]
© www.soinside.com 2019 - 2024. All rights reserved.