CODE
UINT32 ResolveFunct(char* ModName, UINT32 Ord){
UINT32 ptr32 = 0, ret = 0, ptr2 = 0;
ret = XexGetModuleHandle(ModName, &ptr32);
if(ret == 0){
ret = XexGetProcedureAddress(ptr32, Ord, &ptr2);
if(ptr2 != 0)
return(ptr2);
}
return 0;
}
//What handles the first argument:
XexGetModuleHandle(
IN PSZ moduleName,
IN OUT PHANDLE hand
);
//What handles the second argument:
XexGetProcedureAddress(
IN HANDLE hand,
IN DWORD dwOrdinal,
IN PVOID Address
);
//used as:
XeKeysHmacSha = (XEKEYSHMACSHA)resolveFunct("xboxkrnl.exe", 0x249);
ExSetXConfigSetting = (EXSETXCONFIGSETTING)resolveFunct("xboxkrnl.exe", 0x18);
launchStartSysModule = (DWORD (__cdecl *)(char*))(ResolveFunct("launch.xex", 2));
XNotifyQueueUI xNotifyQueueUI = (XNotifyQueueUI)resolveFunct("xam.xex", 656);