logo资料库

Android系统安全揭秘.pdf

第1页 / 共91页
第2页 / 共91页
第3页 / 共91页
第4页 / 共91页
第5页 / 共91页
第6页 / 共91页
第7页 / 共91页
第8页 / 共91页
资料共91页,剩余部分请下载后查看
第 1 章 Android 程序分析环境搭建 第 1 章 Android 程序分析环境搭建 在实际的 Android 软件开发过程中,可能很多开发人员有过这样的经历:  我有一个不错的 idea,正在开发一款类似想法的软件,可是涉及到的一些功能上 的具体代码细节却难以下手,我看到别人的程序中有这个功能,它们是如何实现 的呢?  我不小心安装了一个流氓软件,软件运行时会自动下载木马程序、恶意扣费、篡改 手机系统,它是如何做到这些的呢?  我按照网上介绍的方法来分析 Android 程序,可是根本就无法正确地反编译程序, 或是反编译出的代码语法混乱,根本无法阅读。 这些场景都提出了一个疑问,那就是如何分析一个 Android 应用程序?如何掌握这些软 件的架构思想?分析别人的程序在很多人看来是不能够接受的行为,在他们眼中这种行为都 应被视为盗窃。其实任何技术的起源本身就是从学习开始的,用正确的态度对待程序分析技 术是可以的。 如果说,开发 Android 程序是一种学问,那么分析 Android 程序更像是一门艺术。在浩 瀚如海的反汇编代码中分析出程序的执行流程与架构思想是一件很了不起的事情,这需要分 析人员有着扎实的编程基础与深厚的思维分析能力。分析软件的过程犹如一次艰难的旅程, 这条旅程会有多长?该怎么走?会有多少崎岖险路?没有人知道,但是先行者已经为我们铺 下了台阶,我们只需沿着它慢慢前行。 1.1 Windows 分析环境搭建 搭建 Windows 分析平台的系统版本要求不高,Windows XP 或以上即可。本书的 Windows 平台的分析环境采用 Windows XP 32 位系统,如果读者使用 Windows 7 或其它版本,操作上 是大同小异的。 1.1.1 安装 JDK JDK 是 Android 开发必须的运行环境,在安装 JDK 之前,首先到 Oracle 公司官网上下 载它。下载地址为:http://www.oracle.com/technetwork/java/javase/downloads/index.html,打 开下载页面,目前最新版本为 Java SE 6 Update 33,如图 1-1 所示。 1
Android 软件安全与逆向分析 图1-1 下载JDK 点击 JDK 下面的 DOWNLOAD 按钮进入下载页面,勾选“Accept License Agreement” 单选框,然后点击 jdk-6u33-windows-i586.exe 进行下载。下载完成后双击安装文件,启动 JDK 安装界面,如图 1-2 所示。 图1-2 JDK安装界面 2
第 1 章 Android 程序分析环境搭建 与安装其它 Windows 软件一样,JDK 的安装过程也很简单,只需要不停点击下一步就 可以顺利安装完成。安装完成后手动添加 JAVA_HOME 环境变量,值为“C:\Program Files\Java\jdk1.6.0_33”,并将“C:\Program Files\Java\jdk1.6.0_33\bin”添加到 PATH 变量中。 如图 1-3 所示。 图1-3 设置Java环境变量 完成所有步骤后检查一下 Java 是否安装成功。单击“开始”按钮,选择“运行”,在出 现的对话框中输入 CMD 命令打开 CMD 窗口,在 CMD 窗口中输入 java –version,如果屏幕 上出现如图 1-4 所示的提示,说明安装成功。 1.1.2 安装 Android SDK 图1-4 查看Java是否正确安装 Android SDK 是以 zip 压缩包的形式提供给开发人员的。首先到 Android 官网下载最新版本 的 SDK,下载地址为:http://developer.android.com/sdk/index.html。SDK 提供了压缩包与安装 3
Android 软件安全与逆向分析 文件两种方式供开发者下载,为了方便部署,本书采用下载安装文件的方式直接安装,目前 Android SDK 的最新版本为 r20,完整下载地址为:http://dl.google.com/androidinstaller_r20- windows.exe。 双击下载后的安装文件,将 Android SDK 安装到任意位置,本书安装环境为 D:\android-sdk 目录,然后将“D:\android-sdk\tools”与“D:\android-sdk\platform-tools”目录添加到系统的 PATH 环境变量中。添加完成后打开一个 CMD 窗口,输入“emulator -version”与“adb version”命令 查看是否能成功运行。执行结果如图 1-5 所示。 图1-5 检查Android SDK是否正确安装 Android SDK 安装成功后,需要通过 SDK 管理器下载具体版本的 SDK,双击 “D:\android-sdk\SDK Manager.exe”文件,打开 Android SDK Manager,运行后如图 1-6 所示。 读者可以根据自己的需要选择相应的一个或多个版本进行下载,本书选择了 2.2、2.3.3、 4.0、4.0.3、4.1 等几个版本,点击 Install package 按钮打开“Choose Package to Install”对话 框,选择“Accept All”单选框,最后点击“Install”按钮开始下载,下载所需的时间根据网 络环境差异可能会有所不同。 4
第 1 章 Android 程序分析环境搭建 图1-6 Android SDK Manager运行界面 1.1.3 安装 Android NDK Android NDK 是 Google 提供的开发 Android 原生程序的工具包。如今越来越多的软件 与病毒采用了基于 Android NDK 动态库的调用技术,隐藏了程序在实现上的很多细节,掌 握 Android NDK 程序的分析技术也成为了分析人员必备的技能,本书将会在第 7 章对 Android NDK 程序的特点以及分析技术进行详细的讲解。 Android NDK 的下载地址为:http://developer.android.com/sdk/ndk/index.html,目前最新 版本为 R8,Windows 平台下的完整下载链接为:http://dl.google.com/android/ndk/android-ndk- r8-windows.zip。将下载后的压缩包解压到硬盘任意位置,本书为 D 盘根目录。新建环境变 量 ANDROID_NDK,值为 D:\android-ndk-r8,然后将 ANDROID_NDK 添加到 PATH 环境变 量中,做好这一步,Android NDK 就算安装完成了。 接下来测试配置是否正确,打开一个 CMD 窗口,进入目录“D:\android-ndk-r8\samples\ hello-jni”,输入“ndk-build”命令编译 Android NDK 中自带的 hello-jni 工程,如果输出如图 1-7 所示的结果,就说明 Android NDK 安装成功了。 5
Android 软件安全与逆向分析 图1-7 使用Android NDK编译hello-jni工程 1.1.4 Eclipse 集成开发环境 Eclipse 是 Android 开发推荐使用的 IDE。它的下载地址为:http://www.eclipse. org/downloads, 选择下载“Eclipse IDE for Java Developers”或“Eclipse for Mobile Developers”版本即可。强烈建 议下载使用后者,后者自带了 CDT(C/C++Development Tools)插件,并针对手机开发做了优化。 Eclipse 是一款绿色软件,下载完成后解压到硬盘任意目录,本书为 D 盘根目录。进入 “D:\eclipse”目录,运行 eclipse.exe,Eclipse 会根据前面设置的环境变量自动进行初始化, 如果启动时没有提示错误说明安装成功。 1.1.5 安装 CDT、ADT 插件 如果读者使用的 Eclipse 是 For Mobile Developers 版本或自带 CDT 插件,可以跳过 CDT 插件的安装;否则需要手动安装 CDT 插件。安装 Eclipse 的插件比较简单,有在线安装与离 线安装两种方式,步骤分别为:  启动 Eclipse,点击菜单“Help→Install New Software”打开 Install 对话框,在“Work With”旁边的编辑框中输入 http://download.eclipse.org/tools/cdt/releases/juno 并回车, 稍等片刻后下面列表框就会解析出 CDT 插件。  到 Eclipse 官网上手动下载最新版的 CDT 插件,目前最新 8.1.0。下载地址为: http://www. eclipse.org/cdt/downloads.php。启动 Eclipse,点击菜单“Help→Install New Software”打开 Install 对话框,点击界面上的 Add 按钮,打开 Add Repository 对话 框,接着点击 Archive 按钮,选择下载的 CDT 压缩包,点击 OK 按钮返回。 6
第 1 章 Android 程序分析环境搭建 无论采用上面哪一种方式进行安装,最终都会在 Name 下面的列表中列出可供安装的 CDT 插件,如图 1-8 所示, 全部勾选后点击 Next 按钮即可安装,在线安装耗费的时间根据 网络环境差异可能有所不同。 图1-8 安装CDT插件 ADT 插件是 Google 为 Android 开发提供的 Eclipse 插件,方便在 Eclipse 开发环境中创 建、编辑、调试 Android 程序。安装过程与 CDT 插件类似。目前最新版本为 20.0.0,官方下 载地址为:http://dl.google.com/android/ADT-20.0.0.zip,在线安装的 repository 地址为:https://dl- ssl.google.com/android/eclipse/,读者可以按照上面的步骤自行完成安装。 ADT 插件安装完成后需要进行相应的配置。点击 Eclipse 菜单项“Window-Preferences”, 选 择 Android 列 表 项 , 在 右 侧 SDK Location 处 选 择 Android SDK 的 安 装 位 置 , 如 D:\android-sdk,展开 Android 列表项,选择 NDK,在右侧 NDK Location 处选择 Android NDK 的安装位置,如 D:\android-ndk-r8。设置完后点击 OK 按钮关闭对话框。到此,CDT 与 ADT 插件就安装完成了。 7
Android 软件安全与逆向分析 1.1.6 创建 Android Virtual Device Android SDK 中提供了“Android Virtual Device Manager”工具,方便在没有真实 Android 设备环境的情况下调试运行 Android 程序。 双击运行“D:\android-sdk-windows\ AVD Manager.exe”,点击“New”按钮,打开 AVD 创建对话框,在“Name”栏输入 AVD 的名称,如输入“Android2.3.3”,在 Target 一栏选择 要模拟的 Android 版本,这里选择“Android 2.3.3 – API Level 10”,SD Card 大小指定为 256MB,其它选项保持不变,结果如图 1-9 所示。 图1-9 创建AVD 点击“Create AVD”按钮完成 AVD 的创建。选中创建的 AVD,点击右侧的“Start”按 钮,如果没有错误会成功启动这个 Android 虚拟设备。 8
分享到:
收藏