关于apk文件反编译,现在已经有不少合适的工具了,个人而言现在在用这些:
apktool, smali (baksmali), dex2jar, jd-gui
首先,apktool可以解开apk文件,得到smail代码和资源文件。同样的,也可以将smail代码和资源文件重打包成为apk文件。
第一步自然是下apk,然后,在apk文件与apktool.jar文件所在地址打开cmd,输入“java -jar apktool.jar d [apk名称] -f ”
其中,java -jar apktool.jar就是调用apktool.jar来工作,参数d表示解压,最后会新建文件夹名称与apk相同,并解压到这个文件夹下面, -f的意思是说如果此名称文件夹存在,就会覆盖掉。
(打包命令:“java -jar apktool.jar b [文件夹名] -f [apk名称]”)
这样得到smail文件,可以用smail.jar将其转为dex文件,命令为:“java -jar smali.jar a [smali文件夹] ”,这样生成了out.dex文件。
之后就需要用dex2jar,将生成的dex文件放到dex2jar文件夹,在cmd命令行中执行反编译命令:“d2j-dex2jar.bat [classes.dex文件]”,成功后,会在dex2jar文件夹下生成 [dex名称]-dex2jar.jar文件,这个jar文件就是反编译后的文件。
最后,使用jd-gui软件打开[dex名称]-dex2jar.jar文件,就可以查看反编译的代码了。
这篇文章由多篇文章总结而来,包括:
https://blog.csdn.net/wolinghuanyun/article/details/52516346
https://blog.csdn.net/codehxy/article/details/53190074
对此表示感谢