查看“逆向:程序研究/AT1/资源文件IO及虚拟文件系统”的源代码
←
逆向:程序研究/AT1/资源文件IO及虚拟文件系统
跳转到导航
跳转到搜索
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
资源文件和资源虚拟文件系统(RPK)的相关例程。以下地址全部为日版原始镜像地址。其他程序的地址推荐使用程序相似度分析获取。 host指主机文件系统,即host:,在PCSX2上需配置开启,在PS2上可通过特殊的软件(如DECI2)开启,并连接到远端文件系统。挂载到根host:或host0:。 == 资源VFS初始化 == 存在两个同职能函数。102190和1021D0。还需进一步检查。1021D0进行更少的初始化,并且设置初始化类型(-0x7ED0($gp))为0;102190则设置为1。1表示使用ADXFS。 其中102190还会预载afs。 == 资源加载 == 资源加载有多个方式。不同的系统采用分别的函数加载。文件类型的判断依赖于文件后缀。例如,.lzr压缩过的意味着文件后缀为.lzr,会尝试lzr解压缩。 * FP加载:文件包加载。载入文件包后,文件包内尝试lzr压缩过的及原始文件。 * RPK加载(102298):尝试lzr压缩过的,gz压缩过的及原始文件打开。 === RPK资源大小获取 === 地址:102F68 如果初始化类型为1,则从host打开文件、获取文件大小,否则从光碟(?cvFs)获取文件大小。 === RPK加载 === 有一个统一的包装函数10257C。由该函数决定调用以下三者之一: * 光碟上的RPK(102A1C) * Host上的RPK(102C0C) * Host文件系统(102DB0) ※虽然说是由函数决定,但是该决定发生在编译时。即GUST通过修改10257C调用的函数来决定使用哪一种加载策略。 ※如果初始化类型(-0x7ED0($gp))设为1,则以上三者皆使用同一种逻辑读取。 === 修改思路 === 直接修改102F68(get_resource_size)及102A1C(load_Disc_Rpk_Resource),无视初始化类型(-0x7ED0($gp)),优先从host读取文件。失败时回滚。 或者修改包装函数10257C,但需要注意维护102F68。
返回
逆向:程序研究/AT1/资源文件IO及虚拟文件系统
。
导航菜单
个人工具
创建账号
登录
命名空间
逆向
讨论
大陆简体
查看
阅读
查看源代码
查看历史
更多
搜索
导航
首页
最近更改
随机页面
MediaWiki帮助
工具
链入页面
相关更改
特殊页面
页面信息