Android程序分析环境搭建-macOS篇
在实际的Android软件开发过程中,可能很多开发人员有过这样的经历:
-
我有一个不错的idea,正在开发一款类似想法的软件,可是涉及到的一些功能上的具体代码细节却难以下手,我看到别人的程序中有这个功能,它们是如何实现的呢?
-
我不小心安装了一个流氓软件,软件运行时会自动下载木马程序、恶意扣费、篡改手机系统,它是如何做到这些的呢?
-
我按照网上介绍的方法来分析Android程序,可是根本就无法正确地反编译程序,或是反编译出的代码语法混乱,根本无法阅读。
这些场景都提出了一个疑问,那就是如何分析一个Android应用程序?如何掌握这些软件的架构思想?分析别人的程序在很多人看来是不能够接受的行为,在他们眼中这种行为都应被视为盗窃。其实任何技术的起源本身就是从学习开始的,用正确的态度对待程序分析技术是可以的。
如果说,开发Android程序是一种学问,那么分析Android程序更像是一门艺术。在浩瀚如海的反汇编代码中分析出程序的执行流程与架构思想是一件很了不起的事情,这需要分析人员有着扎实的编程基础与深厚的思维分析能力。分析软件的过程犹如一次艰难的旅程,这条旅程会有多长?该怎么走?会有多少崎岖险路?没有人知道,但是先行者已经为我们铺下了台阶,我们只需沿着它慢慢前行。
与Android软件开发使用的三大系统平台Windows、macOS、Linux一样,Android软件逆向分析的环境同样可以支持这三大平台。为了保证不同平台上工具的使用技巧与操作流程的统一性,因此在选择工具时,除一些特定的商业软件外,多以跨平台且免费开源的工具为主。而对于平台上分析环境的搭建,主要围绕Android软件开发、Android软件逆向、Android源码编译,这三个环境的配置展开。
macOS分析环境搭建
越来越多的优秀的跨平台安全工具的问世,使得在macOS系统上从事软件安全分析工作,也成为了一种非常流行的选择。非常高兴的是,Android官方默认就支持使用macOS系统来开发Android程序,以及编译Android系统源码。
安装JDK
在macOS系统上,Android软件开发与搭建Android源码编译环境,都需要安装JDK。如果读者选择在macOS上只开发Android软件,则安装JDK 8即可。安装方法与Windows上安装JDK一样。首先到官网下载JDK安装包,以JDK 8u131为例,下载下来是一个名为jdk-8u131-macosx-x64.dmg的镜像文件,双击该镜像挂载成功后,里面有一个JDK 8 Update 131.pkg安装文件,双击该文件即可安装。如图所示。
完装完成后,会在系统的/Library/Java/JavaVirtualMachines目录下添加一个jdk1.8.0_131.jdk的目录,需要将它的Contents/Home子目录设置为JDK的安装根目录,即设置它的完整路径为JAVA_HOME
环境变量的值。最后,还要将JAVA_HOME
环境变量下的bin目录添加到系统的PATH
环境变量,方便第三方程序查找JDK的安装位置。
执行如下命令,将上述环境变量的配置信息写入“.bash_profile
”文件,并更新环境变量,即完成了JDK的安装。
$ echo JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home >> ~/.bash_profile $ export JAVA_HOME >> ~/.bash_profile $ export PATH=$JAVA_HOME/bin:$PATH >> ~/.bash_profile $ source ~/.bash_profile
执行如下命令确保JDK安装配置无误: