首页
社区
课程
招聘
[讨论]咨询一个IDA结构体指针识别的问题
发表于: 2014-6-5 15:43 8731

[讨论]咨询一个IDA结构体指针识别的问题

2014-6-5 15:43
8731
在静态分析Android JNI程序过程中,总能遇到env->*类的函数,IDA对这块的识别不太好。

为了方便说明,用事例一个简单函数,源代码如下:
JNIEXPORT jstring Java_com_oxygenant_assembly_IDATest_Test( JNIEnv* env,
                                                  jobject thiz )
{
    return env->NewStringUTF("IDATest !");
}

反编译出来是:
.text:00000DC8                 PUSH    {R3,LR}
.text:00000DCA                 LDR     R2, [R0]
.text:00000DCC                 LDR     R1, =(aIdatest - 0xDD6)
.text:00000DCE                 MOVS    R3, 0x29C
.text:00000DD2                 ADD     R1, PC          ; "IDATest !"
.text:00000DD4                 LDR     R3, [R2,R3]
.text:00000DD6                 BLX     R3
.text:00000DD8                 POP     {R3,PC}

查看env的头定义:
struct _JNIEnv {
    ……
    jstring NewStringUTF(const char* bytes)
    { return functions->NewStringUTF(this, bytes); }
}

有什么办法能够让IDA识别NewStringUTF这个函数指针呢,根据结构体算偏移的方法效率有点低。

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 39
活跃值: (200)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
楼主有好的解决方法了吗,求分享
2014-11-15 15:59
0
雪    币: 13
活跃值: (59)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
参考jni-api19.h ,写个ida脚本就可以自动分析了
2014-11-17 10:17
0
游客
登录 | 注册 方可回帖
返回
//