apk源码打开不能提取(打开APK提取器)
本文目录一览:
如何在android 源码提取一个完整的apk
一、工具准备:apktool , dex2jar , jd-gui
二、使用dex2jar + jd-gui 得到apk的java源码
1.用解压工具从 apk包中取出 classes.dex 文件
用命令(dex2jar.bat classes.dex)得到一个 jar文件
2.用jd-gui反编译工具将得到.jar文件反编译成.java文件
三、使用apktool得到apk的xml文件
1.用命令(apktool d xxx.apk xxx_xml)反编译xxx.apk包
2.从 xxx_xml 文件夹得到xml文件
四、第二步 得到的程序源代码 和 第三步 得到的xml文件组合下,即可得到完整的apk源码。
五、应用: 汉化/去广告,加 values-zh-rCN, values-zh-rTW, values-de, values-fr
1.在步骤三的文件夹xxx_xml/res/ 下, 建文件夹: values-zh-rCN,values-zh-rTW
2.1复制values\strings.xml 到 values-zh-rCN 并翻译.
2.2 去广告见;
3.重建APK,用命令(apktool b xxx) ,输出到ABC/dist/out.apk
或命令( apktool b xxx out.apk)
六、重新打包 和 签名
如何用apktool提取源代码
准备的工具除了jdk还有以下内容(在Google官网都有):
把apktool-install-windows-2.1_r01-1.zip,dex2jar-0.0.7-SNAPSHOT.zip解压到一个盘的根目录下(这里我选择H盘),同时把AXMLPrinter2.jar,apktool.jar和你想解包的apk软件也放在同一个目录下,然后“运行--cmd”打开控制台,输入cd /d h : / 进入H盘的根目录然后输入以下内容(控制台不要关,为了后面方便):
其中apktool.jar是解包工具,d表示解包,memo.apk是我要解包的软件,memo表示解包后输出到这个文件夹,等待片刻,就会生成memo文件夹,打开里面会有res文件夹下的所有文件和AndroidManifest.xml,用记事本就可以查看了。
以上是获得.xml文件和图片,下面获得里面的.java源代码:
用winRar或者好压打开memo.apk,截图如下:
把里面的classes.dex文件解压到H盘根目录下,然后重新打开控制台,输入dex2jar.bat classes.dex
得到一个名为classes.dex.dex2jar.jar的文件,此时用jd-gui.exe打开classes.dex.dex2jar.jar就可以看到所有源代码了!
如果想把反编译好的文件变回apk文件,只要在控制台输入
apktool.jar b memo就可以了
其中b就是重新封包的意思,memo是你刚才解包出来的文件夹,前提是确保所有文件都在memo文件夹里!!
解压apk后用AssetStudioGUI提取不了任何东西
(1)打开apk包
首先,将你的apk包重命名为zip或者rar类型的文件,然后进行解压缩,获取下面的文件
各个部分的说明如下表:
文件 说明
assets Unity游戏里面的资源和代码
lib arm和x86需要的so文件
META-INF 信息包
res 存放icon等资源
AndroidManifest.xml 清单文件
classes.dex Android Dalvik字节码
resources.arsc 编译后的二进制资源文件
我们主要关注的是assets目录,里面有我们想要的资源和代码。
(2)提取代码
下载 netreflector 这个不错本人亲测解压安装直接可以用: netreflector下载 里面有详细安装流程就不多说了
安装好之后,双击Reflector.exe,打开该软件可以看到如下画面 ,file 第一步骤解压的文件\assets\bin\Data\Managed\Assembly-CSharp.dll,可以看到
在这里插入图片描述
通过点击右键Assembly-CSharp进行导出,选好导出目录,等待一会,就能得到以下的源代码
(3)提取资源
UnityStudio
这个工具非常牛逼。UnityStudio可以直接在自己的软件上查看图片、shader、文本、还能直接播放音频、甚至还能看场景Hierarchy视图的树状结构;下载 选择v0.10.0以下的版本解压可以看到如下文件,打开软件在这里插入图片描述
file第一步骤下的\assets\bin文件,可以看到:
在这里插入图片描述
这两个一个是场景层级视图,一个是资源文件列表。在资源列表中,右边的大框可以预览资源,可以多选或单选然后用上面的export菜单按钮选择导出方式进行导出。整个过程很简单主要是利用工具。目前来看对2D资源的导出没有问题,对于3D资源还要进一步实验。值得一提的是标题上有一个类似unity版本号的东西,不知道是不是准确识别了app开发时用的unity版本。
选择 asset Lise 然后Export 导出即可。