我们都知道安卓应用是可以用多种语言来进行开发的,而且根据不同的语言我们也有不同的逆向方式,今天小生就给大家介绍介绍在众多语言中相对简单一点的java,我们称之为java层逆向。
Java层逆向的含义
序员当时开发的代码,这样我们就能清楚的了解APP运行时候的代码逻辑是怎么样的。
但在逆向板块,大多需要接助工具,通过反编译来查看到java代码,不过一般程序员在写好一个APP代码后都需要通过开发工具去编译成程序,这是正向编译的一个过程,让代码变成我们用户所使用的界面,逆向则是回溯当时程序员开发的代码,来分析程序员编写代码时候的一些方法并且实现篡改。
直接将APP放到程序员使用的开发平台里面不就可以看到代码了吗?为什么还要这么麻烦?
答:是APP在编译的过程中会进行加密而且编译出来的APP是要安卓手机系统能够识别的内容,所以放进开发平台是看不到正常的代码的;而且我们通过反编译工具能够看到的只是系统识别的代码,也就是我们后面会讲到的smali代码。
java代码能看到吗?
答:是可以看到,不过逆向技术人员看到的java代码往往都经过了混淆,毕竟开发人员也不希望你扒拉开他的衣服看到裸体,所以程序员在开发的过程中会构建一套自己的开发规则,比如数字1,程序员在开发的过程中有可能就会把他变成5,按照他构建的开发规则来进行使用,而且也是防止很轻易的就被**和猜出开发意图和思路。
Java层逆向常用工具
Androidkiller
(AndroidKiller工具是反编译工具,简称ak,主要是基于apktool来反编译的,一般反编译失败就需要更新apktool)
Jeb
(JEB是一个功能强大的为安全专业人士设计的Android应用程序的反编译工具。用于****或审计APK文件,可以提高效率减少许多工程师的分析时间)
jd-gui。
当然小生还有很多的工具包等着你来拿