我正在寻找一种快速检查ELF二进制文件是共享对象还是位置无关可执行文件的方法.我认为可以通过检查包含的符号/函数来做到这一点.我正在寻找一种不必阅读完整文件的更有效方法.我必须在不同的平台上执行检查,至少是Android,Linux(32位和64位).
我不明白为与下面列出的反汇编代码相关的分支指令(地址0x00011004和0x00011010处的b和bl)计算的偏移量.我想知道在十六进制代码列表中,偏移量似乎是0x000001和0x000002.条件b(EA)和bl(EB)的操作码是我的预期.
感谢提前的每一个提示
MyAssemblerFunc:
00011000 stmdb sp!, {r0 - r3, lr}
00011004 b 00011010
00011008 mov r0, r0
0001100C mov r0, r0
00011010 bl |PrintHelloWorld ( 11020h )|
00011014 ldmia sp!, {r0 - r3, lr}
Run Code Online (Sandbox Code Playgroud)
相关的Hex代码
0x00011000 0f 40 2d e9 .@-é
0x00011004 01 00 00 ea ...ê
0x00011008 00 00 a0 e1 .. á
0x0001100C 00 00 a0 e1 .. á
0x00011010 02 00 00 eb ...ë
0x00011014 0f 40 bd e8 .@.è
0x00011018 00 00 a0 e1 .. á …Run Code Online (Sandbox Code Playgroud)