This is a much cleaner way better than fucking with xbdm Enjoy!
Content Unlocked
typedef void* object;
__declspec(naked) object MmDbgReadCheckStub(...)
{
__asm
{
li r3, 60
nop
nop
nop
nop
nop
nop
blr
}
}
__declspec(naked) object MmDbgWriteCheckStub(...)
{
__asm
{
li r3, 61
nop
nop
nop
nop
nop
nop
blr
}
}
PVOID AntiRead(DWORD ReadAddress)
{
if ((ReadAddress & (0xFFF00000)) == 0x91E60000) return 0;
if ((ReadAddress & (0xFFFF0000)) == 0x900A0000) return 0;
else return MmDbgReadCheckStub(ReadAddress);
}
PVOID AntiWrite(DWORD ReadAddress)
{
if ((ReadAddress & (0xFFF00000)) == PUTYABASEADDRESSHERE) return 0;
if ((ReadAddress & (0xFFFF0000)) == GUESS ;)) return 0;
else return MmDbgReadCheckStub(ReadAddress);
}
byte OriginalRead[0x10];
byte OriginalWrite[0x10];
void StartHooks() {
memcpy(OriginalRead, (unsigned long*)resolveFunc("xboxkrnl.exe", 0x1AB), 0x10);
memcpy(OriginalWrite, (unsigned long*)resolveFunc("xboxkrnl.exe", 0x1AD), 0x10);
HookFunctionStart((unsigned long*)resolveFunc("xboxkrnl.exe", 0x1AB), (unsigned long*)MmDbgReadCheckStub, (unsigned long)AntiRead);
HookFunctionStart((unsigned long*)resolveFunc("xboxkrnl.exe", 0x1AD), (unsigned long*)MmDbgWriteCheckStub, (unsigned long)AntiWrite);
}
void StopHooks() {
memcpy((void*)resolveFunc("xboxkrnl.exe", 0x1AB), OriginalRead, 0x10);
memcpy((void*)resolveFunc("xboxkrnl.exe", 0x1AB), OriginalWrite, 0x10);
}
typedef void* object;
__declspec(naked) object MmDbgReadCheckStub(...)
{
__asm
{
li r3, 60
nop
nop
nop
nop
nop
nop
blr
}
}
__declspec(naked) object MmDbgWriteCheckStub(...)
{
__asm
{
li r3, 61
nop
nop
nop
nop
nop
nop
blr
}
}
PVOID AntiRead(DWORD ReadAddress)
{
if ((ReadAddress & (0xFFF00000)) == 0x91E60000) return 0;
if ((ReadAddress & (0xFFFF0000)) == 0x900A0000) return 0;
else return MmDbgReadCheckStub(ReadAddress);
}
PVOID AntiWrite(DWORD ReadAddress)
{
if ((ReadAddress & (0xFFF00000)) == PUTYABASEADDRESSHERE) return 0;
if ((ReadAddress & (0xFFFF0000)) == GUESS ;)) return 0;
else return MmDbgReadCheckStub(ReadAddress);
}
byte OriginalRead[0x10];
byte OriginalWrite[0x10];
void StartHooks() {
memcpy(OriginalRead, (unsigned long*)resolveFunc("xboxkrnl.exe", 0x1AB), 0x10);
memcpy(OriginalWrite, (unsigned long*)resolveFunc("xboxkrnl.exe", 0x1AD), 0x10);
HookFunctionStart((unsigned long*)resolveFunc("xboxkrnl.exe", 0x1AB), (unsigned long*)MmDbgReadCheckStub, (unsigned long)AntiRead);
HookFunctionStart((unsigned long*)resolveFunc("xboxkrnl.exe", 0x1AD), (unsigned long*)MmDbgWriteCheckStub, (unsigned long)AntiWrite);
}
void StopHooks() {
memcpy((void*)resolveFunc("xboxkrnl.exe", 0x1AB), OriginalRead, 0x10);
memcpy((void*)resolveFunc("xboxkrnl.exe", 0x1AB), OriginalWrite, 0x10);
}
Add my Discord Kiwi2014566#9755