<<抛砖引玉>>简单的 JNINativeMethod 参数 打印 脚本 IDC
本帖最后由 空道 于 2014-11-17 17:14 编辑在逆向的时候经常会碰到 在so的JNI_OnLoad 方法中使用 RegisterNatives 函数去 动态注册JNI方法,
如果注册的函数少还可以手动去看下, 一但多了之后就会变的很蛋疼, 所以写了这个简单脚本,
Jni动态注册原代码如下:
// Java和JNI函数的绑定表
static JNINativeMethod method_table[] = {
{ "getExtraData", "(Ljava/lang/String;)Ljava/lang/String;", (void*)native_getExtraData },
{ "getKeyType", "(Ljava/lang/String;)I", (void*)native_getkey},
{ "getAppKeyByIndex", "(I)Ljava/lang/String;", (void*)native_getAppKeyByIndex}
};
// 注册native方法到java中
static int registerNativeMethods(JNIEnv* env, const char* className,
JNINativeMethod* gMethods, int numMethods)
{
jclass clazz;
clazz = (*env)->FindClass(env, className);
if (clazz == NULL) {
return JNI_FALSE;
}
if ((*env)->RegisterNatives(env, clazz, gMethods, numMethods) < 0) {
return JNI_FALSE;
}
return JNI_TRUE;
}
然后我们使用 IDA 动态调试到 RegisterNatives 函数 执行idc脚本
**** Hidden Message *****
顶楼主啦..希望楼主多发精品好帖啦..... 大力精品支持 膜拜空道大牛,顶起支持 看看。虽然看不太懂。。。还是顶顶呀。。。。
看不懂额,感谢分享了 这个只能看下还玩不了 我就看看啊 支持好,我也不懂,进来看看,顶一下 看看,,也许有用呢。