Unity3D 4.6.2版本IL2CPP编译环境下Zip压缩的Bug

最近更新到最新版本Unity3D,使用IL2CPP发布64位IOS应用的时候发现了这个问题。它导致我原来加密的文件解压不出来了,查了一天,修正了。

1. 在github下载zip的原码,https://codeload.github.com/0xd4d/de4dot/zip/master

2. 直接放在unity3d工程下,编译的时候,编译器会直接覆盖系统自带的zip。

3. 修改源文件:~/Zip/Compression/Streams/StreamManipulator.cs

From

				buffer_ |= (uint)((window_[windowStart_++] & 0xff |
								 (window_[windowStart_++] & 0xff) << 8) << bitsInBuffer_);

To

				byte [] aBuf = new byte[2];
				aBuf[0] = window_[windowStart_++];
				aBuf[1] = window_[windowStart_++];

				buffer_ |= (uint)(( (aBuf[0] & 0xff) | ((aBuf[1] & 0xff) << 8) ) << bitsInBuffer_);

PS: 这个问题,可以说是IL2CPP的编译方式的问题,也可以说这行代码写得兼容性不太好,看理解吧!

求大公司工作机会!

时间: 2024-10-05 11:49:18

Unity3D 4.6.2版本IL2CPP编译环境下Zip压缩的Bug的相关文章

gradle 编译环境下进行android单元测试

====== android 单元测试介绍 ====== JUnit是一个开源的java单元测试框架,android的测试套件是基于JUnit 3的(不完全兼容JUnit 4),Junit4只需简单了解即可,可以使用普通的junit来进行测试,推荐使用android的Junit测试框架进行高效全面的进行测试. ====== Android 单元测试框架UML ====== {{:dolphin_news:share:androidjunituml.png?300 |}} ====== eclip

[ZZ] 如何在多版本anaconda python环境下转换spyder

https://www.zhihu.com/people/alexwhu/answers 使用anaconda的话,可以参考以下步骤: 1.打开anaconda navigator,选择左侧的环境菜单 Environments,在中间会列出当前已经配置好的各种环境名称,如root.tensorflow等 &amp;amp;amp;amp;lt;img src="https://pic1.zhimg.com/v2-795b6c54d393a952019b112d870d6e40_b.png

MongoDB 3.2版本在windows环境下的安装与配置

1.概述 MongoDB从版本2.2之后就不在支持windows XP系统,请使用最近发布的版本. 1.1 系统要求 MongoDB社区版要求Windows Server 2008R2,Windows Vista以上的版本,官网是以.msi形式提供安装包,可自行从官网上找到所需的版本.(一般带有Legacy的版本都是旧版).可以在cmd或者powershell中运行一下命令,检测系统版本和位数,根据此信息去寻找合适的安装包. wmic os get caption //或者 wmic os ge

用最新MySQL 8.0的源安装MySQL 5.7版本(CentOS 7环境下)

起因: 从官网下了MySQL最新8.0版本的源,安装了MySQL 8.0.13,但是发现版本太新了跟其他软件不兼容,而且改了半天其他软件配置都没改好(囧rz)...算了,卸载了8.0,还是安回5.7的老版本吧. 在网上搜了一大圈,都没看到最新的源是怎么安装老版本的,最后还是在官网看了官方文档解决的.谢谢官网文档,哈哈哈. 一.操作系统和软件版本介绍 1.操作系统 CentOS Linux release 7.6.1810 (Core) 2.官网下载的MySQL源版本 mysql80-commun

Linux环境下文件压缩及解压

Linux压缩保留源文件的方法:gzip –c filename > filename.gzLinux解压缩保留源文件的方法:gunzip –c filename.gz > filenamegunzip的用法  1.作用gunzip命令作用是解压文件,使用权限是所有用户.2.格式gunzip [-acfhlLnNqrtvV][-s ][文件...]或者gunzip [-acfhlLnNqrtvV][-s ][目录]3.主要参数-a或--ascii:使用ASCII文字模式.-c或--stdout

AlwaysOn环境下的压缩Log文件方法

Step1.将DB脱离可用性组 Step2.修改为简单恢复模式>收缩文件>修改回完整恢复模式 -- Truncate the log by changing the database recovery model to SIMPLE. ALTER DATABASE [DB] SET RECOVERY SIMPLE; GO -- Shrink the truncated log file to 1 MB. DBCC SHRINKFILE (DB_Log, 100); GO -- Reset th

windows系统OLLVM + NDK 混淆编译环境搭建

一.环境搭建: 系统:win10_X64 ndk版本:ndk-r12b(ndk-r12b后续版本也适用) cmake-3.9.1-win64-x64.msi  用于针对不同编译器生成源代码构建文件,如使用VS则生成(.sln)等VS配置文件,如果使用gcc则生成(Makefile) mingw-w64-install.exe  基于windows的GNU gcc编译器 python2.7  跑python脚本,不要使用3.0及以上版本 cmake,mingw,python下载地址(百度网盘):h

各种环境下的渗透测试

转载来源:http://drops.wooyun.org/tips/411 getshell: 找到切入点后,首先是要弹个shell,一般我用back.py 配合nc使用,nc监听端口就不说了. back.py会自动去掉各种history记录,确保shell断掉的时候不会被记录到bash_history里面 ssh各种姿势 反弹内网端口: ssh有几个比较重要的参数: -f: 连接成功后切换到后台,不会占用当前的shell,shell断了也会继续执行,相当于 nohup和&. -N: 连接后不调

Visual Studio 2013环境下操作vc6/vc7/vc8等低版本平台项目【编译|生成|调试】

现代化的开发环境,微软一直在推出更新换代,我们所处的技术环境在日新月异的变化:不过在中国多数人们一边疲惫的追赶着时代的步伐,一边坚守着自己所获悉所掌握的那些紧吧吧的知本.对技术工具的掌握并非他们所想要,人人都是想借助工具作用以实现目标.所以,对于一段时间来而言,谁赶出了作品,谁就赢得了先机从此吸聚一大批人力来驱动其事业的成长.只是不过,如果只是赶出了一时间的作品,而从此只就其上迭代运作而不再从外吸纳新鲜的技术气氛,那可能解体终有一日. 从VC6到VC2008,再到2010.2013,到现在已经是