- 对本书的赞誉
- 前言
- 基础篇
- 第 1 章 Android 中锁屏密码加密算法分析
- 第 2 章 Android 中 NDK 开发
- 第 3 章 Android 中开发与逆向常用命令总结
- 第 4 章 so 文件格式解析
- 第 5 章 AndroidManifest.xml 文件格式解析
- 第 6 章 resource.arsc 文件格式解析
- 第 7 章 dex 文件格式解析
- 防护篇
- 第 8 章 Android 应用安全防护的基本策略
- 第 9 章 Android 中常用权限分析
- 第 10 章 Android 中的 run-as 命令
- 第 11 章 Android 中的 allowBackup 属性
- 第 12 章 Android 中的签名机制
- 第 13 章 Android 应用加固原理
- 第 14 章 Android 中的 so 加固原理
- 工具篇
- 第 15 章 Android 逆向分析基础
- 第 16 章 反编译神器 apktool 和 Jadx
- 第 17 章 Hook 神器 Xposed
- 第 18 章 脱壳神器 ZjDroid
- 第 19 章 Native 层 Hook 神器 Cydia Substrate
- 操作篇
- 第 20 章 静态方式逆向应用
- 第 21 章 动态调试 smali 源码
- 第 22 章 IDA 工具调试 so 源码
- 第 23 章 逆向加固应用
- 第 24 章 逆向应用经典案例分析
- 第 25 章 Android 中常见漏洞分析
- 第 26 章 文件加密病毒 Wannacry 样本分析
2.1 搭建开发环境
在搭建环境之前必须先去官网下载 NDK 工具包,官网地址是 http://wear.techbrood.com/tools/sdk/ndk/ ,选择相应平台的 NDK 版本即可。
2.1.1 Eclipse 环境搭建
第一步:配置 NDK 路径,如图 2-1 所示。
图 2-1 配置 NDK 路径
第二步:新建 Android 项目,如图 2-2 所示。
图 2-2 新建 Android 项目
点击 Add Native Support,出现如图 2-3 所示的 lib 命令。
点击“Finish”,再次观察项目多了 jni 文件夹,如图 2-4 所示。
图 2-3 命令 lib
图 2-4 添加了 jni 文件夹
在 jni 下面就可以开始编写 native 层的代码。
第三步:使用 javah 生成 native 的头文件,如图 2-5 所示。
图 2-5 生成 native 头文件
注意:javah 执行的目录,必须是类包名路径的最上层,然后执行:
注意没有后缀名 java。
第四步:运行项目,点击工具栏中的小锤子图标如图 2-6 所示。
图 2-6 运行项目
运行结果如图 2-7 所示。
图 2-7 运行结果
2.1.2 Android Studio 环境搭建
去官网下载 NDK 工具,然后使用 Android Studio 中进行新建一个简单项目,然后创建 JNI 即可,如图 2-8 所示。
图 2-8 创建 jni
第一步:在项目中新建 jni 目录,如图 2-9 所示。
第二步:用 javah 命令生成 native 的头文件,如图 2-10 所示。
第三步:配置项目的 NDK 目录,如图 2-11 所示。
图 2-9 新建 jni 目录
图 2-10 生成 native 头文件
图 2-11 配置 NDK 目录
选择模块的设置选项 Open Module Settings,如图 2-12 所示。
图 2-12 模块的设置选项
在其中设置 NDK 目录即可。
第四步:配置 Gradle 中的 ndk 选项,如图 2-13 所示。
图 2-13 配置 gradle
这里只需要设置编译之后的模块名,即 so 文件的名称,以及产生哪几个平台下的 so 文件,需要用到的 lib 库,这里用到了 Android 中打印 log 的库文件。
第五步:编译运行生成 so 文件
在 build 目录下生成指定的 so 文件,拷贝到项目的 libs 目录下即可,如图 2-14 所示。
图 2-14 项目的 libs 目录
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论