返回列表 发布新帖
查看: 720|回复: 0

【教程】高版本系统sysmodule移植5.05教程

2万

主题

1万

回帖

12万

积分

管理员

积分
125064
发表于 2024-7-1 13:40:31 | 查看全部 |阅读模式

【教程】高版本系统sysmodule移植5.05教程!部分游戏使用高版本的sysmodule,导致在5.05系统上无法正常运行,需要将高版本的sysmodule移植到5.05上,需要配合IDA分析eboot.bin解决

  部分游戏使用高版本的sysmodule,导致在5.05系统上无法正常运行,需要将高版本的sysmodule移植到5.05上

  需要配合IDA分析eboot.bin解决

  比如创轨调用了SCE_SYSMODULE_CES_CS这个模块,这个是在6.72上才有的模块,需要dump ps4系统的libSceCesCS.sprx(路径在systemcommonliblibSceCesCs.sprx)

  1、首先使用IDA检查eboot.bin的sceSysmoduleLoadModule调用,看是否有高版本调用,我们可以发现地址0x05141B调用了sceSysmoduleLoadModule(0x10C)

【教程】高版本系统sysmodule移植5.05教程-1.jpg

  2、写一段prx loader代码,实现自定义模块载入,代码我写在0xF3CED0,自动载入/app0/libSceCes.prx这个模块

【教程】高版本系统sysmodule移植5.05教程-2.jpg

  3、由于loader代码需要调用libkernel的sceKernelLoadStartModule,部分游戏没有这个函数,需要把其他函数改为sceKernelLoadStartModule,我这边将sceKernelGetGPI改为sceKernelLoadStartModule,首先修补所有的sceKernelGetGPI调用,然后把NID的4oXYe9Xmk0Q替换成wzvqT4UqKX8。函数的nid可以去https://github.com/idc/ps4libdoc这里查询

  3、最后吧0x05141B的call地址跳转到0xF3CED0,完成自定义模块载入

【教程】高版本系统sysmodule移植5.05教程-3.jpg

  其他说明

  部分模块(比如libSceAvPlayer.prx)会使用sceKernelGetCompiledSdkVersion检查编译时候的SDK版本,降级后会导致这个错误,需要手动修补sceKernelGetCompiledSdkVersion识别,比如下图我把要求5.50的功能改成4.90,这样在游戏降级到5.05时候,会触发原先5.50的调用

【教程】高版本系统sysmodule移植5.05教程-4.jpg

  下载地址处提供2个附件

  一个是SCE_SYSMODULE_CES_CS问题的修复,适用创轨、莱莎的炼金工房2等调用ces库的解决方案

  还有个是libSceAvPlayer补丁,适用于死或生6,海贼无双4播放视频卡顿的问题修复


下载地址


游客,如果您要查看本帖隐藏内容请回复


链接失效私信链接地址!备用域名:TubGame.COM
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

投诉/建议联系

admin@discuz.vip

未经授权禁止转载,复制和建立镜像,
如有违反,追究法律责任
  • 关注公众号
  • 添加微信客服
Copyright © 2001-2025 游戏年轮 版权所有 All Rights Reserved.
关灯 在本版发帖
扫一扫添加微信客服
返回顶部
快速回复 返回顶部 返回列表