能力值:
( LV2,RANK:10 )
2 楼
对JNIEnv参数直接进行操作的函数体非常常见也特别典型,不解决这个疑问很难做进一步的so逆向
能力值:
( LV2,RANK:10 )
3 楼
这时候就需对着ARM看了。
能力值:
( LV2,RANK:10 )
4 楼
ida可以导入C的头文件
能力值:
( LV2,RANK:10 )
5 楼
这个有什么好奇怪的,只是写代码的时候对GetStringUTFChars进行了一个简单的封装。只是ida不确定GetStringUTFChars的参数个数,导致这个地方有问题,手动调整下参数的个数就好了。
能力值:
( LV2,RANK:10 )
6 楼
对JNIEnv直接引用的地方特别多,写代码时对函数进行了封装我理解了,但是IDA不确定参数个数时就会直接对JNIEnv指针进行引用吗?按照你的指点我对函数类型做了定义,增加了两个参数后得IDA到如下结果
char __fastcall sub_6598(JNIEnv *env, char *a1)
{
return ((int (*)(void))(*env)->GetStringUTFChars)();
}
虽然函数名正确解析为GetStringUTFChars,但是里面的参数确实空的,我百度了半天没有得到任何结果,请教下高手这是什么原因呢?是不是我方法的顺序不大对。
PS:看了下其所对应的汇编代码,非常简短,不过从这里能看出来其实应该有两个参数,一个是[R0],另外一个应该是默认的0(这里的0应该是GetStringUTFChars函数中最后一个布尔型变量的意思),从这里可以佐证子函数这样定义应该是没错的:sub_6598(JNIEnv *env, char *a1),上述参数为空的问题还是不知道如何解决
PUSH {R3,LR}
LDR R2, [R0]
MOVS R3, #676
LDR R3, [R2,R3]
MOVS R2, #0
BLX R3
POP {R3,PC}
End of function sub_6598
能力值:
( LV2,RANK:10 )
7 楼
头文件已经导入了,但是函数的参数究竟是什么的问题还是没解决啊
能力值:
( LV15,RANK:3306 )
8 楼
参数问题可以直接在函数上点右键→Force call type
能力值:
( LV2,RANK:10 )
9 楼
您说的应该是set item type吧?就是手工设置函数的参数个数及类型?
能力值:
( LV15,RANK:3306 )
10 楼
上传的附件:
能力值:
( LV2,RANK:10 )
11 楼
[QUOTE=风间仁;1359389]
[/QUOTE]
按照您的指点,果然已经搞定了,多谢回帖的楼上各位,谢谢
风间仁 ,谢谢
jinsheng
能力值:
( LV9,RANK:160 )
12 楼
谢谢大神们。。。。
能力值:
( LV2,RANK:10 )
13 楼
非常感谢.
能力值:
( LV2,RANK:10 )
14 楼
高人想问下jni.h 这个东西在哪能找到下载啊我 没找到 能不能直接给我谢谢
能力值:
( LV2,RANK:10 )
15 楼
android ndk里面有