码迷,mamicode.com
首页 > 编程语言 > 详细

Unity - Apk包的代码与资源提取

时间:2017-12-13 20:42:44      阅读:294      评论:0      收藏:0      [点我收藏+]

标签:别人   9.png   总结   选中   图片   测试工程   解析   image   界面   

https://www.cnblogs.com/programmer-kaima/p/5847429.html

 

最近在研究如何给Unity游戏进行加密,让别人不能轻易破解你的apk包,不过网上的加密方法都是有对应的破解方法~_~!!结果加密方法没找到好的,逆向工程倒会了不少。今天就来讲解如何提取一个没做任何保护的apk包中的资源和代码。

  

  (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)提取代码

  Unity把我们大部分的代码都放到了技术分享图片这个dll文件中(当然还有其他代码放到了first-pass之类的代码,但不是主要的),我们可以在assets\bin\Data\Managed这个路径下找到所有需要的dll文件。要解析dll文件,我用到了技术分享图片这个软件(自行百度下载),用该软件打开技术分享图片得到以下这样的界面:

技术分享图片

通过点击右键进行导出,选好导出目录,等待一会,就能得到以下的源代码:

技术分享图片

我的测试项目就只写了一个Test.cs,可以看见上面已经成功导出了,打开一看:

技术分享图片

我滴乖乖,完全和我写的一模一样,一点不变地导出来了。(由此可见代码混淆和加密的重要性了)

 

  (3)提取资源

  要提取资源,我们需要用到Unity Studio,可在下载地址他的Github上下载。

 打开Unity Studio,点File/Load folder,选中assets\bin\Data该目录,然后就能得到如下界面:

技术分享图片

其中Scene Hierarchy可以查看游戏里面场景的分布情况,而Asset List可以查看资源。

比如我的测试工程里面,只在空场景里放了一个汽车模型,可以从这个文件分析出我的场景结构如下:

技术分享图片

而打开Asset List,可以找到我放进去的一张蓝色按钮贴图:

技术分享图片

当然,除了贴图,像音频文件、xml文件、着色器等都能查看到,不过模型目测不能提取出来(这就要用disunity了)

  

  总结:unity游戏太容易被分析出来了,如果项目十分重要,那代码混淆、加密等工作还是十分重要的。

Unity - Apk包的代码与资源提取

标签:别人   9.png   总结   选中   图片   测试工程   解析   image   界面   

原文地址:http://www.cnblogs.com/sanyejun/p/8033924.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!