pine
pine copied to clipboard
请问如何在native解析hook的参数呢
一个java函数被OAT编译了,然后我在c层的entry_point_from_quick_compiled_code_,拿到了入口参数是x2-x5,返回参数是x0; 比如这些参数在原java函数调用中,他们都是BYTE[] array类型,请问在C层该如何解析这些数据呢? 我尝试了用env->GetByteArrayElements,但是闪退了,貌似OAT的环境跟JNI还是有些区别,请问该如何处理呢,谢谢
ArtMethod 的 entry_point_from_quick_compiled_code_ 里拿到的对象,或者说引用类型,实际拿到的是对象的内存地址,和 JNI 环境里的 jobject 不一样。可以参考 pine 里的处理,用 AddLocalReference 把它转换成 jobject。 https://github.com/canyie/pine/blob/fff37b80774a091d0e1e5c6d5c3ecabcb4082815/core/src/main/cpp/art/thread.h#L106
但凡传个adb bugreport都算有诚意了😂