APK反编译--查看源代码

来源:互联网 发布:利用网络宣传党史 编辑:程序博客网 时间:2024/05/01 11:20

模仿是最好的学习

在工作工程中,往往产品经理一句话,“这个功能就跟XX做成一样的效果就可以了”,然后我们就开始模仿,开始百度、谷歌等等。而最好的参考对象,其实就是要模仿的APP本身,借助Apk反编译,我们可以看到其代码逻辑实现,这对于我们程序员,简直就是莫大的幸福啊。
查看Apk的代码,有两种方式:
1. dex2jar + jd-jui
2. jeb
dex2jar和jd-jui是很多人都了解的方式,然而jd-jui的工具在反编译和使用便捷上,都很难让我接受,直到我遇到了jeb。
jeb全称jeb Decompiler,是专为反编译Android Apk设计的软件,反编译能力要强于jd-jui,而且对于变量、方法的交叉应用,提供了方便导航,在一个界面查看Apk的证书、资源、manifest、代码等。如此强大,就让我把它推荐给更多的程序猿们吧!

jeb的下载和安装

Jeb是收费软件,不过网上有很多破解版存在,这里给出一个爱盘上的下载地址:
jeb-1.5下载地址

下载并解压,我们看到里面有32-bits64-bits两个目录,分别对应32位和64位Windows操作系统,进入对应目录后,执行jeb-wincon.bat脚本进行安装。
执行jeb_wincon.bat脚本
进入bin目录下,执行jeb.jar,提示输入key继续,点击accept接受,弹出输入License key对话框。中间若提示检查新版本,选择否即可。
执行jeb.jar
等待输入License key
在解压后的目录,有一个keygen.class文件,在这里按住shift,点击鼠标右键,选择在此处打开命令窗口,在窗口中输入java keygen,执行后生成License key。提示key验证成功,确定后就可以使用了。
生成License key
成功

尝试反编译apk

在File选项下,选择Open,打开选择Apk文件对话框(或者直接Ctrl+O打开),选择要反编译的Apk文件(我这里用的微信),点击打开,如果文件过大,打开的时间可能会长一些。
打开Apk
成功打开
点击左侧的类窗口,获得焦点后,可以按Ctrl+F打开搜索框,快速定位到LauncherUI类,双击,右侧跳转到Assembly窗口,光标也定位到对应的smali语言实现,按Tab键,反编译成Java语言。
定位代码
smali代码
Tab键反编译成Java代码
jeb提供了很多工具方便我们查看,例如:

左右箭头:你查看代码跳转的历史记录
N:重命名变量或方法,对混淆过得代码简直是利器
C:添加注释
X:查找方法的所有调用地方,方便你代码流程的跟踪

这里写图片描述

简单介绍了jeb工具的使用,希望大家可以受益。

1 0
原创粉丝点击