我正在尝试在Android中挂钩本机库。基本上我试图在libjavacore.so
文件中挂接套接字调用。
例如:
在dlsym()
中获取套接字地址(libc.so
)。
然后在libjavacore.so
,.got
,.plt
,.dlsym
等部分中搜索.dynamic
文件中的套接字地址。
将实际套接字地址替换为内存中实际套接字地址所在位置的自定义套接字地址。
对于32位Android设备,上述方法适用于我。但对于64位Android设备,我不适合我。尝试使用uint_ptr
等适当的数据类型,以便自动调整。但仍然失败。当我进一步调试时发现libjavacore.so
文件是在64位系统上运行的32位ELF。因此,尝试使用uint32_t
和uint64_t
类型并尝试使用它们。但仍然失败。