怎么查看assetbundle文件反编译

怎么查看assetbundle文件反编译,第1张

Unity会下载Assetbundle本地中,它的工作原理是先通过(版本号和下载地址)先在本地去找看有没有这个Assetbundle,如果有直接返回对象,如果没有的话,在根据这个下载地址重新从服务器或者本地下载。这里版本号起到了很重要的作用,举个例子,同一下载地址版本号为1的时候已经下载到本地,此时将版本号的参数改成2 那么它又会重新下载,如果还保持版本号为1那么它会从本地读取,因为本地已经有版本号为1的这个Assetbundle了。你不用担心你的资源本地下载过多,也不用自己手动删除他们,这一切的一切Unity会帮我们自动完成,它会自动删除掉下载后最不常用的Assetbundle ,如果下次需要使用的话只要提供下载地址和版本后它会重新下载。
我们在聊聊Assetbundle 中的脚本,在移动平台下Assetbundle里面放的脚本是不会被执行的,还记得我们打包前给两个Prefab挂上了脚本吗?在手机上将Assetbundle下载到本地后,加载进游戏中Prefab会自动在本地找它身上挂着的脚本,他是根据脚本的名来寻找,如果本地有这条脚本的话,Prefab会把这个脚本重新绑定在自身,并且会把打包前的参数传递进来。如果本地没有,身上挂的条脚本永远都不会被执行。
在Prefab打包前,我在编辑器上给脚本中的变量 name 赋了不同值,当Prefab重新载入游戏的时候,它身上脚本的参数也会重新输出。
如果你的Assetbundle中的Prefab上引用的对象,那么这样做就会出错了,你需要设定他们的依赖关系。或者运行时通过脚本动态的载入对象。

编译失败是 *** 作过程中错误造成的。解决方式如下:

1、首先去官方网站点击下载可用的最新ApkTool。

2、在上一步的d出窗口中点击截图红圈处的位置进行下载,由于是国外服务器点击后可能出现没反应情况,稍作等待即可。

3、下载完成后将文件放到新建的一个文件夹中,然后右键点击我的电脑选择-高级系统设置。

4、然后在高级选项中选择环境变量。

5、新建一个java环境的变量点击确定。

6、配置好java环境后在开始菜单中输入cmd,打开dos命令窗口。首先输入命令f,然后回车。

7、进入对应盘符后,在此输入命令cd apktool,然后回车进入保存ApkTooljar的文件夹中。

8、随便下载一个apk文件发到apktool所在的文件夹中,然后执行命令java -jar apktooljar d -f XXXXapk文件所在的路径。然后程序就会开始反编译

9、反编译完成后会在该文件夹内生成一个和apk同名的文件夹,apk反编译完的内容即存在于该文件夹内。

一般情况下反编译也是很难修改游戏信息的,主要是因为以下几点。
1、目前大多数游戏都是由C++开发的,这样做的好处是可以跨越Android平台和IOS平台通用,而且游戏引擎支持的更好,这种情况是无法反编译的。
2、如果游戏是根据Android原生开发的话,大多数开发者都是会对代码进行混淆,也就是所有的代码都是a,b,c这种简单的名称,很难进行阅读。
3、哪怕反编译成功,看到正常的源码,也是需要一定的开发功底,懂得每一段代码的意思,然后更改后重新打包,如果是联网游戏可能会对包进行验证,让你访问不了服务器。

不要修改了,给它派生出一个子类或编辑同一个类后把源类替换掉得了。
上述方法是通过调用这个类包派生出一系列类重新生成一个JAR文件与其共用,使它达到你想要的效果,不过现在想想这个办法工作量也不小,考虑下一个试试。
你可以把他们解压出来,然后反编译你需要改动的那个类,改动期间再进行反编译需要牵涉到的类,这样就不需要全部反编辑了。
现在我还没有别的捷径,也很想知道。
六月十五日
想把它压缩成jar文件,暂且把java独立应用程序分成两种:
1)没有用到Package的普通程序;
2)有Package的,一般有多个class文件才用的。
1)比如你写的java文件的目录是:D:\JAVA\testjava;那么你运行完会在同一目录下生成一个testclass文件,这时新建一个MANIFESTtxt文档(名字看清楚了)。
打开写入以下内容:
Manifest-Version: 10
Created-By: 150_08 (Sun Microsystems Inc)
Main-Class: test
保存为MANIFESTMF。从命令行进入到JAVA目录下,
敲入: jar cvfm testjar manifestmf test
这样就生成了testjar文件,直接点击就可以运行。
2)还是这个目录:D:\JAVA\test1java和test2java;且两个程序都中有package comchat,就是把生成的class放在里面,这时的MANIFESTMF(可以用写字板打开)
内容是:
Manifest-Version: 10
Created-By: 150_08 (Sun Microsystems Inc)
Main-Class: comchattest1
注:test1里必须有main函数。
从命令行进入到JAVA目录下,
敲入:jar cvfm t1jar manifestmf com/;test2
同理。在DOS 下
jar fc ajar a
a 是你要打包文件夹
ajar 是打包后的文件名 随便命名。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/13514111.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-08-22
下一篇 2023-08-22

发表评论

登录后才能评论

评论列表(0条)

保存