一、更改apk文件的后缀名,如:LianyunHelper3011apk改成LianyunHelper3011zip
二、用zip解压缩LianyunHelper3011zip文件
三、从解压缩的文件夹中取出classesdex文件并放到dex2jarbat所在目录
四、运行cmd命令,进入dex2jarbat所在的目录,输入dex2jarbat classesdex即可生成classesdexdex2jarjar文件
五、用jd-gui工具打开classesdexdex2jarjar文件,即可看到源码
六、将AndroidManifestxml文件放到AXMLPrinter2jar所在目录,运行cmd命令,进入 AXMLPrinter2jar所在目录,输入java -jar AXMLPrinter2jar AndroidManifestxml > AndroidManifesttxt。将 apk 解压,在解压后的文件夹中可以找到 classesdex 文件。(除了 classesdex 文件,可能还会有 classes2dex , classes3dex 等等,本文以 classesdex 为例,对其他几个 dex 文件的 *** 作是类似的)
使用 dex2jar 工具,将 dex 文件转换为 jar 文件
使用方式:
执行命令后,生成的 classes-dex2jarjar 就是我们需要的 jar 文件。
使用 Luyten 工具查看 jar 文件,就能看到反编译后的源码了。
本例中, classesdex 文件中存储的是 android 的一些基础库,实际编写的源码在 classes3dex 中,对 classes3dex 执行第二步,查看生成的 classes3-dex2jarjar 文件,可以看到如下内容:
这就是反编译 apk 的基本 *** 作了。
Cmder 是一个非常好用的命令行工具。
效果如下:
只需要执行 apk2jar 命令,就可以实现把 apk 解压到 apk_ 文件夹中,并将 apk_ 文件夹中的 classesdex 文件转换为 jar 。原理就是通过 Cmder 添加别名,把上述的第一步和第二步中执行的命令行组合起来了。
为 Cmder 添加别名很简单,编辑 Cmder安装目录\config\user_aliasescmd 文件,将别名添加到里面即可。本例添加的别名如下:
其中:最近因为一些事所以需要得到师兄的某个apk的源代码,但师兄说那个项目包已经删了,哎,没办法,只能自己想办法了。后来找到了反编译apk的方法,现在拿出来分享下。其实这个方法网上都有,我只是记载一下自己这段时间的学习情况。1下载工具
首先,要反编译需要下面这
4个工具:
dex2jar:将apk中的classesdex转化成Jar文件。
JD-GUI:反编译工具,可以直接查看Jar包的源代码。
apktool:反编译工具,通过反编译APK中XML文件,直接可以查看。
apktool-install-windows-r05-ibot:辅助windows批处理工具。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)