-
-
[求助]IDA如何追踪exterm函数/动静态结果不一致
-
-
[求助]IDA如何追踪exterm函数/动静态结果不一致
大家好,最近在学习安卓的反向知识,求教一个问题。
在做一个JNI的CrackMe的时候,静态结果如下图:代码分成了两部分,左边无法接到右边,而动态的话是可以连接上的。
静态下无法连接上的部分是一个对j_malloc的call后直接return:BL loc_XXXX (后面没有箭头了,也不能decompile,直接JUMPOUT到malloc)
但是实际上在动态下,IDA的Graph View与decompiler都可以正常工作,上图的return前还有一大堆代码要跑(第一张图的右边部分)。
我猜想是IDA无法正确的解析malloc?因为是extern?(不知道extern能说明什么,IDA应该知道malloc返回什么吧)
extern:0000401C ; void *malloc(size_t size)
extern:0000401C IMPORT __imp_malloc ; CODE XREF: malloc+8j
extern:0000401C ; DATA XREF: .got:malloc_ptro
我用的是IDA 6.8, 应该是自带JNI的header的。所以到这里就不知道如何正确的静态反向了。
谢谢解惑!
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)