【Android逆向】Android环境配置与常用工具介绍
1.写在前面
Android逆向是一个综合各方面能力的应用,对经济能力与技术能力要求相对较高。不像Windows,只需要有一台电脑,就能愉快的草起来。它需要逆向人员拥有一定的 Android开发经验,能够基本理解 Android程序的结构,程序工作流程,以及了解熟悉一定的Api。开发语言上,又需要能够读懂Java, Smali,C+,arm代码。这是对逆向人员的考验,也是他的有趣之处。
注意:Java和C++要求能看懂,Smali和arm不仅要看懂,还要会修改。
2 Android的简单介绍
Android应用程序是采用Java语言开发,传统的Java语言运行是通过JVM 将源文件编译成Java字节码运行,但是 Android虽然是Java语言开发,但是字节码并不是最终的运行格式,并且由于版本问题和移动设备电量等问题, Google自行开发了一个虚拟机运行Android程序,这个虚拟机称为 Dalvik 。当完成源代码的开发后,首先会将Java源码转换为字节码,然后通过DX工具,将字节码文件转换了.dex 的文件,最后该dex格式 的文件在 Dalvik 上运行。
3配置 Android开发环境
①配置 Java SE Development Kit(JDK) 。
下载java开发包。请自行选择需要的版本下载,一般需要配置jdk1.7(jidk7) ,或jdk1.8(jdk8) 。之后配置变量:
官网版本分发包:Oracle Java Archive
②安装 Android Studio(需要科学上网,否则无法正常使用)
Developer:http://developer.android.com/develop/index.html Google官方地址,用到的情况下非常多的。 安装后首次启动会自动要求配置 AndroidSDK,只要根据提示进行设置就可以。 
遇到报错- HAXM(Intel Hardware Accelerated Execution Manager)安装
 Intel? HAXM installation failed. To install Intel? HAXM follow the instructions found at: https://github.com/intel/haxm/wiki/Installation-Instructions-on-Windows
HAXM的github网站:https://github.com/intel/haxm 下载网址:https://github.com/intel/haxm/releases 下载后安装,提示没有满足要求:   问题反馈详情页:Install Haxm failed with ‘The system requirements are not satisfied’ #367
可以在具有管理员权限的 Windows 终端中通过“bcdedit /set hypervisorlaunchtype off ”禁用 Hyper-V。然后重新启动你的电脑再试一次。  之后重启电脑,运行haxm的安装程序,成功安装: 
Windows 10 上的 Hyper-V 简介
Windows 10 Hyper-V 系统要求
硬件要求
虽然本文档没有提供 Hyper-V 兼容硬件的完整列表,但以下项目是必要的:
具有二级地址转换 (SLAT) 的 64 位处理器。 CPU 支持 VM Monitor Mode Extension(英特尔 CPU 上的 VT-x)。 最少 4 GB 内存。由于虚拟机与 Hyper-V 主机共享内存,因此您需要提供足够的内存来处理预期的虚拟工作负载。
需要在系统 BIOS 中启用以下项目:
虚拟化技术 - 可能有不同的标签,具体取决于主板制造商。 硬件强制数据执行保护。
cmd下msinfo32 查看硬件信息以及是否开启hype -v  验证硬件兼容性
检查上述操作系统和硬件要求后,通过打开 PowerShell 会话或命令提示符 (cmd.exe) 窗口,键入systeminfo ,然后检查 Hyper-V 要求部分,验证 Windows 中的硬件兼容性。如果列出的所有 Hyper-V 要求的值为Yes,则您的系统可以运行 Hyper-V 角色。如果任何项目返回No,请检查本文档中列出的要求并在可能的情况下进行调整。

③安装Android SDK
如果没有安装 Android Studio ,也可以独立下载配置 Android sdk管理器。Developer官网或者百度即可下载。如果不清楚具体哪个包有什么作用的话,就下载默认打钩的所有扩展工具包!! 开发调试 Android程序必备工具包。逆向中用到也非常多!! 添加全局环境变量: 
PATH:
Androidsdk\platform-tools
Androidsdk\tools
安装成功后可以在cmd命令行通过adb 命令来测试。
④安装 Android NDK
已安装 Android Studio的情况下,可以直接通过 Studio来进行安装; 使用C++代码编译成arm代码,再bian’yi’chen 
⑤安装 eclipse
如果前面没有安装 Android Studio,则需要安装 eclipse+Adt来进行代替
Eclipse: 下载地址:http://www.eclipse.org/downloads/ 建议选择带Java以及C+插件的 用法: eclipse界面中Help-> Install new Software-〉Add Name: Android ADT (development toolkit) Location:https://dl-ss1.google.com/android/eclipse/ 按照提示点击Next会自动安装。安装完后需要手动配置SDK与NDK路径。
4.安卓模拟器 blues tacks的下载与安装
好用的模拟器很多,不过都是x86内核的,所以随便选一个顺手的就可以。这里课程中就使用 bluestacks。 可能 bluestacks不能自动连接上电脑,此时需要进行如下修改 Adb kill-server Adb start-server 或Adb connect 127.0.0. 1 就可以了
5.一台调试用手机
调试用手机请务必专门买一台, Google的亲儿子二手的就可以。 课程中使用 nexus4 ocam(mako),二手价格在250-350之间,你们也可以选择 Nexus.5Nexus7(flo/deb/ grouper/ tilapia), nexus10之类的。 如果实在不想买 Google的话,也可以弄一台已经root过的手机。后面到 native层的时候就无法用模拟器糊弄过去的了。
自己采用一台redmi4 进行测试,root解锁如下。 
|