首页
社区
课程
招聘
[原创] IDA导入Jni.h
发表于: 2017-5-18 14:15 28168

[原创] IDA导入Jni.h

2017-5-18 14:15
28168

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 做如下三处修改(可能会出现不同情况,载入后可根据报错信息做具体修改)


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

上传的附件:
收藏
免费 6
支持
分享
最新回复 (24)
雪    币: 47
活跃值: (197)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
这个我已经看过很多次了  你敢不敢把这个Jni.h  放出来看看 
2017-5-18 17:41
0
雪    币: 6825
活跃值: (1570)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
ida现在根本就不需要手动导入了,直接在变量上按  ‘y’,改为  JNIEnv*  就行了
2017-5-18 20:24
1
雪    币: 9479
活跃值: (757)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
不需要手动导入,你是哪个版本的?
2017-5-18 21:37
0
雪    币: 4440
活跃值: (3103)
能力值: ( LV10,RANK:175 )
在线值:
发帖
回帖
粉丝
5
猫仙大人 这个我已经看过很多次了 你敢不敢把这个Jni.h 放出来看看
附件已经上传了。实际上就算你用了我的附件也不一定能编译成功。跟机器环境有关。如果有问题,你可以仔细查一下报错,针对性解决一下就行了
2017-5-19 12:50
0
雪    币: 4440
活跃值: (3103)
能力值: ( LV10,RANK:175 )
在线值:
发帖
回帖
粉丝
6




无边

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

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

2017-5-19 12:52
0
雪    币: 6
活跃值: (19)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
学习一下。
2017-5-20 09:29
0
雪    币: 47
活跃值: (197)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
楼主我太爱你了
2017-5-24 10:53
0
雪    币: 10
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9

11111111

2017-7-3 20:23
0
雪    币: 1380
活跃值: (1626)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
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:  }
2017-7-4 22:35
0
雪    币: 74
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
11
楼主您好,  我用的是6.8  导入jni.h成功,  insert  JNIEvent成功,  但是f5的代码还是  vx+xxx  (v3  +  343)  .为什么呢?  知道的朋友麻烦指点下.  系统:  window10  64
2017-10-5 18:36
0
雪    币: 12
活跃值: (1075)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
IDA  高版本内置了这些结构体,不需要导入jni.h;如果没有的话,在Views->Open  subviews  ->  Type  Libraries  中添加Android  ARM的lib即可。
2017-10-26 12:44
2
雪    币: 468
活跃值: (60)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
13
twsxtd IDA 高版本内置了这些结构体,不需要导入jni.h;如果没有的话,在Views->Open subviews -> Type Libraries 中添加Android ARM的lib即可 ...
原来如此
2017-10-26 16:28
0
雪    币: 59
活跃值: (680)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
已经不需要导入jni.h
2017-10-31 11:13
0
雪    币: 7
活跃值: (263)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
马克    原来如此
2017-11-17 11:42
0
雪    币: 1260
活跃值: (2168)
能力值: ( LV5,RANK:75 )
在线值:
发帖
回帖
粉丝
16
有木有Python相关头文件导入方法
2017-12-7 14:38
0
雪    币: 699
活跃值: (444)
能力值: ( LV9,RANK:240 )
在线值:
发帖
回帖
粉丝
17
请问一下,导入后
2018-1-16 11:50
0
雪    币: 699
活跃值: (444)
能力值: ( LV9,RANK:240 )
在线值:
发帖
回帖
粉丝
18
local  type里有jnienv,但是还是不解析,是怎么让IDA重新分析呢?
2018-1-16 11:51
0
雪    币: 45
活跃值: (1369)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
加入宏  __midl;
更改sdk路径
2018-3-15 11:44
0
雪    币: 38
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
twsxtd IDA 高版本内置了这些结构体,不需要导入jni.h;如果没有的话,在Views->Open subviews -> Type Libraries 中添加Android ARM的lib即可 ...
7.0还是没有啊
2018-4-22 11:21
0
雪    币: 377
活跃值: (432)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
21
hiccup ida现在根本就不需要手动导入了,直接在变量上按 ‘y’,改为 JNIEnv* 就行了
有效,很赞!
2018-9-19 11:32
1
雪    币: 244
活跃值: (174)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
/*
typedef enum jobjectRefType {
    JNIInvalidRefType = 0,
    JNILocalRefType = 1,
    JNIGlobalRefType = 2,
    JNIWeakGlobalRefType = 3
} jobjectRefType;
*/
这个枚举注释掉,是说ida不支持导入枚举定义吗?
最后于 2018-10-12 11:18 被airbus编辑 ,原因:
2018-10-12 11:15
0
雪    币: 248
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
23

mark

IDA 高版本内置了这些结构体,不需要导入jni.h;如果没有的话,在Views->Open subviews -> Type Libraries 中添加Android ARM的lib即可。

 

我的环境(IDA 7.0)默认只加载了一个armv12的库,遇到有些so文件,按Y修改为JNIEnv * 报错 Syntax error near: JNIEnv
按照以上方法添加Android arm就可以解决!

2020-7-2 14:24
0
雪    币: 193
活跃值: (1215)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
怎么添加android ARM库
2021-5-13 05:35
0
雪    币: 61
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
25
hiccup ida现在根本就不需要手动导入了,直接在变量上按 ‘y’,改为 JNIEnv* 就行了
虽然过了N年,感谢前辈
2024-4-18 20:12
0
游客
登录 | 注册 方可回帖
返回
//