wololo讲解:HBL为何无法运行PSP游戏的ISO

互联网 | 编辑: 2012-06-14 09:36:21 返回原文

HBL上要求最多的功能就是ISO Loader:很多“开发员”承诺放出HBL的ISO Loader,不过迄今为止没人能成功编写出这个程序。为了理解ISO Loader是什么和为什么它不能在HBL运行,首先,我们需要了解.iso文件到底是什么。

HBL上要求最多的功能就是ISO Loader:很多“开发员”承诺放出HBL的ISO Loader,不过迄今为止没人能成功编写出这个程序。为了理解ISO Loader是什么和为什么它不能在HBL运行,首先,我们需要了解.iso文件到底是什么。

什么是ISO文件?

ISO 9660是光盘(CD,DVD,甚至UMD都使用这种格式)的一种文件系统标准格式。如果你是一个开发员,就很容易执行这种格式,而且它也被广泛运用,用以记录文件。

.iso文件是光盘的原始镜像,你可以把它烧录到光盘上,或者用一些软件来安装它,所有的一切只不过是执行了ISO 9660文件系统。

如果你有一个CFW(自制系统),而它既可以运行ISO又具备VSH菜单的话,你就会注意到在VSH菜单有一个选项叫做“ISO Driver”:通常,自制系统拥有不止一个文件执行系统(驱动),每一个都有自己的优势,运行方式也不同(一些执行缓冲,另外的执行.cso支持等)。

OFW(官方系统)本身有ISO驱动,因为UMD也使用那个文件系统:一些CFW驱动只是对那个驱动做了些修改,让它可以运行你的.iso文件。

你现在可能就会问自己了“同样的事情难道HBL不能做到吗?”

嗯,HBL不能修改OFW驱动是因为(OFW)需要核心权限,它(OFW)位于核心内存中,而HBL在用户权限中运行:它(HBL)根本不能读写核心内存!HBL不能运行核心权限下的驱动(做到像CFW一样)是因为这需要获得一些核心权限下独有的函数(比如sceIoAddDrv)。

不过,从UMD dump出的.iso文件包含了一些资源文件和。。。EBOOT.BIN文件,那个是什么东西呢?

HBL不能执行ISO格式文件么?

你ISO文件里的EBOOT.bin只是一个用户权限下的可执行文件(ELF或PRX),那么从技术上来说HBL可以执行9660文件系统,获得EBOOT.BIN并加载它吗?

没那么快!首先,那个可执行文件加密了,解密的话需要核心权限。不过,你可以轻松绕过核心权限——在破解的PSP上解密这个可执行文件就行了。

关键问题是有些有些游戏捆绑了一些核心权限模块(不确定为什么,可能是出于向后兼容的考虑)。

当PSP系统从UMD执行一个游戏程序时,它会寻找那些模块,同时允许游戏加载它们来覆盖一些OFW(官方系统)模块。

这不会使系统从一定程度上变得易受攻击么?可能吧,不过因为只有认证的软件公司才能往UMD里烧录镜像,所以风险也不大。

HBL只是无法加载那些模块,因为加载核心模块需要核心权限;把ISO包装成一个“合法的”UMD可以让OFW为我们大开绿灯,不过那也需要核心权限驱动。

所以,当HBL执行一个需要某些“额外”模块的游戏程序时,那个游戏就不能运行,因为它很可能会检验那些模块是否被加载。

结论

我希望现在你已经能理解为什么们这些开发员会觉得这样的要求如此烦人了。同样,让我们面对这个问题吧,大部分要求获得ISO Loader的人是盗版软件使用者:我不是指那些真正因为怕游戏文件丢失而备份游戏的人,不过他们只是“这群(要求获得ISO Loader的)人”中的一小部分。

更多精彩游戏资讯,请点击进入PChome游戏中心

玩家交流群:230752404

返回原文

本文导航

相关阅读

每日精选

点击查看更多

首页 手机 数码相机 笔记本 游戏 DIY硬件 硬件外设 办公中心 数字家电 平板电脑