llBeastModell

XOSC.cpp

Nov 8th, 2015
380
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.44 KB | None | 0 0
  1. DWORD CreateXOSCBuffer(DWORD dwTaskParam1, BYTE* pbDaeTableName, DWORD cbDaeTableName, XOSC* pBuffer, DWORD cbBuffer)
  2. {
  3.          DWORD ExecutionResult; XEX_EXECUTION_ID ExecutionId; XEX_EXECUTION_ID * pExecutionId;
  4.          
  5.         memset(pBuffer, 0xAA, 0x2E0);
  6.  
  7.         //XOSC State
  8.         if (XamLoaderIsTitleTerminatePending()) pBuffer->qwOperations |= 0x4000000000000000;
  9.         if (XamTaskShouldExit()) pBuffer->qwOperations |= 0x2000000000000000;
  10.  
  11.         //Execution Data
  12.         //DWORD ExecutionResult; XEX_EXECUTION_ID ExecutionId; XEX_EXECUTION_ID * pExecutionId;
  13.         if ((ExecutionResult = (DWORD)XamGetExecutionId(&pExecutionId)) == S_OK)
  14.         {
  15.                 memcpy(&ExecutionId, pExecutionId, sizeof(XEX_EXECUTION_ID));
  16.         }
  17.  
  18.         //Get Drive Sizes Only Affective On Slims
  19.         pBuffer->sizeMu0 = getDeviceSize("\\Device\\Mu0\\");
  20.         pBuffer->sizeMu1 = getDeviceSize("\\Device\\Mu1\\");
  21.         pBuffer->sizeMuSfc = getDeviceSize("\\Device\\BuiltInMuSfc\\");
  22.         pBuffer->sizeMuUsb = getDeviceSize("\\Device\\BuiltInMuUsb\\Storage\\");
  23.         pBuffer->sizeExUsb0 = getDeviceSize("\\Device\\Mass0PartitionFile\\Storage\\");
  24.         pBuffer->sizeExUsb1 = getDeviceSize("\\Device\\Mass1PartitionFile\\Storage\\");
  25.         pBuffer->sizeExUsb2 = getDeviceSize("\\Device\\Mass2PartitionFile\\Storage\\");
  26.  
  27.         //Unknown XOSC Data
  28.         memset(pBuffer->pad2, 0xAA, 0x10);
  29.         memset(pBuffer->pad3, 0xAA, 0x64);
  30.         memset(pBuffer->pad4, 0xAA, 0x2B);
  31.         memset(pBuffer->pad5, 0xAA, 0xD0);
  32.         memset(pBuffer->pad6, 0xAA, 0x0A);
  33.         memset(&pBuffer->_0x10, 0xAA, 0x4);
  34.         memset(&pBuffer->_0x14E, 0xAA, 2);
  35.         memset(&pBuffer->_0x15C, 0xAA, 0x4);
  36.         memset(&pBuffer->_0x160, 0x00, 0x4);
  37.         memset(&pBuffer->_0x164, 0xAA, 0x4);
  38.         memset(&pBuffer->_0x168, 0x00, 0x4);
  39.         memset(&pBuffer->_0x16C, 0xAA, 0x4);
  40.         memset(&pBuffer->_0x178, 0xAA, 0x4);
  41.         memset(&pBuffer->_0x17C, 0xAA, 0x4);
  42.         memset(&pBuffer->_0x2D4, 0xAA, 0x4);
  43.  
  44.         memset(&pBuffer->FlashSize, 0xAA, 0x04);
  45.         memset(&pBuffer->SecData1, 0x00, 0x08);
  46.         memset(&pBuffer->SecData2, 0x00, 0x08);
  47.         memset(&pBuffer->DVD_Result, 0xAA, 0x4);
  48.         memset(&pBuffer->UnknownXoscData, 0xAA, 0x4);
  49.         memset(&pBuffer->SerialByte, 0xAA, 2);
  50.         memset(&pBuffer->Beta_BLDR, 0xAA, 2);
  51.         memset(&pBuffer->KvRrestrictedPrivileges, 0xAA, 0x8);
  52.         memset(&pBuffer->HardwareInfo, 0xAA, 0x8);
  53.         memset(&pBuffer->dwFooterMagic, 0x5F534750, 0x4);
  54.  
  55.         //Console Info
  56.         BYTE r6[0x2E0];
  57.         memcpy(r6 + 0x50, cpuKeyDigest, 0x10);
  58.         memcpy(r6 + 0x60, (PVOID)0x8E03AA40, 0x14);
  59.         memcpy(r6 + 0x70, (PVOID)0x8E03AA50, 0x10);
  60.  
  61.         XeCryptRandom((BYTE*)pBuffer->UnknownHash, 0x10);
  62.         memcpy(pBuffer->KvSerialNumber, keyVault.ConsoleSerialNumber, 0xC);
  63.         memcpy(pBuffer->KvConsoleID, keyVault.ConsoleCertificate.ConsoleId.abData, 5);
  64.         memcpy(pBuffer->KvDriveData1, (kvDigest + 0xC8A), 0x24);
  65.         memcpy(pBuffer->KvDriveData2, (kvDigest + 0xC8A), 0x24);
  66.         memcpy(&pBuffer->KvDrivePhaseLevel, (kvDigest + 0xCB9), 1);
  67.         memcpy(&pBuffer->KVRegion, (kvDigest + 0xC8), 2);
  68.         memcpy(&pBuffer->KVOddFeatures, (kvDigest + 0x1C), 2);
  69.  
  70.         XNotifyQueueUI(XNOTIFYUI_TYPE_PREFERRED_REVIEW, 0, 2, L"SuperVisor Response Spoofed!", 0);
  71.  
  72.         //Return
  73.         return ERROR_SUCCESS;
  74. }
Add Comment
Please, Sign In to add comment