目录

unity游戏生成与修改so文件教程

目录

unity游戏生成与修改so文件教程

本文主要介绍如何对unity3d引擎制作的游戏进行修改。包含了apk文件安装后在手机中的位置分析、修改游戏时遇见内联函数之坑时的解决办法,以及so文件的原理介绍与解析修改。并将实例教学如何修改unity3d游戏(想学崩坏3修改的同学请注意啦)。教程是给入门新手看的,请大神绕道勿喷。文章的核心内容在最后利用Il2CppDumper的部分,前面清楚的话可直接绕到最后看。(因为手机截图下来的图片分辨率太大。看起来排版会不太舒服,可以直接到文章最后下载文档查看,排版会舒服很多) 基础知识 0x1.apk安装后在手机中的目录 apk安装后会在两个包下生成相关包:data/data/、data/app/。 这里拿网易云音乐的安装目录举例。Data/App目录下通常会有三个文件: 1.lib文件夹 (包含so库文件)、 2.oat文件夹 (OAT文件是一种 android 私有ELF文件格式,它不仅包含有从DEX文件翻译而来的本 地机器指令,还包含有原来的DEX文件内容。这使得我们无需重新编译原有的APK就可以让它正常地在ART 里面运行 ) 、 3. base.apk启动包。 【其中apk启动包是不允许重命名或删除的,因为app运行时其实就是链接到这个启动包,然后才能继续启动操作。这个启动包用beyond对比后可以发现,与原安装包没有任何不同,所以就相当与apk的原版安装包】。 Data/data目录下一般是存储lib文件夹(保护so库文件)以及其他数据文件、缓存等。只需要知道这里的lib实际上与data/app目录下的lib目录中内容是一样的。 游戏在运行的时候,一般都会载入dada/data目录中的lib与data/app中的lib,通常来说只需要修改data/data中的lib文件夹中的so文件即可达到成功修改的效果。当然也有一小部分游戏根本不读取data/data目录下的lib文件夹,待会会讲到。 0x2. U nity3D中的资源路径Application.dataPath此属性用于返回程序的数据文件所在文件夹的路径。例如在Editor中就是Assets了。Application.streamingAssetsPath此属性用于返回流数据的缓存目录,返回路径为相对路径,适合设置一些外部数据文件的路径。Application.persistentDataPath此属性用于返回一个持久化数据存储目录的路径,可以在此路径下存储一些持久化的数据文件。Application.temporaryCachePath此属性用于返回一个临时数据的缓存目录。android平台

(78.43 KB, 下载次数: 10)

https://i-blog.csdnimg.cn/blog_migrate/6e3285832bbbc6dbbe86714481b0f230.png