首先呢,1024,大家程序员节快乐~
刚毕业,一开始想要走Java,到第一家公司,经理看我有点安卓基础,就先让我做安卓,那么既然做了,就把安卓搞好。工作里除了写APP,遇到了坑总是要填的,自己填不上,网上又找不到合适的帖子解决怎么办?那么只有去学习别人的做法,这就不得不用到反编译,包括后面进了第二家手游公司,也需要做一些逆向工作。积累了一些东西,总觉得整理一下才比较安心。
感觉基本上把能用到的、频率比较高的都写下来了,对自己表述能力还算自信喜欢纯码字,比较懒没有图,见谅。
自己找各类工具并且尝试去用也是发现了很多问题的,因为毕竟好多帖子都很旧了,这里我也都写出来,可以让看到的人少走些弯路。(当然要说一句,反编译拿来学习和研究安全是很好的方式,不要用在歪路上)
反编译的环境我也就不说了,%JAVA_HOME%.这个大家都熟悉,python可能运行一些脚本也会用到,不过我用的不多。
1、我最常用的反编译工具
(1)apktool
这应该是最常用的工具了,apk本质是个压缩包,直接改后缀解压就能看到完整的文件结构,但这样做,文件都是加密的,看不到明文。用apktool工具反编译拿到的资源文件,包括AndroidManifest.xml、各布局文件等就可以直接看到了。如果一个app你觉得某个页面写的不错,自己又想不到怎么写,就可以反编译出来参考。
刚开始去找这个工具,很多老的帖子并没有贴出官方网址,都是自己存的文件,很多版本比较老。这就导致用的时候我发现好多apk完全不能反编译,我找了很久是不是我的方法不对,出错信息也都读的晕头转向。最后我才知道,要用最新的jar包,才能保证能够使用。
官方地址:https://ibotpeaches.github.io/Apktool/
这个网址我不太懂为什么很少有帖子直接贴出来,install标签写了如何安装、documentation也就是使用文档。上如果刚开始就找到官网,会节省很多时间,里面各方面都写的十分详尽了,并且也有jar包的更新地址:
(https://bitbucket.org/iBotPeaches/apktool/downloads/)
程序员嘛,英语总是要能看懂的,还是简单说一下安装和基本使用。(其实就是翻一下install标签的内容)
Windows平台为例:
把官网给的脚本(网址里脚本是个链接,点进去复制就好)放到记事本,后缀改bat
下载最新jar包,下载后改名为apktool.jar,后面一般都有版本号,为了方便,脚本里固定写成apktool。
把两个文件放到系统文件夹下C://Windows,这样你只要打开cmd