Closed oujunli closed 3 years ago
@oujunli 你的问题和 PLT hook 本身没有什么关系。在 hook 后执行的 proxy 函数中可以调用任何函数,包括你说的“非公开函数”。
通过符号查找系统库的非公开函数,可以用其他的开源库,比如:
https://github.com/hexhacking/xDL https://github.com/hack0z/byopen
好的,非常感谢回复,看bhook里面也有bh_dl的功能,这部分的功能与xDL和byopen是否提供了类似的功能?如果功能类似的化,这部分功能是否可以提供开放接口。谢谢!
@oujunli bh_dl 中的函数不会作为 bhook 的对外接口开放。bh_dl 和 xDL 原理是一样的,功能上只是 xDL 的一个子集,因为 bhook 只需要从一个特定的 ELF(linker)中的特定 section(.symtab
)里查找少量几个内部符号的地址就可以了,这部分逻辑作为“符号查找”的功能来说并不完整。
@caikelun 明白了,非常感谢你的解答,谢谢!
@oujunli 不客气。
目前看提供的API里面是需要有调用方触发,然后hook掉函数调用(比如hook malloc打印堆栈)。是否能够调用非公开的函数,比如需要实现调用libart.so里面的函数(比如art::Thread::DumpJavaStack),如何通过符号查找到函数并且调用,使用库提供的功能?