记录一次Android反编译过程

记录一次Android反编译过程

一、所需要的工具

工具一:ApkTool

链接:https://pan.baidu.com/s/1fHzJm20xT6LxfqklSQEx0g 
提取码:9otj

工具二:Dex2Jar-2.0

链接:https://pan.baidu.com/s/1amBXR0gsMrgPoR9_80xMFA 
提取码:7dkm 

工具三:jd-gui.exe

链接:https://pan.baidu.com/s/1VOrx_mmPEy1-ccmVrN8JLA 
提取码:rq8l

二、反编译源码篇(注意:这里要确保apk没有加固过)

2.1、我这里准备一个待反编译的apk,修改成rar或者zip格式,解压后如下图所示(注意:这里的res中的资源都是乱码的,无法看懂的;另外注意到有一堆classes.dex文件,这个就是待会儿要将dex转化成jar的文件了):

记录一次Android反编译过程_第1张图片

2.2、进入工具dex2jar的文件中,按住shift+鼠标右键,选择在此处打开命令行。然后将上图的dex文件拷贝到dex2jar文件中,执行如下命令(成功后会生成下图空框所示的classes-dex2jar.jar文件):

d2j-dex2jar.bat classes.dex

 

记录一次Android反编译过程_第2张图片

2.3、最后使用jd-gui.exe打开上图生成的jar文件查看源码即可。(这里说一下,如果上两个结果失败出问题的话,请首先确保使用最新的工具包apktool和dex2jar试一次,还不行的话就去google。注意这里将的前提针对没有加固的apk) 结果展示如下图:

记录一次Android反编译过程_第3张图片

三、反编译资源篇

使用apktool工具,将要反编译的apk放入该工具目录下。执行如下命令(生成的结果如下图;注意这里的res资源就可以正常显示了,同时生成的是smali文件):

apktool.bat d -f cloud.apk -o cloud

记录一次Android反编译过程_第4张图片

最后:如果你想修改里面的代码内容的话,可以使用java2smali工具在AndroidStudio中完成,然后替换掉apktool生成的原始smali文件即可。然后使用apktool重新打包,签名,对齐后安装即可。其中最重要的步骤就是找到源码,然后修改成自己想要的,然后生成smali替换原来的smali文件。下面推荐一个博文看一下如何重新打包等。反编译及重新打包

 

你可能感兴趣的:(Android,反编译)