【安卓逆向入门系列】零基础之开篇

作者: 叮噹貓の神 分类: 安卓逆向 发布时间: 2020-03-31 12:14
安卓逆向展示图

Hi,大家好,欢迎进入安卓逆向的世界!在本系列教学中,我将深入的引领大家一起学习安卓逆向开发与实践,本系列教学仅限于新手入门之用,在学习过程中有任何疑问或建议欢迎加入我们的QQ技术交流群探讨:①群:544185435(已满)②群:893586916

前言

在写本文之时,作者对于安卓逆向也属于刚接触的阶段,之所以有这系列文章,旨在分享与交流(分享促进交流,有交流才有进步!),在后续的写作中,为了不涉嫌破坏它人的劳动结果(程序)我只会给大家提供原理、思路,而不会公开源码,不便之处还望大家海涵!

逆向是什么意思?

在学习逆向技术之前(为了照顾新人),我觉得很有必要着重的讲解下逆向的含义,做开发的小伙伴们应该都很清楚,要开发一套程序绝非易事(泛指大型程序),而且开发过程中还往往会涉及到大量的金钱成本,而产品持有者为了不让自己的投资打水漂,通常会以各种方式进行打包出售给客户,进而赚取更高的利润。

展示图(一)

往往每个产品的定位与售价规则都不尽相似的,如某些定位比较精准的程序往往会深受大家的青睐,而越是受欢迎的程序就越会有机会出现大量的破(po)解(jie)版,其衍生这一灰色产业的主要原因无非是版权方不开源(由于开发需要大量成本,而作者有权利决定是否公开源代码)而程序又实在太有用了,那怎么办?只能效仿呗,但是呢,效仿也需要有步骤啊,所以最好的解决方法就是分析它内部的构造从而模拟实现它里面的所有方法与步骤,从而实现与其功能一致的程序,就这样一项大名鼎鼎的“逆向技术”就这么诞生了。

展示图(二)

从前面的介绍中我们可以看到,逆向其实就是对一个软件的结构进行反向分析的过程,而事实上,我们前面的文章【网络爬虫教学】篇中所讲述到的知识点都可以被判定为一种逆向分析过程,但人们更加倾向于称这个过程为“破(po)解(jie)”。

在这里我想给大家做一下普及,逆向仅仅只是一个分析过程,本身不涉及任何法律行为,且一切以学术性为目的的学习都是是国家法律准许的(毕竟实践才能出真知嘛)并且逆向也有助于双方能力的提升,当然知识也是一把双刃剑,用它的人如果使坏那么它就是坏的,反之亦然,我强烈建议大家不要以任何手段去破坏它人的劳动成果。

安卓逆向分析利器

所谓工欲善其事必先利其器,老祖先总结的经验总不会错的,不论做什么事,有一套称职的工具总能让你省去很多不必要的麻烦,逆向也一样,所以我们在开始逆向分析之前有必要为我们配备一套能为我们开天辟地的工具!

apktool图片展示

在学习安卓逆向的过程中,我最先接触到的工具就是这款“APKTOOL”,它号称安卓逆向界的反编译神器,看了下它的简述,它是一款可以将APK反编译为与源代码相似度相对较高,且可以在修改后重新打包的神器,它最初是由:RyszardWiśniewski- 开发并开源,目前由:Connor Tumbleson- 进行维护,感兴趣的小伙伴可以点击链接过去一探究竟!

jadx-gui展示图(一)

而另一款同为神级的神兵利刃为:“Jadx”,它也是号称安卓界反编译神器,并且,这款神器相较于前者更适合初学者使用。

前者仅仅只是辅助我们将APK反编译成机器码smali(如解析不对还请谅解,作者也是刚接触安卓逆向),它是基于Java虚拟机中所使用的一种.dex格式文件的汇编器,而如果我们还想看到源码(反编译后的源码,与源代码相似度高但不保证完整性)就需要借助另一款神器:“Dex2jar” 它可以帮我们将.dex文件转化为jar包,便于我们分析,当然dex2jar实际上很久未更新了(可能是我看到的是假地址?)不过作为新手,我还是建议大家使用Jadx。

android killer展示界面(一)

Android Killer 是一款可视化的安卓应用逆向工具,集Apk反编译、Apk打包、Apk签名,编码互转,ADB通信(应用安装-卸载-运行-设备文件管理)等特色功能于一身的神器,在后续的教学中,我们都将通过采用该工具来完成逆向分析,所以大家请先下载好哦!

Java环境安装

由于安卓大部分是基于Java实现的,我们要想逆向分析它就必须得为系统配置一个Java环境,我们可以前往这个页面进行选择性的下载对应的版本:JAVA SDK 下载并安装完成后按以下步骤配置好环境即可。

复制java sdk路径

打开并复制我们安装好后的sdk路径,这里的路径是:C:\Program Files\Java\jdk-14\bin 请按实际路径复制。

创建java环境变量

按键盘的win + PauseBreak键(如果有)或 者右键我的电脑 –>点击属性 –>高级系统设置 –>环境变量 –>新建 –>变量名:java 变量值,刚复制的路径:C:\Program Files\Java\jdk-14\bin\ –>点击确定

引用Java环境变量

找到path环境变量,点击编辑 –> 新建 –> 以双百分号包裹刚创建的环境变量名称%java% –> 按确定 –> 确定 –> 完成!

JAVAC判断是否生效

按键盘的win + r键输入cmd打开黑窗口,然后输入Javac如看到上述画面则表示配置成功,否则则重走一遍流程即可。

尾语

鉴于作者也是一个安卓逆向的初学者,难免在分享的知识中会存在差异或认知性的错误,本文仅作为零基础入门篇,未涉及任何逆向的知识,如您有任何建议欢迎加群探讨!

知识共享许可协议 本文遵循 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议。未经本站授权仅允许进行复制或转载,禁止二次利用,版权归IT猫之家所有!

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!