Hackerl/pangolin

使用场景咨询

Closed this issue · 10 comments

看了下实现原理,想咨询下pangolin这个逻辑为什么没有应用到java应用上?
有没有这个可能性使用pangolin对jvm native空间进行hook

java 虚拟机有自带的注入方案,https://github.com/jattach/jattach,jattach 加载 jar 包,jar 加载 so 进行 inline hook。

jattach还是基于jvmti,对libjava.so/libjvm.so这些文件的内部逻辑没法做hook,容易被针对利用,所以有了这个issue最初的想法

还有一个疑问,使用这种进程注入的方法对应用性能影响会不会比常规注入手段大很多

jattach还是基于jvmti,对libjava.so/libjvm.so这些文件的内部逻辑没法做hook,容易被针对利用,所以有了这个issue最初的想法

jattach 加载 jar 包,jar 包加载 native 动态库,hook 操作放在动态库里,一样可以对 libjava.so/libjvm.so 进行操作。

还有一个疑问,使用这种进程注入的方法对应用性能影响会不会比常规注入手段大很多

都是使用 ptrace,性能差不多

感谢回复!mandibule的 apihoook还是在对symbol做hook,我能不能理解最终效果是和GOT挟持一样的?

mandibule 是使用 ptrace 将 elf 注入到进程中,不进行 api hook。

mandibule 是使用 ptrace 将 elf 注入到进程中,不进行 api hook。

抱歉 我想说的apihook是你基于pangolin实现的golang rasp注入流程,有这个问题是希望能摆脱对ptrace的强依赖,如果能用got表挟持实现完全一样的注入效果的话,因为ptrace在一些版本linux上已经被默认不允许在进程内调用。

mandibule 是使用 ptrace 将 elf 注入到进程中,不进行 api hook。

抱歉 我想说的apihook是你基于pangolin实现的golang rasp注入流程,有这个问题是希望能摆脱对ptrace的强依赖,如果能用got表挟持实现完全一样的注入效果的话,因为ptrace在一些版本linux上已经被默认不允许在进程内调用。

apihook 使用的 inline hook,got 表劫持只适用于动态库导出函数,golang 编译完的函数都不适用。

感谢解疑!