我想运行一个x86共享库,我从一个非android的linux机器上的apk抓取。仿生和libc的存根实现
它与android libc链接,所以我从android ndk中抓取了libc.so
。 调试段错误一段时间后,我计算过,libc.so
被“欺骗”,只包含了许多库函数NOP实现:
$ objdump -d libc.so | grep memalign -A 8
0000bf82 <memalign>:
bf82: 55 push %ebp
bf83: 89 e5 mov %esp,%ebp
bf85: 5d pop %ebp
bf86: c3 ret
现在NDK还包含一个libc.a
包含这些功能的实际实施,但如何如何让我的进程加载这些并覆盖libc.so的nop函数? 也会对更多的上下文感兴趣,了解android为什么要这样做,以及重写如何在那里工作。