level 7
[cngba.com] kindenji 原创:
boot.bin 和 eboot.bin 的区别
这两个文件都存在于 UMD/ISO 的 /PSP_GAME/SYSDIR 目录内,它们两者的本质是一样的,主要用于设置 PSP 游戏的运行环境,包括系统需求,频率设置,内存分配,资源路径等等。区别在于以前游戏的 boot.bin 是没有加密的,它的存在主要用于验证加密算法以及解密模块的追踪和调试;而 eboot.bin 是加了密的,因此 eboot.bin 可以理解为 Encrypted boot.bin,也就是加了密的 boot.bin。在以前的游戏中,boot.bin 含有具体数据并且系统需求是明文,因此自制系统里面有一个高级选项:通过直接执行 boot.bin 来启动游戏,该高级选项位于恢复菜单 Advanced->Advanced configuration->Execute boot.bin in UMD/ISO。在自制系统中启用该选项的话,有时候的确能在低版本系统中运行一些本来需要更高系统版本才能运行的游戏,譬如在 $ony 刚发布 5.00 系统的那段时间,有部分游戏是通过直接修改 boot.bin 的系统版本需求,并打开直接执行 boot.bin 选项来运行的,后来 $ony 封堵了这个漏洞,用 "00" 来对 boot.bin 进行填充,也就是“空”文件,不含任何数据,因此现在这条路已经行不通了。
PSP 的数据储存和处理
PSP 的 CPU 是 32 位 RISC 架构,数据储存是低位在前,高位在后,但 CPU 在处理数据的时候要反过来变成高位在前,低位在后。用过 IdStorageManager 或 KeyCleaner 的人应该有印象,key 从 Flash 中 dump 出来之后是反过来显示的,比如 0x0007 TA85/86/88 的亮度控制 key,首 4 位字节是 "APaD",实际用 16 进制编辑器读出来是 "DaPA"。
如何区分未加密、已加密和已解密 eboot.bin 文件
可以用 16 进制编辑器查看。未加密文件头为 " PBP" 实际对于 PSP 来说是 "PBP ",相当于 Windows 的 .exe 可执行文件,虽说是未加密实际上还是用 Gzip 进行了封包;已加密文件头为 "~PSP" 实际对于 PSP 来说是 "PSP~",相当于 Windows 的压缩文件(譬如 Zip/RAR/7z 等),需要解包之后才能运行;已解密文件头为 " ELF" 实际对于 PSP 来说是 "FLE ",不能直接执行,但可以通过进程加载调用,相当于 Windows 的 .dll 文件。
$ony 采用的加密算法
$ony 采用的加密算法目前包括 Gzip,R
lz
,Kl3e/Kl4e。其中 Gzip 是从 1.50 开始使用的,Rlz 是从 2.71 开始使用的,Kl3e/Kl4e 是从 3.80 开始使用的。
什么是 Tag,它有什么作用
Tag 是保存在 eboot.bin 文件中 0xD0 开始的 4 位字节。是用于区分文件加密法则的标签,告诉 PSP 该文件应该如何来进行解密。
各系统版本的 Tag 基本如下表所示:
Tag 0x08000000 - 1.xx eboot.bin
Tag 0xC0CB167C - 2.xx eboot.bin
Tag 0x8004FD03 - 2.71 eboot.bin
Tag 0xD91605F0 - 2.8x eboot.bin
Tag 0xD91606F0 - 3.xx eboot.bin
Tag 0xD91607F0 - 3.71 eboot.bin
Tag 0xD91608F0 - 3.8x eboot.bin
2010年02月21日 03点02分