看雪论坛
发新帖
3

[原创] IDA导入Jni.h

DMemory 2017-5-18 14:15 1000

IDA 分析Android so 文件时,因为缺少JNIEnv结构定义,反编译后看起来很不友好,如下图(后面注释是我自己手工对照加的 = =)。为避免以后无穷无尽的手动加注,接下来我们就来导入 JNIEnv 的结构定义让反编译代码看起来更轻松。


IDA 打开菜单 Options ->Compilter..

选择Visual C++ 我在VS2008 环境下编译通过,VS2015有问题。

Include directories 填入NDK中包含jni.h 的路径和VS2008中VC的include路径,两个路径间用”;”分隔。

Predefined macros 加入 __lint__ 宏定义。

jni.h 做如下三处修改(可能会出现不同情况,载入后可根据报错信息做具体修改)

 

返回IDA 按Ctrl+F9 载入 jni.h 文件就可以编译通过了。

然后在structures窗口里按下insert键-> add standard structure -> 选择"JNIEnv_",然后确定,之后IDA 反编译出来的就看起来舒爽多了。


 


上传的附件:
本主题帖已收到 0 次赞赏,累计¥0.00
最新回复 (9)
猫仙大人 2017-5-18 17:41
2
这个我已经看过很多次了  你敢不敢把这个Jni.h  放出来看看 
hiccup 2017-5-18 20:24
3
ida现在根本就不需要手动导入了,直接在变量上按  ‘y’,改为  JNIEnv*  就行了
无边 2017-5-18 21:37
4
不需要手动导入,你是哪个版本的?
3
DMemory 2017-5-19 12:50
5
猫仙大人 这个我已经看过很多次了 你敢不敢把这个Jni.h 放出来看看
附件已经上传了。实际上就算你用了我的附件也不一定能编译成功。跟机器环境有关。如果有问题,你可以仔细查一下报错,针对性解决一下就行了
3
DMemory 2017-5-19 12:52
6

无边 不需要手动导入,你是哪个版本的?

我是  6.8  ,理论上已经集成了这些结构体,但我有时候把  IDA  搞的抽风,无法直接加载的结构体的时候,就自己导入一下。同样的方法可以导入  elf.h  等……感觉还是相对方便的哈

影子不寂寞 2017-5-20 09:29
7
学习一下。
猫仙大人 2017-5-24 10:53
8
楼主我太爱你了
clumsybirda 2017-7-3 20:23
9
为啥这东西早在一年前就有人说过,可是没放出来,只能干看着,楼主好人啊,爱死你了!谢谢你的共享!
aihacker 2017-7-4 22:35
10
用你的jni.h报错信息如下:
Error  F:\android-ndk-r10\platforms\android-19\arch-arm\usr\include\jni.h,496:  Syntax  error  near:  jobjectRefType
Error  F:\android-ndk-r10\platforms\android-19\arch-arm\usr\include\jni.h,497:  Syntax  error  near:  }
返回



©2000-2017 看雪学院 | Based on Xiuno BBS | 知道创宇带宽支持 | 微信公众号:ikanxue
Time: 0.012, SQL: 10 / 京ICP备10040895号-17