Glqmonxt

Results 3 issues of Glqmonxt

log入下图所示: 能看到调用了JNIEnv->GetStringUtfChars("123"),然后返回值(char*的地址)存在x0中,但是这个地址的值是0,这是为什么? 这种方法是我用callJniMethodObject调用的 当我用module.callFunction方式调用,直接在调用JNIEnv->GetStringUtfChars的时候就抛出异常:java.base/java.util.Objects.requireNonNull(Objects.java:233) 是传入string参数之前需要做什么处理吗?

我hook了一些java方法,比如URL.getHost,然后在里面执行获取调用栈的方法: jobject crrt_thread = (jobject)t_env->CallStaticObjectMethod(gThreadClass, gCurrentThreadID); jobjectArray stacktraceElemnts = (jobjectArray)t_env->CallNonvirtualObjectMethod(crrt_thread, gThreadClass, gGetStackTraceID); 这两个函数,只有第一个能执行成功,第二个会使系统崩溃 而我在本身就是JNI方法的地方hook,也就是那些被声明为native的方法,上面两个都能成功,请问这是为什么呢? 另外我看JNI方法的access_flags的值是0x10200101,而java方法的access_flags的值是0x10380011,我把URL.getHost的access_flags值也改成0x10200101,结果跟之前一样,还是只能执行上面的第一个函数,第二个会崩溃

entry_point_from_quick_compiled_code_的值有两种情况,一种是java方法已经被提前编译为OAT了,那么entry_point_from_quick_compiled_code_是指向.oat的一个地址; 而如果java方法没有被编译,则entry_point_from_quick_compiled_code_都指向同一个解释器地址,请问在这种情况下,native,也就是c环境下,如何替换entry_point_from_quick_compiled_code_呢?是要手动调用解释器吗?