canyie / canyie/pine

hook函数里执行某些JNI 方法会crash

Open
#106 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Java
Stars
1.5k
Forks
279
PR merge metrics
No merged PRs in 30d

Description

我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,结果跟之前一样,还是只能执行上面的第一个函数,第二个会崩溃

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.