感谢**Misaka00000**的开源项目。原项目似乎不再继续维护,故本项目在该版本基础上进行优化。
本工具旨在对某手游ToaruIF资源文件进行解密操作,仅供交流学习,不保证游戏更新后工具依然有效。
该手游资源加密方式大致如下:
- 偏移(Offset)
- 偏移固定字节
- 重复偏移固定字节
- 异或(Xor)
- 单字节异或(0x00~0xFF)
- 字符串异或(128bytes或256bytes字符串)
针对 Offset 类,读取文件头信息将多余字节舍弃。
针对 Xor 类单字节加密,识别字节并进行异或。
针对 Xor 类字符串加密,需keys.bin文件。由于2022.11.11*版本Unity更新修改了加密字符串(即所需的keys.bin需要更新),故该版本更新之后的资源文件需更新后的bin文件进行解密处理。
针对keys.bin的构成及原理不在本项目研究范畴,请自行解决。
- 优化完善了2大类解密方式的处理
- 增加了目录迭代,输入目录可为多级目录
- 针对异或类解密文件,可将解密后的文件再输入本程序可进行加密
基本说明
ToaruIFDecrypter
Usage:
ToaruIFDecrypter [options] [command]
Options:
--version Show version information
-?, -h, --help Show help and usage information
Commands:
d, decrypt Decrypt AssetBundles
使用默认keys.bin
ToaruIFDecrypter.exe d -i <input floder> -o <output floder>
使用自己的keys.bin
ToaruIFDecrypter.exe d -k <keys.bin> -i <input floder> -o <output floder>
- 建议可使用bat脚本简化工具使用流程。(非必须)
set rootpath="Your EXE root path"
set outpath="Your Output path"
set EXEname=ToaruIFDecrypter.exe
@echo off
cls
set input=:
set "input=%1"
:: 上面这句为判断%input%中是否存在引号,有则剔除。
if not exist %outpath% md %outpath%
if "%input%"==":" goto input
if not exist "%input%" goto input
cd "%rootpath%"
start "" /b /w "%rootpath%\%EXEname%" d -i "%input%" -o "%outpath%"
pause
保存为xxx.bat(xxx为任意文件名),并将需解密的文件夹拖入该脚本即可实现解密。