Unity国际版下载

Unity国际版本和大陆版本现在是完全独立的两个分支了。我一直以来都是用国际版本,很早就习惯了国际版本,基本没有用过本地化功能。

Unity 完美补丁 UniHacker (已经被和谐了,只剩下代码了,没有可供下载的Release版本)

采用完美补丁可以获得比较流畅的unity开发体验,缺点是版本比较老了,但是基本的开发流程是一样的;对于个人开发者来说可以用免费个人版本,常用的功能与专业版差不太多,缺点是它有联网验证的要求,没有网络或者网络不稳定的情况下,是不能打开编辑器的,并且使用并不流畅,卡顿明显。

UniHacker 破解方法分析

目前UniHacker Github内容已经被和谐了,但是从网络上还是可以找到其源码的,但对应的可运行程序就没有了。那么,UniHacker是怎么实现破解功能的呢?在只有源码的情况下,除了编译项目源码为可运行程序,是否还有其他的方式可以达到同样的目的呢?

查看 UniHacker/Patcher/Unity/UnityPatchInfos.cs,可以看到如下代码:

static readonly List<UnityPatchInfo> WindowsPatches = new()
{
    new()
    {
        // 3.x的跟其他版本的破解流程不一样,所以就不放进来了
        Version = "3.0",
    },
    new()
    {
        Version = "4.0",
        Architecture = ArchitectureType.Windows_I386,
        LightPattern = ToBytes(0x55, 0x8B, 0xEC, 0x83, 0xEC, 0x08, 0x53, 0x56, 0x8B, 0xF1, 0x80, 0x7E, 0x04),
        DarkPattern = ToBytes(0xB0, 0x01, 0xC3, 0x83, 0xEC, 0x08, 0x53, 0x56, 0x8B, 0xF1, 0x80, 0x7E, 0x04),
    },
    new()
    {
        Version = "5.0",
        Architecture = ArchitectureType.Windows_I386,
        LightPattern = ToBytes(0x55, 0x8B, 0xEC, 0x83, 0xEC, 0x08, 0x53, 0x56, 0x8B, 0xF1, 0x80, 0x7E),
        DarkPattern = ToBytes(0xB0, 0x01, 0xC3, 0x83, 0xEC, 0x08, 0x53, 0x56, 0x8B, 0xF1, 0x80, 0x7E),
    },
// ...
}

看了上面的源码,不难看出它所采用的方式就是对 Unity.exe 里的 特征码 进行替换来实现的!

聪明的你是否可以想到,把这些 特征码替换码 提出出来,写一段简单的python脚本对 二进制文件(也就是 unity.exe)作 二进制字节序列搜索匹配和替换 即可。

这是一个非常简单、明确的工作,可交由 ChatGPT 等类似的AI工具来编写脚本,也就几分钟的事情了。

有一件事情值得注意的是,ChatGPT等AI工具有自己的价值主张,你与它的对话中最好不要提及 破解Unity 字样,否则它会明确的拒绝你的请求。不信,你可以直接向ChatGPT 要答案:怎么破击Unity,看看它会怎么回答你!

Unity 2022.2+ 完美补丁

到了 Unity 2022.2+ 之后,Unity的补丁历史进入了一个不同的阶段:在它之前的版本用UniHacker, 而从它开始就采用不同的补丁方式了。

关于Unity破解版这里用到以下两个用于破解软件的链接:

两个GitHub工程的对应Unity项目的破解关系是:

UniHacker → Unity Hub
unilic → Unity

正常情况下UniHacker可以同时破解 Unity 和 Unity Hub,由于UniHacker可以破解的Unity版本不能高于2022.2所以我们另外使用unilic破解Unity。

unilic 使用过程如下(该方式不再修改unity.exe文件,而是生成 unity许可证 以及 替换System.Security.Cryptography.Xml.dll文件 ):

  1. 准备许可证请求文件:打开hub后点击齿轮图标偏好设置的许可证,点击添加-通过许可证请求激活-下载许可证请求-创建许可证请求,生成Unity_lic.alf文件。
  2. 生成许可证:打开LicenseGenerate.exe文件后选择刚才生成的alf文件,无需勾选是否在此工具所在目录,直接点击创建 unity许可证,即可自动生成许可证。
  3. 破解unityhub:退出关闭unityhub后再打开UniHacker,指定unityhub安装路径后破解hub
  4. 破解unity:替换unity客户端目录下Editor\Data\Resources\Licensing\Client\System.Security.Cryptography.Xml.dll文件。

破解成功后,可打开原始项目。

踩坑

  1. Unity Hub 版本不能太高 如果只破解了Unity而没有破解Unity Hub(或Unity Hub的版本过高,如图中3.7版)则会在打开项目的时候反复弹窗确认登录信息。
  2. 破解前,先备份 C:\ProgramData\Unity\Unity_lic.ulf 文件,若未破解成功,可能仍然会覆盖该文件,备份可以防之前可用的Unity不能用了
  3. 如果一台机器上安装了多个Unity版本(这是经常发生的事情),其安装的顺序是从老版本到新版本,或者从老的发布日期到新的发布日期,这样可以保证新旧Unity版本都能用。否则,就有可能出现这个情况:先安装unity2018, 后安装了一个unity2017版本(该版本比之前unity2018版本发布日期更早),就可能会出现 unity2017可用,而之前安装的unity 2018 不能用。对这个问题的解决办法是,针对不同的版本保存一个对应的 Unity_lic.ulf 文件,需要用那个版本就用哪个的 Unity_lic.ulf 拷贝到 C:\ProgramData\Unity\ 目录下。

注意

本文讲述了各个Unity版本的破解方法,并不是倡导使用破解版本,仅供学习和练习之用。如果你将Unity用于商用,并且确实用它赚到了钱,那么你确实需要购买Unity许可证来支持Unity!毕竟,只有Unity存在,才会有Unity开发者的存在!

参考

https://zade23.github.io/2024/04/22/%E3%80%90Unity%E3%80%91%E7%A0%B4%E8%A7%A3%E7%89%88%E5%AE%89%E8%A3%85%E6%8C%87%E5%8C%97/index.html