NewStringUTF
看一个例子:
private external fun stringFromJNI(): String
private external fun registerNativeStringFromJNI(): String
JNIEXPORT jstring JNICALL registerNativeStringFromJNI(
JNIEnv *env,
jobject clazz) {
std::string hello = "Hello from C++ registerNativeStringFromJNI";
return env->NewStringUTF(hello.c_str());
}
extern "C" JNIEXPORT jstring JNICALL
Java_com_aprz_myapplication_MainActivity_stringFromJNI(
JNIEnv *env,
jobject clazz) {
std::string hello = "Hello from C++";
return env->NewStringUTF(hello.c_str());
}
目标
使用 frida hook NewStringUTF 函数,拿到参数与返回值,并尝试修改参数与返回结果。
查找符号
编译后,查看 so 函数符号表:
objdump -tT libhookjnienv.so > s.txt
-----
-t, --syms Display the contents of the symbol table(s)
-T, --dynamic-syms Display the contents of the dynamic symbol table
搜索NewStringUTF发现了两个结果,是同一个符号:
000000000001e408 w F .text 0000000000000034 _ZN7_JNIEnv12NewStringUTFEPKc
000000000001e408 w DF .text 0000000000000034 Base _ZN7_JNIEnv12NewStringUTFEPKc
如果发现有多个符号,可以去https:/

最低0.47元/天 解锁文章
393

被折叠的 条评论
为什么被折叠?



