15 KiB
WinRAR Keygen
Principle of WinRAR key generation
1. WinRAR是什么?
WinRAR 是一款用于管理压缩包文件的共享软件。其算法由作者尤金·罗谢尔研发,享有原创专利。
它可以用来创建或浏览 RAR、ZIP 等众多格式的压缩包。
WinRAR 不是免费软件。如果你想使用它,你应当向 RARLAB 付费,然后获得一个授权文件 rarreg.key。
这份 repo 将会告诉你 rarreg.key 是如何生成的。
2. "rarreg.key"是如何生成的?
见 这里。
3. 使用方法
有多种方法可供选择:
4. 编码说明
WinRAR Keygen 支持 ASCII、ANSI 和 UTF-8 三种编码类型,以下是三种编码的简单说明:
Warning
建议暂时先不要使用 ANSI 编码方式,因为在 Windows Server 2022 上中文、日语和韩语的 PowerShell 控制台字符会出现乱码问题,微软正在修复该问题。
| 编码 | 说明 | 支持的字符 |
|---|---|---|
| ASCII | 单字节编码,只使用最下面的 7 位,没有重音符号等 | 仅支持 ASCII 字符 |
| ANSI | 没有一种固定的 ANSI 编码。通常说的 ANSI 是指 “系统默认的本地/代码页”,它通过 Encoding.Default 获得,通常是 Windows-1252,但也可以是其他本地 | 仅支持 ASCII 字符和您操作系统所设国家或地区的语言编码 |
| UTF8 | 可变长度编码,每个码位 1-4 个字节。ASCII 值用 1 个字节编码为 ASCII | 支持 UTF-8 编码字符 |
5. License 类型
WinRAR license 有 rarreg.key 和 rarkey.rar 两种类型,它们仅在导入上有区别:
| 拖动导入或放于指定位置 | 双击运行自动导入 |
6. 使用 Github Actions
点击展开
新的 workflow 能很方便的帮助你生成 license,你只需跟随以下步骤即可:
你的 Username 和 License Name 会出现在 Actions 日志中,如果你不想泄露这些信息,请参考 7. 使用 Github Actions with secrets。
6.1 Fork
点击该项目右上角的 Fork 按钮,fork 一份代码到你的 Github:
6.2 允许 Fork 仓库运行 Workflows
返回到你刚刚 fork 完成的 repo,然后点击 Actions 去允许 workflows 在你的 fork repo 中运行:
6.3 运行 WinRAR Keygen
允许 workflow 后,选择 WinRAR Keygen > Run workflow 并填入信息就可以开始生成了:
License 编码的区别请参考 4. 编码说明。
运行成功之后,打开对应的任务,选择 rarreg_file 下载:
文件保留 90 天,超出时间后会自动销毁。
将 rarreg_file.zip 解压缩后会得到 rarreg.key,然后拖动导入 WinRAR 即可。你也可以将 rarreg.key 压缩成 rarkey.rar,然后双击运行,授权导入将会自动进行。
如果你得到的是 key 是无效的,请查看 解决方法。
7. 使用 Github Actions with secrets
点击展开
使用 Secrets 可以帮助你隐藏 license 信息。
7.1 Fork
点击该项目右上角的 Fork 按钮,fork 一份代码到你的 Github:
7.2 允许 Fork 仓库运行 Workflows
返回到你刚刚 fork 完成的 repo,然后点击 Actions 去允许 workflows 在你的 fork repo 中运行:
7.3 创建 Secrets
允许 workflows 后,进入 Settings > Secrets and variables > Actions > New repository secret 来创建 Secrets:
创建三个 Secrets,名称为 TEXT1 、 TEXT2 和 PWD,并填入相关值:
填入的值应与你选择的编码类型保持一致。
| Secrets Name | Explanation |
|---|---|
| TEXT1 | 用户名 |
| TEXT2 | 许可名 |
| PWD | 压缩包密码 |
创建完成后,你将会看到:
7.4 运行 Workflow
进入 Actions 选择 WinRAR Keygen with secrets > Run workflow 并填入信息:
License 编码的区别请参考 4. 编码说明。
运行成功之后,打开对应的任务,选择 rarreg_file 下载:
文件仅保留 1 天,请及时下载。
将 rarreg_file.zip 解压缩后会得到 rarreg.7z,使用你设置的密码进行解压缩获得 rarreg.key,然后拖动导入 WinRAR 即可。你也可以将 rarreg.key 压缩成 rarkey.rar,然后双击运行,授权导入将会自动进行。
如果你得到的是 key 是无效的,请查看 解决方法。
8. 通过 Visual Studio 编译使用
点击展开
我建议通过 Github Actions 的方法来使用,但是你仍然可以选择自行编译。
如果你不想自行编译,也可以到 Release 页面获取对应版本的 winrar-keygen.exe。
8.1 前提条件
-
请确保你有 Visual Studio 2022,因为这是一个 VS2022 项目。如果你仍在使用 Visual Studio 2019,可以在 vs2019 分支中找到适合 VS2019 的项目,但是此分支将不再维护。
-
请确保你安装了
vcpkg以及下面几个库:mpir:x86-windows-static
mpir:x64-windows-static
你可以通过下的命令来安装:
$ vcpkg install mpir:x86-windows-static $ vcpkg install mpir:x64-windows-static -
你的
vcpkg与 Visual Studio 整合了,即你曾成功运行了下面这条命令:$ vcpkg integrate install
8.2 编译
- 在 Visual Studio 中打开这个项目;
- 选择
Release配置; - 选择 生成 > 生成解决方案。
你将在 bin/ 目录下看到生成的文件。
8.3 如何使用?
直接在终端执行以下代码,配置两个参数即可生成 rarreg.key。
这里以 Github 和 Single PC usage license 用 ASCII 编码为例:
Usage:
winrar-keygen.exe <Username> <License Name>
Example:
winrar-keygen.exe "Github" "Single PC usage license"
or:
winrar-keygen.exe "Github" "Github.com" | Out-File -Encoding ASCII rarreg.key
现在你可以看到新生成的文件:
RAR registration data
Github
Single PC usage license
UID=3a3d02329a32b63da7d8
6412212250a7d8753c5e7037d83011171578c57042fa30c506caae
9954e4853d415ec594e46017cb3db740bc4b32e47aea25db62f350
9f22065a27da4f8216d2938e1050b6e3347501a3767d1fdd7ee130
dd4ab952600ba16a99236d910bfa995d5f60651ec451f462511507
95b3722d059f2d5303a231e396cf21f17098edeec0b6e3347501a3
767d1fdd7ee45388769767642338ee8a63178f3458b71de5609b18
5eede7ed46566b10bf033daa6384062b259194b1acbd0378116064
将生成的信息以 ANSI 编码 的文本格式保存为 rarreg.key。
8.4 多语言的支持
使用 ANSI 编码时,你只能使用你操作系统所在国家或地区的字符。ANSI 编码从 Powershell 7.4 以后开始支持,你还需要升级你的 Powershell。
用 ANSI 编码生成多语言的 license:
winrar-keygen.exe "简体中文" "license" | Out-File -Encoding ansi rarreg.key
winrar-keygen.exe "繁體中文" "license" | Out-File -Encoding ansi rarreg.key
winrar-keygen.exe "Deutsch" "license" | Out-File -Encoding ansi rarreg.key
winrar-keygen.exe "Français" "license" | Out-File -Encoding ansi rarreg.key
winrar-keygen.exe "日本語" "license" | Out-File -Encoding ansi rarreg.key
winrar-keygen.exe "한국어" "license" | Out-File -Encoding ansi rarreg.key
使用 UTF-8 编码生成多语言的 license 时,你可能需要在 “控制面板 > 时钟和区域 > 区域 > 管理 > 更改系统区域设置 ” 中勾选使用 “Beta版:使用Unicode UTF-8提供全球语言支持” 才能正确的处理数据。但是不建议你这么操作,这可能会导致很多软件无法正常运行,建议使用 Github Actions。
用 UTF-8 编码生成多语言的 license:
utf8:是为了保证在不同语言的 WinRAR 中做到不变的字符表示。
winrar-keygen.exe "utf8:简体中文" "license" | Out-File -Encoding utf8 rarreg.key
winrar-keygen.exe "utf8:繁體中文" "license" | Out-File -Encoding utf8 rarreg.key
winrar-keygen.exe "utf8:Deutsch" "license" | Out-File -Encoding utf8 rarreg.key
winrar-keygen.exe "utf8:Français" "license" | Out-File -Encoding utf8 rarreg.key
winrar-keygen.exe "utf8:日本語" "license" | Out-File -Encoding utf8 rarreg.key
winrar-keygen.exe "utf8:한국어" "license" | Out-File -Encoding utf8 rarreg.key
9. 无效的 Key
为什么我生成的 rarreg.key 是无效的?
9.1 编码不正确
参数 TEXT1 和 TEXT2 需要满足对应的编码要求:
winrar-keygen.exe <TEXT1> <TEXT2>
具体可参考原理文档:授权文件"rarreg.key"的生成
9.2 文件储存编码
如果你使用了如下命令:
winrar-keygen.exe "Github" "Single PC usage license" > rarreg.key
在较新的 Windows 10 系统中,PowerShell 将默认以 UTF16-LE 格式导出,这将会导致错误。
请指定输出编码格式,例如:
winrar-keygen.exe "Github" "Github.com" | Out-File -Encoding ASCII rarreg.key
9.3 Key 的位置
如果你无法执行拖动操作,你可以尝试把 rarreg.key 放置与以下目录中:
C:\Users\yourname\AppData\Roaming\WinRAR\rarreg.key
你也可以将 rarreg.key 压缩成 rarkey.rar 然后双击运行,授权导入将会自动进行。
9.4 关于简体中文版
在 RARLAB 下载的简体中文版 WinRAR 将会自带广告组件,即使使用了 rarreg.key 授权,广告组件依旧会出现。这是由于简体中文代理商的一些意见,RARLAB 已将简体中文安装包的公开链接更换成了带有广告的简体中文安装包。
感谢 @hoochanlon 提供的一些方法。可以使用 win-rar-extractor 获取简体中文商业版的下载连接;也可以根据商业版的地址规律,获取相应版本的简体中文安装包:
简体中文商业版(以 6.11 版本为例):
win-rar 渠道:
https://www.win-rar.com/fileadmin/winrar-versions/sc/sc20220317/rrlb/winrar-x64-611sc.exe
简体中文广告版(以 6.11 版本为例):
win-rar 渠道:
https://www.win-rar.com/fileadmin/winrar-versions/winrar/winrar-x64-611sc.exe
rarlab 渠道:
https://www.rarlab.com/rar/winrar-x64-611sc.exe
请注意区分上述连接地址,更多方法可以查看 Issues #14 和 Issues #19。
10. 贡献
10.1 反馈和建议
如果您遇到了一些问题,可在 Issues 页面反馈,会有很多热心的开发者及 Github 用户帮助你。
该项目欢迎贡献和建议,您可以在 Issues 提出建议,或者进行提交拉取请求 😄
10.2 感谢
非常感谢一些热心的开发者,在 Issues 帮助解答一些问题。
🏆 特别感谢 @Sonic-The-Hedgehog-LNK1123
11. 许可
使用 MIT License
















