-
-
[讨论]咨询一个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直播授课