diff --git a/sysmodules/loader/source/patcher.c b/sysmodules/loader/source/patcher.c index f38e3a4..76e12c1 100644 --- a/sysmodules/loader/source/patcher.c +++ b/sysmodules/loader/source/patcher.c @@ -817,6 +817,13 @@ void patchCode(u64 progId, u16 progVer, u8 *code, u32 size, u32 textSize, u32 ro 0x00, 0x00, 0x00, 0x00 }; + static const u8 pattern2[] = { + 0xBB, 0xD1 + }, + patch2[] = { + 0xC0, 0x46 // mov r8, r8 + }; + //Patch DLP region check if(!patchMemory(code, textSize, pattern, @@ -824,6 +831,14 @@ void patchCode(u64 progId, u16 progVer, u8 *code, u32 size, u32 textSize, u32 ro patch, sizeof(patch), 1 )) goto error; + + // Patch DLP client region check + if (!patchMemory(code, textSize, + pattern2, + sizeof(pattern2), 0, + patch2, + sizeof(patch2), 1 + )) goto error; } else if((progId & ~0xF0000001ULL) == 0x0004013000001A02LL) //DSP, SAFE_FIRM DSP