请教一下大佬,已有java方法怎么转为Native?
想实现一个java方法直接转换为native方法。 查阅了不少资料,都是介绍改entrypoint 1-access_flags_改为native 改为0x100 2-entry_point_from_jni_ 改为native函数地址 3-entry_point_from_quick_compiled_code_ 第三个怎么实现呢?
而大佬你的http://rk700.github.io/2017/03/30/YAHFA-introduction 这篇文章也提到了,”callee的eax替换成为hook方法的ArtMethod“ ,但是你这里是改为ArtMethod,而我想要实现改为一个native方法,而不是改为HookMethod
怎么把上面的java方法改为下面的native方法,我总感觉在你的Hook中转的那一步做一下处理,但是你的entry_point_from_quick_compiled_code_是直接改为ArtMethod,那我要是转成Native方法的话是没有ArtMethod的,这一步改怎么操作,希望大佬指点一下
你的native方法是JNI么?如果是JNI的话应该有一个native的java方法对应。可以时下hook把目标替换成那个native java方法
不是jni方法,是直接的一个C函数
就是知道一个java方法,在C层直接把这个java方法hook了,替换成为一个C函数
javaMethod->C函数,
为art method加上kAccNative的access flag,将entry_point_from_quick_compiled_code_设置为jni入口,将data_设置为想要跳转到的C入口,对于jni入口的地址,可以通过查找libart的符号信息art_quick_generic_jni_trampoline获取,或者从其他已知的jni函数获取,所有jni函数的entry_point_from_quick_compiled_code_都是相同的