SHOW:
|
|
- or go back to the newest paste.
| 1 | //BO3 Bypass By: OvaKill | |
| 2 | ||
| 3 | #ifndef _BO3_BYPASS_DEFINES_H | |
| 4 | ||
| 5 | #define _BO3_BYPASS_DEFINES_H | |
| 6 | ||
| 7 | ||
| 8 | ||
| 9 | #include "stdafx.h" | |
| 10 | ||
| 11 | #include "Vec.h" | |
| 12 | ||
| 13 | #include <time.h> | |
| 14 | ||
| 15 | ||
| 16 | ||
| 17 | BYTE IPAddress[4], ConsoleSerial[12], ConsoleIndex[12]; | |
| 18 | ||
| 19 | BYTE MachineId[] = { 0xFA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
| |
| 20 | ||
| 21 | BYTE Enet[] = { 0x00, 0x1D, 0xD8, 0x00, 0x00, 0x00 };
| |
| 22 | ||
| 23 | ||
| 24 | ||
| 25 | byte Response[] = | |
| 26 | ||
| 27 | {
| |
| 28 | ||
| 29 | 0x46, 0x7C, 0x70, 0xB0, // IP Address [4 Bytes] | |
| 30 | ||
| 31 | 0xFC, 0x00, 0x00, 0x00, 0xE6, 0xA5, 0xDD, 0xD1, // Machine ID [8 Bytes] | |
| 32 | ||
| 33 | 0xF5, 0xD7, 0xDA, 0xF1, 0x46, 0x21, 0x01, 0x10, // MAC Address [8 Bytes] | |
| 34 | ||
| 35 | 0x00, 0x00, 0x00, 0x00, // ChallengePadding 0 (Read Memory @ func_849AF534(float)) | |
| 36 | ||
| 37 | 0x00, 0x00, 0x00, 0x00, // ChallengePadding 1 (Read Memory @ func_849AF534 + 0x04(float)) | |
| 38 | ||
| 39 | 0x08, 0x60, // ChallengePadding 2 (Read Memory @ func_84629B5C) | |
| 40 | ||
| 41 | 0x03, // RetailFlag 0x01 = Active | 0x02 = Clean Retail (What Makes it Not?) | 01 + 02 = 0x03 = Active + Clean | |
| 42 | ||
| 43 | 0x30, 0x31, 0x34, 0x32, 0x36, 0x31, 0x37, 0x39, 0x35, 0x32, 0x30, 0x37, 0x00, // Console Serial [12 Bytes] | |
| 44 | ||
| 45 | 0x30, 0x33, 0x32, 0x37, 0x35, 0x38, 0x31, 0x31, 0x33, 0x30, 0x35, 0x35, // Console ID | |
| 46 | ||
| 47 | 0x42, 0xFE // Unknown Padding | |
| 48 | ||
| 49 | }; | |
| 50 | ||
| 51 | typedef struct _BO3_ChallengeResponse | |
| 52 | ||
| 53 | {
| |
| 54 | ||
| 55 | unsigned char abOnlineIP[4];//0x00-0x04 | |
| 56 | ||
| 57 | unsigned long long qwMachineId;//0x04-0xC | |
| 58 | ||
| 59 | unsigned long long qwEnet;//0xC-0x14 | |
| 60 | ||
| 61 | float fRegionLatitude;//0x14-0x18 | |
| 62 | ||
| 63 | float fRegionLongtitude;//0x18-0x1C | |
| 64 | ||
| 65 | short shFreeAmount;//0x1C-0x1E | |
| 66 | ||
| 67 | unsigned char bSecurityFlag;//0x1E-0x1F | |
| 68 | ||
| 69 | char szConsoleSerial[0xD];//0x1F-0x2C | |
| 70 | ||
| 71 | char szConsoleId[0xC];//0x2C-0x38 | |
| 72 | ||
| 73 | char szConsoleRetail[0x3];//0x01+0x02 = 0x03 | |
| 74 | ||
| 75 | short shKernalVersion;//0x38-0x3A | |
| 76 | ||
| 77 | WORD Padding1; | |
| 78 | ||
| 79 | QWORD UnknownVector2; | |
| 80 | ||
| 81 | WORD UnknownShort; | |
| 82 | ||
| 83 | BYTE Padding2; | |
| 84 | ||
| 85 | } BO3_ChallengeResponse, *pBO3_ChallengeResponse; | |
| 86 | ||
| 87 | ||
| 88 | ||
| 89 | typedef enum BO3_ChallengeFlag : BYTE | |
| 90 | ||
| 91 | {
| |
| 92 | ||
| 93 | ACTIVE = 1, | |
| 94 | ||
| 95 | VALID = 2, | |
| 96 | ||
| 97 | INVALIDPRIVILEGE = 8, | |
| 98 | ||
| 99 | XBDM = 16, | |
| 100 | ||
| 101 | } BO3_ChallengeFlag; | |
| 102 | ||
| 103 | typedef enum _BO3_RenderFlag : BYTE | |
| 104 | ||
| 105 | {
| |
| 106 | ||
| 107 | HIGHLIGHT_RED = 18, | |
| 108 | ||
| 109 | HIGHLIGHT_HOT = 20, | |
| 110 | ||
| 111 | HIGHLIGHT_GREEN = 22, | |
| 112 | ||
| 113 | HIGHLIGHT_CYAN = 24, | |
| 114 | ||
| 115 | HIGHLIGHT_ORANGE = 26, | |
| 116 | ||
| 117 | HIGHLIGHT_YELLOW = 28, | |
| 118 | ||
| 119 | HIGHLIGHT_BLUE = 30, | |
| 120 | ||
| 121 | } BO3_RenderFlag; | |
| 122 | ||
| 123 | ||
| 124 | ||
| 125 | int XNetXnAddrToMachineIdHookDASH(XNCALLER_TYPE xnc, XNADDR pxnaddr, unsigned long long MachineId) | |
| 126 | ||
| 127 | {
| |
| 128 | ||
| 129 | srand((unsigned int)time(0)); | |
| 130 | ||
| 131 | MachineId = 0xFA00000000000000 | (0x2000000 | rand() % 0x7FFFFF); | |
| 132 | ||
| 133 | *(__int64*)0x8232BE18 = 0x386000014E800020; //BO3 bypass hash | |
| 134 | ||
| 135 | return 0; | |
| 136 | ||
| 137 | } | |
| 138 | ||
| 139 | ||
| 140 | ||
| 141 | ||
| 142 | ||
| 143 | inline __declspec() int answerChallenges(int r3, int r4, int r5) | |
| 144 | ||
| 145 | {
| |
| 146 | ||
| 147 | __asm | |
| 148 | ||
| 149 | {
| |
| 150 | ||
| 151 | nop | |
| 152 | ||
| 153 | nop | |
| 154 | ||
| 155 | nop | |
| 156 | ||
| 157 | nop | |
| 158 | ||
| 159 | nop | |
| 160 | ||
| 161 | nop | |
| 162 | ||
| 163 | nop | |
| 164 | ||
| 165 | blr | |
| 166 | ||
| 167 | } | |
| 168 | ||
| 169 | } | |
| 170 | ||
| 171 | ||
| 172 | ||
| 173 | void randomize() | |
| 174 | ||
| 175 | {
| |
| 176 | ||
| 177 | BYTE IPAddress[4], MachineId[8], Enet[8], ConsoleKey[13], ConsoleIndex[12], padding0[2], padding1[8]; | |
| 178 | ||
| 179 | for (int i = 0; i < 2; i++)IPAddress[i] = rand() % 90; | |
| 180 | ||
| 181 | for (int i = 0; i < 2; i++)MachineId[i] = rand() % 90; | |
| 182 | ||
| 183 | for (int i = 0; i < 1; i++)Enet[i] = rand() % 90; | |
| 184 | ||
| 185 | for (int i = 0; i < 3; i++)ConsoleIndex[i] = rand() % 90; | |
| 186 | ||
| 187 | for (int i = 0; i < 3; i++)ConsoleKey[i] = rand() % 90; | |
| 188 | ||
| 189 | for (int i = 0; i < 2; i++)padding0[i] = rand() % 90; | |
| 190 | ||
| 191 | for (int i = 0; i < 8; i++)padding1[i] = rand() % 90; | |
| 192 | ||
| 193 | memcpy(Response + 0x2, &IPAddress, 2); | |
| 194 | ||
| 195 | memcpy(Response + 0x6, &MachineId, 2); | |
| 196 | ||
| 197 | memcpy(Response + 0x10, &Enet, 1); | |
| 198 | ||
| 199 | memcpy(Response + 0x29, &ConsoleKey, 3); | |
| 200 | ||
| 201 | memcpy(Response + 0x33, &ConsoleIndex, 3); | |
| 202 | ||
| 203 | memcpy(Response + 0x1C, &padding0, 2); | |
| 204 | ||
| 205 | memcpy(Response + 0x14, &padding1, 8); | |
| 206 | ||
| 207 | } | |
| 208 | ||
| 209 | ||
| 210 | ||
| 211 | void RandomizeData() | |
| 212 | ||
| 213 | {
| |
| 214 | ||
| 215 | srand((unsigned int)time(0)); | |
| 216 | ||
| 217 | for (int i = 0; i < 4; i++) IPAddress[i] = rand() % 90; | |
| 218 | ||
| 219 | for (int i = 0; i < 8; i++) MachineId[i] = rand() % 90; | |
| 220 | ||
| 221 | for (int i = 0; i < 6; i++) Enet[i] = rand() % 90; | |
| 222 | ||
| 223 | for (int i = 0; i < 12; i++){
| |
| 224 | ||
| 225 | ConsoleSerial[i] = rand() % 90; | |
| 226 | ||
| 227 | ConsoleIndex[i] = rand() % 90; | |
| 228 | ||
| 229 | } | |
| 230 | ||
| 231 | } | |
| 232 | ||
| 233 | inline DWORD GoldSpoofHook(DWORD dwUserIndex, XPRIVILEGE_TYPE PrivilegeType, PBOOL pfResult) | |
| 234 | ||
| 235 | {
| |
| 236 | ||
| 237 | if (PrivilegeType == XPRIVILEGE_TYPE::XPRIVILEGE_COMMUNICATIONS_FRIENDS_ONLY | |
| 238 | ||
| 239 | || PrivilegeType == XPRIVILEGE_TYPE::XPRIVILEGE_PROFILE_VIEWING_FRIENDS_ONLY | |
| 240 | ||
| 241 | || PrivilegeType == XPRIVILEGE_TYPE::XPRIVILEGE_USER_CREATED_CONTENT_FRIENDS_ONLY | |
| 242 | ||
| 243 | || PrivilegeType == XPRIVILEGE_TYPE::XPRIVILEGE_PRESENCE_FRIENDS_ONLY | |
| 244 | ||
| 245 | || PrivilegeType == XPRIVILEGE_TYPE::XPRIVILEGE_VIDEO_COMMUNICATIONS_FRIENDS_ONLY) | |
| 246 | ||
| 247 | *pfResult = FALSE; | |
| 248 | ||
| 249 | else | |
| 250 | ||
| 251 | *pfResult = TRUE; | |
| 252 | ||
| 253 | ||
| 254 | ||
| 255 | return 0; | |
| 256 | ||
| 257 | } | |
| 258 | ||
| 259 | ||
| 260 | ||
| 261 | unsigned long XeXGetModuleHandleHook(char* ModuleName) | |
| 262 | ||
| 263 | {
| |
| 264 | ||
| 265 | if (strcmp(ModuleName, "xbdm.xex") == 0) | |
| 266 | ||
| 267 | return 0; | |
| 268 | ||
| 269 | } | |
| 270 | ||
| 271 | ||
| 272 | ||
| 273 | int XNetXnAddrToMachineIdHook(XNCALLER_TYPE xnc, XNADDR pxnaddr, unsigned long long MachineId) | |
| 274 | ||
| 275 | {
| |
| 276 | ||
| 277 | srand((unsigned int)time(0)); | |
| 278 | ||
| 279 | MachineId = 0xFA00000000000000 | (0x2000000 | rand() % 0x7FFFFF); | |
| 280 | ||
| 281 | return 0; | |
| 282 | ||
| 283 | } | |
| 284 | ||
| 285 | unsigned long XeKeysGetKeyHook(unsigned short key, unsigned char* buffer, PDWORD len) // | |
| 286 | ||
| 287 | {
| |
| 288 | ||
| 289 | if (key == 0x14) | |
| 290 | ||
| 291 | {
| |
| 292 | ||
| 293 | srand((unsigned int)time(0)); | |
| 294 | ||
| 295 | for (int i = 0x00; i < 0xC; i++) buffer[i] = rand() % 0x7F; | |
| 296 | ||
| 297 | return 0L; | |
| 298 | ||
| 299 | } | |
| 300 | ||
| 301 | return XeKeysGetKey(key, buffer, len); | |
| 302 | ||
| 303 | } | |
| 304 | ||
| 305 | ||
| 306 | ||
| 307 | long XeKeysGetConsoleIDHook(unsigned char* buffer, int Unknown) | |
| 308 | ||
| 309 | {
| |
| 310 | ||
| 311 | srand((unsigned int)time(0)); | |
| 312 | ||
| 313 | for (int i = 0x00; i < 0xC; i++) buffer[i] = rand() % 0x7F; | |
| 314 | ||
| 315 | return 0; | |
| 316 | ||
| 317 | } | |
| 318 | ||
| 319 | #endif |