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 反编译出来的就看起来舒爽多了。

ida导入jni头文件_IDA导入Jni.h相关推荐

  1. ida导入jni头文件_IDA动态调试无法导入JNI文件的解决办法

    前言:学习过程中遇到了,特此记录一下. 样本app链接在这里: https://pan.baidu.com/s/1pVLBBuBKRzDzHlBClrBA2A 提取码: 9tz8 它是 2015年阿里 ...

  2. 【Android NDK 开发】Visual Studio 2019 使用 CMake 开发 JNI 动态库 ( 动态库编译配置 | JNI 头文件导入 | JNI 方法命名规范 )

    文章目录 I . JNI 与 NDK 区别 II . Visual Studio 编译动态库 III. 配置 导入 jni.h 头文件 IV . IntelliJ IDEA Community Edi ...

  3. 【OpenGL】八、初始化 OpenGL 渲染环境 ( 导入 OpenGL 头文件 | 链接 OpenGL 库 | 将窗口设置为 OpenGL 窗口 | 设置像素格式描述符 | 渲染绘制 ) ★

    文章目录 一.导入 OpenGL 的两个头文件 二.链接 OpenGL 库 三.将 Windows 桌面窗口改成 OpenGL 窗口 四.获取窗口设备 五.设置像素格式描述符 六.设置像素格式 七.创 ...

  4. AndroidStudio快速生成JNI头文件

    依次打开Settings-->Tools-->External Tools-->点击加号创建一个快速生成jni头文件的工具 Program: javah Parameters: -v ...

  5. ios中头文件交叉导入问题

    ios中头文件交叉导入问题 比如类man中#import "woman.h" 类woman中#import "man.h" 解决方法: 把类woman中#imp ...

  6. android studio生成Jni头文件 java10,java11删除了javah,改用javac直接用源码生成jni头文件。 java8是用javah

    android studio生成Jni头文件 鼠标放本地方法上去,点提示来创建. java10,java11及以上   生成jni头文件 java10,java11删除了javah.改用javac直接 ...

  7. Javah生成JNI头文件,老忘记,写下来!

    Javah生成JNI头文件,老忘记,写下来! 假设工程目录下有bin文件夹,bin存放编译好的class文件; 在bin目录下, C:/XX/bin/: javah -classpath . -jni ...

  8. 超详细!关于万能头文件<bits/stdc++.h>的细节

    万能头文件引言 相信大家在C/C++中一定也遇到过这些情况: 使用系统库函数(如C++<cmath>库,C<math.h>库的开方函数double sqrt(double))和 ...

  9. c语言是以文件为单位编译,c语言从头开始(三:编译器工作原理) (我们还可以自己编写头文件后缀是xx.h并把它当前代码文件所在目录我们要用就可以直接通过下面代码使用)...

    c语言从头开始(三:编译器工作原理) [[枫歌枫歌]c语言从头开始(三:编译器工作原理)]https://toutiao.com/group/6568056688174170628/?iid=1590 ...

最新文章

  1. Win2008学习(二),群集的仲裁配置
  2. java 三级考试_java web 学习 --第三天(Java三级考试)
  3. 【推导】Codeforces Round #364 (Div. 2) D. As Fast As Possible
  4. Tomcat发布网页的方法记录
  5. SQL SERVER提供了大量的WINDOWS和SQLSERVER专用的排序规则
  6. iOS逆向之深入解析MachO文件
  7. SpringMVC核心分发器DispatcherServlet分析[附带源码分析]
  8. 程序员过关斩将--为微服务撸一个简约而不简单的配置中心
  9. 3、数据库中的字符集和校对集
  10. c盘java文件误删_C盘爆满怎么办,教你有选择性删除文件,恢复空间
  11. DENIED Redis is running in protected mode because protected mode is enabled
  12. EOS cleos --skip-transaction-signatures 跳过签名
  13. 拓端tecdat|R语言k-means聚类、层次聚类、主成分(PCA)降维及可视化分析鸢尾花iris数据集
  14. 如何让Div层悬浮在Flash Object对象之上(转载)
  15. 利用python将Mooc缓存转换为视频文件
  16. 解决xshell flashfxp等工具连接不上本机上的虚拟机
  17. 考研英语阅读理解技巧总结
  18. 天猫多个商品主图、属性图和细节图分类下载
  19. 按月显示的万年历(含农历)网页代码
  20. 沐风水库理论:企业微信生态营销秘密核武器

热门文章

  1. IOS CoreImage实现人脸识别
  2. 总结redis中对象的类型与编码
  3. Request method 'GET' not supported解决方式
  4. flatmap和map的区别!
  5. MySQL主从复制能完美解决数据库单点问题吗?
  6. java基础---流程控制
  7. leetcode 174. Dungeon Game | 174. 地下城游戏(暴力递归->傻缓存->dp)
  8. leetcode 191. 位1的个数(移位操作)
  9. Lambda表达式和闭包Closure
  10. Phaser都不懂,还学什么多线程