【教程】高版本系統(tǒng)sysmodule移植5.05教程!部分游戲使用高版本的sysmodule,導(dǎo)致在5.05系統(tǒng)上無法正常運(yùn)行,需要將高版本的sysmodule移植到5.05上,需要配合IDA分析eboot.bin解決
部分游戲使用高版本的sysmodule,導(dǎo)致在5.05系統(tǒng)上無法正常運(yùn)行,需要將高版本的sysmodule移植到5.05上
需要配合IDA分析eboot.bin解決
比如創(chuàng)軌調(diào)用了SCE_SYSMODULE_CES_CS這個(gè)模塊,這個(gè)是在6.72上才有的模塊,需要dump ps4系統(tǒng)的libSceCesCS.sprx(路徑在systemcommonliblibSceCesCs.sprx)
1、首先使用IDA檢查eboot.bin的sceSysmoduleLoadModule調(diào)用,看是否有高版本調(diào)用,我們可以發(fā)現(xiàn)地址0x05141B調(diào)用了sceSysmoduleLoadModule(0x10C)
2、寫一段prx loader代碼,實(shí)現(xiàn)自定義模塊載入,代碼我寫在0xF3CED0,自動(dòng)載入/app0/libSceCes.prx這個(gè)模塊
3、由于loader代碼需要調(diào)用libkernel的sceKernelLoadStartModule,部分游戲沒有這個(gè)函數(shù),需要把其他函數(shù)改為sceKernelLoadStartModule,我這邊將sceKernelGetGPI改為sceKernelLoadStartModule,首先修補(bǔ)所有的sceKernelGetGPI調(diào)用,然后把NID的4oXYe9Xmk0Q替換成wzvqT4UqKX8。函數(shù)的nid可以去https://github.com/idc/ps4libdoc這里查詢
3、最后吧0x05141B的call地址跳轉(zhuǎn)到0xF3CED0,完成自定義模塊載入
其他說明
部分模塊(比如libSceAvPlayer.prx)會(huì)使用sceKernelGetCompiledSdkVersion檢查編譯時(shí)候的SDK版本,降級(jí)后會(huì)導(dǎo)致這個(gè)錯(cuò)誤,需要手動(dòng)修補(bǔ)sceKernelGetCompiledSdkVersion識(shí)別,比如下圖我把要求5.50的功能改成4.90,這樣在游戲降級(jí)到5.05時(shí)候,會(huì)觸發(fā)原先5.50的調(diào)用
下載地址處提供2個(gè)附件
一個(gè)是SCE_SYSMODULE_CES_CS問題的修復(fù),適用創(chuàng)軌、萊莎的煉金工房2等調(diào)用ces庫的解決方案
還有個(gè)是libSceAvPlayer補(bǔ)丁,適用于死或生6,海賊無雙4播放視頻卡頓的問題修復(fù)
下載地址
歡迎光臨 游戲大桶 (http://haidecai.cn/) | Powered by Discuz! X3.5 |