ehrhart/devils-crush-tg16-keygen
GitHub: ehrhart/devils-crush-tg16-keygen
逆向工程并实现了 TurboGrafx-16 游戏 Devil's Crush 的密码编码与解码算法,附带完整的分析文档和 Web 演示。
Stars: 0 | Forks: 0
# devils-crush-tg16-keygen
TurboGrafx-16 / PC Engine 上 **Devil's Crush** 的密码编码器和解码器(美版,ROM `Devil's Crush (USA).pce`,CRC32 `157B4492`)。
Devil's Crush 的密码由 10 个字母(1 人模式)或 18 个字母(2 人模式)组成,全部为 `A-Z`。它编码了玩家的分数(显示值,100 的倍数,最高可达 1,677,721,500)以及一个“balls”字节。最后一个字母是校验和。
本仓库包含:
- `devilpw/` - Python 库和 CLI。
- `docs/index.html` - Web 生成器演示的源代码。
- `notes/analysis.md` - 算法的完整逆向工程说明文档。
## Web 演示
可用于生成密码的 Web 版本可在 获取
## 安装
```
git clone https://github.com/ehrhart/devils-crush-tg16-keygen.git
cd devils-crush-tg16-keygen
uv run devilpw decode DEVILSATAN
```
## CLI
```
# 解码现有密码
devilpw decode DEVILSATAN
# 为指定分数和球数生成 1P 密码
devilpw encode --score 100000000 --balls 9
devilpw encode --score 100000000 --balls 0x10 --seed F
# 生成 18 位 2P 密码
devilpw encode2p --p1-score 100000000 --p1-balls 5 \
--p2-score 50000000 --p2-balls 5
# 查找包含特定字符串的密码
devilpw search SATAN
devilpw search DEVIL --limit 50
devilpw search CRUSH --2p
```
`--balls` 接受十进制或 `0x` 前缀的十六进制数。`--seed` 是前导字母(任何 `A..Z`;如果所选种子无法表示目标字节,编码器将尝试替代方案)。`search` 用于查找包含给定子串的密码。`--2p` 搜索 18 个字符的密码;`--limit N` 限制结果数量(默认为 20)。
## 库
```
from devilpw import decode, encode_1p, encode_2p, search, verify_checksum
verify_checksum("DEVILSATAN")
# True
decode("DEVILSATAN")
# {'p1_bytes': (...), 'p1_score': 955_719_100, 'p1_balls_byte': 6}
encode_1p(score=100_000_000, balls_byte=9)
# 'AAA...'
encode_2p(p1_score=100_000_000, p1_balls_byte=5,
p2_score= 50_000_000, p2_balls_byte=5)
search("DEVIL")
# ['DEVILAAAAI', 'DEVILAAABJ', ...]
```
## 工作原理
完整的逆向工程分析可在 [`notes/analysis.md`](notes/analysis.md) 中找到。
## 许可证
本项目基于 MIT 许可证授权。详情请参阅 [LICENSE](LICENSE)。
标签:Devils Crush, PC Engine, Python, TurboGrafx-16, 云资产清单, 哈希校验, 复古游戏, 多模态安全, 密码学, 密码生成器, 手动系统调用, 数据可视化, 无后门, 游戏修改, 游戏存档, 算法分析, 编码解码, 逆向工具, 逆向工程