第一次写简书有点兴奋,想必大家再第一次写作的时候都有过这种心情吧。四个小时前Leader给我说小Z啊,咱们的APP这两天就要上线了你试着将咱的安装包反编译一下看看代码的混淆程度吧,我刚接到这个任务的时候在此之前一直觉得反编译是一件很麻烦的事,但是经过三四个小时的时间将Leader分派给我的任务完成,发现只要认真的做一件事,没有完成不了的,在此鼓励大家不要觉得自己不行,要相信自己是可以的!!!
参考大神文章传送门
OK,肯定有人觉得我是在说废话了,那么咱们直奔主题吧!GO---->>>
首先给大家简单的介绍一下反编译的一个流程以及需要用到的工具:
1.反编译的工具ApkTool 地址:ApkTool
分为apktool.bat和apktool.jar,这两个下载完成之后网上好多文章都说要放在C盘下面的Windows文件夹下面,说是放到此文件夹下面不用配置环境变量,刚开始我也是放到此文件夹下面,单纯是为了省事不想配置环境变量,后来测试成功之后又把路径改为自定义的其他路径下面(我放在了D:\apktool包下,方便下面几个步骤的引用),发现不用配置环境变量也是可以的。。。
下载好之后可以通过cmd窗口切到存放的目录下面后,输入apktool此命令来判断是否成功,如果提示此错误
可以在apktool前加.\ 再次尝试.\apktool 此时提示
说明OK了。
2.把dex文件转成jar文件的工具 地址: dex2jar-2.0
下载完之后是一个dex2jar-2.0的一个.zip压缩包文件,加压出来之后打开会看到很多.sh和.bat的文件,此时我们需要用到的只有三个,分别是下图标记的这三个
因为我用的win系统,如果又用mac的大佬可以将.bat的文件换成.sh的文件即可,将这三个文件与之前的apktool的两个文件放到同一个目录(D:\apktool)下面。
3.打包apk
将打完包的apk放到apktool文件夹下面将.apk换成.zip格式的文件然后解压出来会看到一个classes.dex文件,将此文件也放到apktool文件夹下面,此时在cmd窗口输入d2j-dex2jar.bat classes.dex(或者.\d2j-dex2jar.bat classes.dex),mac系统输入d2j-dex2jar.shclasses.dex(或者.\d2j-dex2jar.shclasses.dex),成功的话会提示如下图,并且你会在apktool文件夹下看到一个classes-dex2jar.jar的文件。
4.JD-GUI工具 地址:JD-GUI
jd-gui: 这个工具用于将jar文件转换成java代码。
5.反编译资源文件
在cmd窗口输入apktool.bat apktool d tamc.apk(或者.\apktool.bat apktool d tamc.apk),提示如下图表示成功,
成功之后你会在apktool文件夹下面发现多了一个文件夹,这个文件夹的名称跟你的apk的文件名一样,这个文件夹中就是你反编译之后的apk中所有的资源文件以及AndroidManifest。
此时对APK的反编译就已经差不多告一段落了,之后我会接着补充修改反编译之后的apk源码以及重新进行签名打包的文章,还请各位笔下留情,刚开始写笔记,以后慢慢完善!!!