Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "stdafx.h"
- #include "stdio.h"
- #include <time.h>
- #include <io.h>
- #include <fcntl.h>
- #include <iostream>
- int ADDRESS1, ADDRESS2, ADDRESS3, ADDRESS4, ADDRESS5, ADDRESS6, ADDRESS7, ADDRESS8, ADDRESS9, ADDRESS10;
- unsigned char pattern[] = {0x56, 0x8B, 0x74, 0x24, 0x0C, 0x85, 0xF6, 0x75, 0x04, 0x33, 0xC0, 0x5E, 0xC3};
- unsigned char pattern2[] = {0x53, 0x55, 0x8B, 0x6C, 0x24, 0x10, 0x56, 0x8B, 0x74, 0x24, 0x18, 0x57};
- unsigned char pattern3[] = {0xCC, 0xCC, 0x8B, 0x17, 0x56, 0x50, 0x51, 0x52};
- unsigned char pattern4[] = {0x83, 0xEC, 0x2C, 0x8B, 0x51, 0x04, 0x31, 0x16, 0x8B, 0x51, 0x08, 0x31, 0x56, 0x04};
- unsigned char pattern5[] = {0x83, 0xEC, 0x10, 0x8B, 0x4C, 0x24, 0x20, 0x8B, 0x54, 0x24, 0x1C, 0x56, 0x8B, 0x74, 0x24, 0x18};
- unsigned char pattern6[] = {0x8B, 0x54, 0x24, 0x0C, 0x8B, 0x44, 0x24, 0x10, 0x56, 0x57, 0x85, 0xD2, 0x74, 0x12, 0x85, 0xC0};
- unsigned char pattern7[] = {0x8B, 0x54, 0x24, 0x04, 0x83, 0xEC, 0x08, 0x53, 0x55, 0x8B, 0x6C, 0x24, 0x1C, 0x56, 0x57, 0x33};
- unsigned char pattern8[] = {0x8B, 0x54, 0x24, 0x04, 0x53, 0x8B, 0x5C, 0x24, 0x0C, 0x56, 0x33, 0xC9, 0x33, 0xF6, 0x83, 0xFA};
- unsigned char pattern9[] = {0x51, 0x80, 0x7C, 0x24, 0x10, 0x01, 0x53, 0x55, 0x56, 0x8B, 0x74, 0x24, 0x18, 0x57, 0xC7, 0x44};
- unsigned char pattern10[] = {0x8B, 0x4C, 0x24, 0x04, 0x56, 0x8B, 0x71, 0x04, 0x8D, 0x81, 0x09, 0x06, 0x00, 0x00, 0x50, 0x8B};
- static const signed char _LobbyBase64_strDecode[] =
- {
- 62, // +
- -1, -1, -1, // ,-.
- 63, // /
- 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, // 0-9
- -1, -1, -1, -1, -1, -1, -1, // :;<=>?@
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, // A-
- 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, // -Z
- -1, -1, -1, -1, -1, -1, // [\]^_`
- 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, // a-
- 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51 // -z
- };
- struct CryptRSARandomT
- {
- int u0;
- int u1;
- };
- struct CryptRSAT
- {
- int iKeyModSize; //!< size of public key modulus
- int iKeyExpSize; //!< size of public key exponent
- char EncryptBlock[1024];
- char KeyModData[256+1]; //!< public key modulus
- char KeyExpData[256+1]; //!< public key exponent
- CryptRSARandomT Random;
- };
- typedef int (__cdecl * FUNC_PSSLS) (void *Dst, void *Src, size_t Size);
- typedef int (__cdecl * FUNC_PHTTPS)(const char *buf, unsigned int a2, int a3);
- typedef int (__cdecl * FUNC_CAESEnc)(int Size, char *buf);
- typedef signed int (__cdecl *FUNC_EAP)(int a1, unsigned int a2, int a3, int a4);
- typedef int (__cdecl * FUNC_PHTTPP)(int a1, int a2, const char *Src, signed int Size, int a5);
- typedef int (__cdecl * FUNC_LOBDE)(int len, const char* in, char* out);
- typedef void (__cdecl * FUNC_LOBEN)(int iInputLen, const char *pInput, char *pOutput);
- typedef signed int (__cdecl * FUNC_F4E4)(int a1, int a2, char a3);
- typedef void (__cdecl * FUNC_CRYP)(CryptRSAT * a1);
- FUNC_PSSLS oProtoSSLSend = NULL;
- FUNC_PHTTPS oProtoHTTPSend = NULL;
- FUNC_CAESEnc oCryptAesEncrypt = NULL;
- FUNC_EAP oEA__StdC__Vsnprintf = NULL;
- FUNC_PHTTPP oProtoHttpPost = NULL;
- FUNC_LOBDE oLobbyBase64Decode = NULL;
- FUNC_LOBEN oLobbyBase64Encode = NULL;
- FUNC_F4E4 osub_F4E470 = NULL;
- FUNC_CRYP oCryptRSAEncrypt = NULL;
- static void PrintHexDump(char* Src, int Length)
- {
- FILE* Log = NULL;
- fopen_s ( &Log, "BLAZE.txt", "a+" );
- int x = 0;
- char* buf = new char[17];
- for(int i = 0; i < 17; i++)
- buf[i]=(char)0;
- for(int i=0;i<Length;i++)
- {
- if(x++ >= 15)
- {
- if((unsigned char)Src[i]>=0x20)
- buf[x-1]=Src[i];
- else
- buf[x-1]=(char)0x2E;
- //printf("%02X %s\n" , (unsigned char)Src[i], buf);
- fprintf (Log, "%02X %s\n" , (unsigned char)Src[i], buf);
- x = 0;
- for(int i = 0; i < 17; i++)
- buf[i]=(char)0;
- }
- else
- {
- //printf("%02X " , (unsigned char)Src[i]);
- fprintf (Log, "%02X " , (unsigned char)Src[i]);
- if((unsigned char)Src[i]>=0x20)
- buf[x-1]=Src[i];
- else
- buf[x-1]=(char)0x2E;
- }
- }
- if(x!=0)
- {
- for(int i=0;i<16-x;i++)
- {
- //printf(" ");
- fprintf (Log, " ");
- }
- //printf(" %s\n", buf);
- fprintf (Log, " %s\n", buf);
- }
- fprintf (Log, "\n");
- fclose ( Log );
- }
- static void PrintHexDumpConsole(char* Src, int Length)
- {
- int x = 0;
- char* buf = new char[17];
- for(int i = 0; i < 17; i++)
- buf[i]=(char)0;
- for(int i=0;i<Length;i++)
- {
- if(x++ >= 15)
- {
- if((unsigned char)Src[i]>=0x20)
- buf[x-1]=Src[i];
- else
- buf[x-1]=(char)0x2E;
- printf("%02X %s\n" , (unsigned char)Src[i], buf);
- x = 0;
- for(int i = 0; i < 17; i++)
- buf[i]=(char)0;
- }
- else
- {
- printf("%02X " , (unsigned char)Src[i]);
- if((unsigned char)Src[i]>=0x20)
- buf[x-1]=Src[i];
- else
- buf[x-1]=(char)0x2E;
- }
- }
- if(x!=0)
- {
- for(int i=0;i<16-x;i++)
- {
- printf(" ");
- }
- printf(" %s\n", buf);
- }
- }
- int __cdecl blaze_vsnzprintf(char *pBuffer, unsigned int uLength, const char *pFormat, ...)
- {
- va_list args;
- va_start (args, pFormat);
- int result;
- if ( uLength )
- {
- result = vsnprintf(pBuffer, uLength, pFormat, args);
- if ( result >= (signed int)uLength || result < 0 )
- result = 0;
- pBuffer[result] = 0;
- }
- else
- {
- result = 0;
- }
- if(result)
- {
- printf("vsnzprintf : %s\n", pBuffer);
- FILE* Log = NULL;
- fopen_s ( &Log, "BLAZE.txt", "a+" );
- fprintf (Log, "vsnzprintf : %s\n", pBuffer);
- fclose ( Log );
- }
- return result;
- }
- int __cdecl ProtoSSLSend(void *Dst, void *Src, size_t Size)
- {
- printf("ProtoSSLSend : %i Bytes\n", (int)Size);
- FILE* Log = NULL;
- fopen_s ( &Log, "BLAZE.txt", "a+" );
- fprintf (Log, "ProtoSSLSend : %i Bytes\n", (int)Size);
- fclose ( Log );
- PrintHexDump((char*)Src, (int)Size);
- return oProtoSSLSend(Dst, Src, Size);
- }
- int __cdecl ProtoHTTPSend(const char *Src, unsigned int a2, int Size)
- {
- printf("ProtoHTTPSend : %i Bytes\n", (int)Size);
- FILE* Log = NULL;
- fopen_s ( &Log, "BLAZE.txt", "a+" );
- fprintf (Log, "ProtoHTTPSend : %i Bytes\n", (int)Size);
- fclose ( Log );
- PrintHexDump((char*)Src, (int)Size);
- return oProtoHTTPSend(Src, a2, Size);
- }
- int __cdecl CryptAESEncrypt(int Size, char *buf)
- {
- FILE* Log = NULL;
- fopen_s ( &Log, "BLAZE.txt", "a+" );
- fprintf (Log, "CryptAESEncrypt : %i Bytes\n", (int)Size);
- fclose ( Log );
- printf("CryptAESEncrypt : %i Bytes\n", (int)Size);
- PrintHexDump((char*)buf, (int)Size);
- return oCryptAesEncrypt(Size, buf);
- }
- signed int __cdecl EA__StdC__Vsnprintf(int a1, unsigned int a2, int a3, int a4)
- {
- int buf = a1;
- signed int result = oEA__StdC__Vsnprintf(a1, a2, a3, a4);
- //printf("EA::StdC::Vsnprintf : %i Bytes\n", result);
- /*FILE* Log = NULL;
- fopen_s ( &Log, "BLAZE.txt", "a+" );
- fprintf (Log, "EA::StdC::Vsnprintf : %s\n", buf);
- fclose ( Log );*/
- return result;
- }
- int __cdecl ProtoHttpPost(int a1, int a2, const char *Src, signed int Size, int a5)
- {
- printf("ProtoHttpPost : %s -- %s\n", (char*)a2, Src);
- FILE* Log = NULL;
- fopen_s ( &Log, "BLAZE.txt", "a+" );
- fprintf (Log, "ProtoHttpPost : %s\n\n", Src);
- fclose ( Log );
- return oProtoHttpPost(a1, a2, Src, Size, a5);
- }
- int __cdecl LobbyBase64Decode(int iInputLen, const char* pInput, char* pOutput)
- {
- char ci[4];
- char co0, co1, co2, co3;
- int iInputCnt, iInputOff, iOutputOff;
- const signed char *decode = _LobbyBase64_strDecode;
- for (iInputOff = 0, iOutputOff = 0; iInputOff < iInputLen; )
- {
- for (iInputCnt = 0; (iInputCnt < 4) && (iInputOff < iInputLen) && (pInput[iInputOff] != '\0'); iInputOff += 1)
- {
- if ((pInput[iInputOff] == ' ') || (pInput[iInputOff] == '\t') || (pInput[iInputOff] == '\r') || (pInput[iInputOff] == '\n'))
- {
- continue;
- }
- else if ((pInput[iInputOff] < '+') || (pInput[iInputOff] > 'z'))
- {
- printf("LobbyBase64Decode : Exit 1\n");
- return(0);
- }
- else
- {
- ci[iInputCnt++] = pInput[iInputOff];
- }
- }
- if (iInputCnt == 0)
- {
- break;
- }
- if (iInputCnt < 4)
- {
- printf("LobbyBase64Decode : Exit 2\n");
- return(0);
- }
- co0 = decode[(int)ci[0]-'+'];
- co1 = decode[(int)ci[1]-'+'];
- co2 = decode[(int)ci[2]-'+'];
- co3 = decode[(int)ci[3]-'+'];
- if ((co0 >= 0) && (co1 >= 0))
- {
- if ((co2 >= 0) && (co3 >= 0))
- {
- if (pOutput != NULL)
- {
- pOutput[iOutputOff+0] = (co0<<2)|((co1>>4)&0x3);
- pOutput[iOutputOff+1] = (co1&0x3f)<<4|((co2>>2)&0x3F);
- pOutput[iOutputOff+2] = ((co2&0x3)<<6)|co3;
- }
- iOutputOff += 3;
- }
- else if ((co2 >= 0) && (ci[3] == '='))
- {
- if (pOutput != NULL)
- {
- pOutput[iOutputOff+0] = (co0<<2)|((co1>>4)&0x3);
- pOutput[iOutputOff+1] = (co1&0x3f)<<4|((co2>>2)&0x3F);
- }
- iOutputOff += 2;
- iInputOff = iInputLen;
- }
- else if ((ci[2] == '=') && (ci[3] == '='))
- {
- if (pOutput != NULL)
- {
- pOutput[iOutputOff+0] = (co0<<2)|((co1>>4)&0x3);
- }
- iOutputOff += 1;
- iInputOff = iInputLen;
- }
- else
- {
- printf("LobbyBase64Decode : Exit 3\n");
- return(0);
- }
- }
- else
- {
- printf("LobbyBase64Decode : Exit 4\n");
- return(0);
- }
- }
- if (pOutput == NULL)
- {
- printf("LobbyBase64Decode : Exit 5\n");
- return((iInputOff == iInputLen) ? iOutputOff : 0);
- }
- else
- {
- //printf("LobbyBase64Decode : %i Bytes (Exit6)\n", iOutputOff);
- FILE* Log = NULL;
- fopen_s ( &Log, "BLAZE.txt", "a+" );
- fprintf (Log, "LobbyBase64Decode : %i Bytes (Exit6)\n\n", iOutputOff);
- fclose ( Log );
- PrintHexDump(pOutput, iOutputOff);
- return(iInputOff == iInputLen);
- }
- }
- void __cdecl LobbyBase64Encode(int iInputLen, char *pInput, char *pOutput)
- {
- printf("LobbyBase64Encode: %i Bytes\n", iInputLen);
- FILE* Log = NULL;
- fopen_s ( &Log, "BLAZE.txt", "a+" );
- fprintf (Log, "LobbyBase64Encode : %i Bytes\n\n", iInputLen);
- fclose ( Log );
- PrintHexDump(pInput, iInputLen);
- return oLobbyBase64Encode(iInputLen, pInput, pOutput);
- }
- signed int __cdecl CertCheck(int a1, int a2, char a3)
- {
- printf("CertCheck used, will return 0!\n\n");
- FILE* Log = NULL;
- fopen_s ( &Log, "BLAZE.txt", "a+" );
- fprintf (Log, "CertCheck used, will return 0!\n\n");
- fclose ( Log );
- return 0;
- }
- void __cdecl CryptRSAEncrypt (CryptRSAT * a1)
- {
- oCryptRSAEncrypt(a1);
- printf("CryptRSAEncrypt used!\nKeyModData:\n");
- PrintHexDumpConsole((char*) a1->KeyModData, 128);
- printf("KeyExpData:\n");
- PrintHexDumpConsole((char*) a1->KeyExpData, 128);
- printf("Block:\n");
- PrintHexDumpConsole((char*) a1->EncryptBlock, 128);
- FILE* Log = NULL;
- fopen_s ( &Log, "BLAZE.txt", "a+" );
- fprintf(Log, "CryptRSAEncrypt used!\nKeyModData:\n");
- fclose ( Log );
- PrintHexDump((char*) a1->KeyModData, 128);
- fopen_s ( &Log, "BLAZE.txt", "a+" );
- fprintf(Log, "KeyExpData:\n");
- fclose ( Log );
- PrintHexDump((char*) a1->KeyExpData, 128);
- fopen_s ( &Log, "BLAZE.txt", "a+" );
- fprintf(Log, "Block:\n");
- fclose ( Log );
- PrintHexDump((char*) a1->EncryptBlock, 128);
- return;
- }
- static void OpenConsole()
- {
- int outHandle, errHandle, inHandle;
- FILE *outFile, *errFile, *inFile;
- AllocConsole();
- CONSOLE_SCREEN_BUFFER_INFO coninfo;
- GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &coninfo);
- coninfo.dwSize.Y = 9999;
- SetConsoleScreenBufferSize(GetStdHandle(STD_OUTPUT_HANDLE), coninfo.dwSize);
- outHandle = _open_osfhandle((long)GetStdHandle(STD_OUTPUT_HANDLE), _O_TEXT);
- errHandle = _open_osfhandle((long)GetStdHandle(STD_ERROR_HANDLE),_O_TEXT);
- inHandle = _open_osfhandle((long)GetStdHandle(STD_INPUT_HANDLE),_O_TEXT );
- outFile = _fdopen(outHandle, "w" );
- errFile = _fdopen(errHandle, "w");
- inFile = _fdopen(inHandle, "r");
- *stdout = *outFile;
- *stderr = *errFile;
- *stdin = *inFile;
- setvbuf( stdout, NULL, _IONBF, 0 );
- setvbuf( stderr, NULL, _IONBF, 0 );
- setvbuf( stdin, NULL, _IONBF, 0 );
- std::ios::sync_with_stdio();
- }
- static void FindAddress()
- {
- ADDRESS1 = 0;
- printf("Searching address 1... [blaze_vsnzprintf]\n");
- unsigned char * p = (unsigned char*)(0x401000);
- for(int i = 0; i < 0xE00000; i ++)
- {
- if(p[0] == pattern[0] && p[1] == pattern[1])
- {
- bool Found = true;
- for(int j = 0; j < 13; j++)
- if(p[j] != pattern[j])
- Found = false;
- if(Found)
- {
- ADDRESS1 = (int)(p);
- printf("Found Address @0x:%p\n", ADDRESS1);
- break;
- }
- }
- p++;
- }
- }
- static void FindAddress2()
- {
- ADDRESS2 = 0;
- printf("Searching address 2...[ProtoSSLSend]\n");
- unsigned char * p = (unsigned char*)(0x401000);
- for(int i = 0; i < 0xE00000; i ++)
- {
- if(p[0] == pattern2[0] && p[1] == pattern2[1])
- {
- bool Found = true;
- for(int j = 0; j < 12; j++)
- if(p[j] != pattern2[j])
- Found = false;
- if(Found)
- {
- ADDRESS2 = (int)(p);
- printf("Found Address @0x:%p\n", ADDRESS2);
- break;
- }
- }
- p++;
- }
- }
- static void FindAddress3()
- {
- ADDRESS3 = 0;
- printf("Searching address 3...[ProtoHTTPSend]\n");
- unsigned char * p = (unsigned char*)(0x401000);
- for(int i = 0; i < 0xE00000; i ++)
- {
- if(p[0] == pattern3[0] && p[1] == pattern3[1])
- {
- bool Found = true;
- for(int j = 0; j < 8; j++)
- if(p[j] != pattern3[j])
- Found = false;
- if(Found)
- {
- ADDRESS3 = (int)(p);
- printf("Found Address @0x:%p\n", ADDRESS3);
- break;
- }
- }
- p++;
- }
- }
- static void FindAddress4()
- {
- ADDRESS4 = 0;
- printf("Searching address 4...[CryptAESEncrypt]\n");
- unsigned char * p = (unsigned char*)(0x401000);
- for(int i = 0; i < 0xE00000; i ++)
- {
- if(p[0] == pattern4[0] && p[1] == pattern4[1])
- {
- bool Found = true;
- for(int j = 0; j < 14; j++)
- if(p[j] != pattern4[j])
- Found = false;
- if(Found)
- {
- ADDRESS4 = (int)(p);
- printf("Found Address @0x:%p\n", ADDRESS4);
- break;
- }
- }
- p++;
- }
- }
- static void FindAddress5()
- {
- ADDRESS5 = 0;
- printf("Searching address 5...[EA::StdC::Vsnprintf]\n");
- unsigned char * p = (unsigned char*)(0x401000);
- for(int i = 0; i < 0xE00000; i ++)
- {
- if(p[0] == pattern5[0] && p[1] == pattern5[1])
- {
- bool Found = true;
- for(int j = 0; j < 16; j++)
- if(p[j] != pattern5[j])
- Found = false;
- if(Found)
- {
- ADDRESS5 = (int)(p);
- printf("Found Address @0x:%p\n", ADDRESS5);
- break;
- }
- }
- p++;
- }
- }
- static void FindAddress6()
- {
- ADDRESS6 = 0;
- printf("Searching address 6...[ProtoHttpPost]\n");
- unsigned char * p = (unsigned char*)(0x401000);
- for(int i = 0; i < 0xE00000; i ++)
- {
- if(p[0] == pattern6[0] && p[1] == pattern6[1])
- {
- bool Found = true;
- for(int j = 0; j < 16; j++)
- if(p[j] != pattern6[j])
- Found = false;
- if(Found)
- {
- ADDRESS6 = (int)(p);
- printf("Found Address @0x:%p\n", ADDRESS6);
- break;
- }
- }
- p++;
- }
- }
- static void FindAddress7()
- {
- ADDRESS7 = 0;
- printf("Searching address 7...[LobbyBase64Decode]\n");
- unsigned char * p = (unsigned char*)(0x401000);
- for(int i = 0; i < 0xE00000; i ++)
- {
- if(p[0] == pattern7[0] && p[1] == pattern7[1])
- {
- bool Found = true;
- for(int j = 0; j < 16; j++)
- if(p[j] != pattern7[j])
- Found = false;
- if(Found)
- {
- ADDRESS7 = (int)(p);
- printf("Found Address @0x:%p\n", ADDRESS7);
- break;
- }
- }
- p++;
- }
- }
- static void FindAddress8()
- {
- ADDRESS8 = 0;
- printf("Searching address 8...[LobbyBase64Encode]\n");
- unsigned char * p = (unsigned char*)(0x401000);
- for(int i = 0; i < 0xE00000; i ++)
- {
- if(p[0] == pattern8[0] && p[1] == pattern8[1])
- {
- bool Found = true;
- for(int j = 0; j < 16; j++)
- if(p[j] != pattern8[j])
- Found = false;
- if(Found)
- {
- ADDRESS8 = (int)(p);
- printf("Found Address @0x:%p\n", ADDRESS8);
- break;
- }
- }
- p++;
- }
- }
- static void FindAddress9()
- {
- ADDRESS9 = 0;
- printf("Searching address 9...[CertCheck]\n");
- unsigned char * p = (unsigned char*)(0x401000);
- for(int i = 0; i < 0xE00000; i ++)
- {
- if(p[0] == pattern9[0] && p[1] == pattern9[1])
- {
- bool Found = true;
- for(int j = 0; j < 16; j++)
- if(p[j] != pattern9[j])
- Found = false;
- if(Found)
- {
- ADDRESS9 = (int)(p);
- printf("Found Address @0x:%p\n", ADDRESS9);
- break;
- }
- }
- p++;
- }
- }
- static void FindAddress10()
- {
- ADDRESS10 = 0;
- printf("Searching address 10...[CryptRSAEncrypt]\n");
- unsigned char * p = (unsigned char*)(0x401000);
- for(int i = 0; i < 0xE00000; i ++)
- {
- if(p[0] == pattern10[0] && p[1] == pattern10[1])
- {
- bool Found = true;
- for(int j = 0; j < 16; j++)
- if(p[j] != pattern10[j])
- Found = false;
- if(Found)
- {
- ADDRESS10 = (int)(p);
- printf("Found Address @0x:%p\n", ADDRESS10);
- break;
- }
- }
- p++;
- }
- }
- BOOL APIENTRY DllMain(HANDLE hModule, DWORD dwReason, LPVOID lpReserved)
- {
- switch (dwReason)
- {
- case DLL_PROCESS_ATTACH:
- OpenConsole();
- printf("ME3 Debugger by Warranty Voider\n\nIm in!^^...\n");
- FILE* Log = NULL;
- fopen_s ( &Log, "BLAZE.txt", "w" );
- fprintf (Log, "ME3 Debugger by Warranty Voider\n\n");
- fclose ( Log );
- printf("searching addresses...\n");
- FindAddress();
- //FindAddress2();
- FindAddress3();
- FindAddress4();
- FindAddress5();
- FindAddress6();
- FindAddress7();
- FindAddress8();
- FindAddress9();
- FindAddress10();
- printf("detouring function...\n");
- if(ADDRESS1)
- DetourFunction((PBYTE)ADDRESS1, (PBYTE)blaze_vsnzprintf);
- else
- printf("ADDRESS 1 NOT FOUND!\n");
- if(ADDRESS2)
- {
- oProtoSSLSend = (FUNC_PSSLS)DetourFunction((PBYTE)ADDRESS2, (PBYTE)ProtoSSLSend);
- }
- else
- printf("ADDRESS 2 NOT FOUND!\n");
- if(ADDRESS3)
- {
- oProtoHTTPSend = (FUNC_PHTTPS)DetourFunction((PBYTE)ADDRESS3, (PBYTE)ProtoHTTPSend);
- }
- else
- printf("ADDRESS 3 NOT FOUND!\n");
- if(ADDRESS4)
- {
- oCryptAesEncrypt = (FUNC_CAESEnc)DetourFunction((PBYTE)ADDRESS4, (PBYTE)CryptAESEncrypt);
- }
- else
- printf("ADDRESS 4 NOT FOUND!\n");
- if(ADDRESS5)
- {
- oEA__StdC__Vsnprintf = (FUNC_EAP)DetourFunction((PBYTE)ADDRESS5, (PBYTE)EA__StdC__Vsnprintf);
- }
- else
- printf("ADDRESS 5 NOT FOUND!\n");
- if(ADDRESS6)
- {
- oProtoHttpPost = (FUNC_PHTTPP)DetourFunction((PBYTE)ADDRESS6, (PBYTE)ProtoHttpPost);
- }
- else
- printf("ADDRESS 6 NOT FOUND!\n");
- if(ADDRESS7)
- {
- oLobbyBase64Decode = (FUNC_LOBDE)DetourFunction((PBYTE)ADDRESS7, (PBYTE)LobbyBase64Decode);
- }
- else
- printf("ADDRESS 7 NOT FOUND!\n");
- if(ADDRESS8)
- {
- oLobbyBase64Encode = (FUNC_LOBEN)DetourFunction((PBYTE)ADDRESS8, (PBYTE)LobbyBase64Encode);
- }
- else
- printf("ADDRESS 8 NOT FOUND!\n");
- if(ADDRESS9)
- {
- osub_F4E470 = (FUNC_F4E4)DetourFunction((PBYTE)ADDRESS9, (PBYTE)CertCheck);
- }
- else
- printf("ADDRESS 9 NOT FOUND!\n");
- if(ADDRESS10)
- {
- oCryptRSAEncrypt = (FUNC_CRYP)DetourFunction((PBYTE)ADDRESS10, (PBYTE)CryptRSAEncrypt);
- }
- else
- printf("ADDRESS 10 NOT FOUND!\n");
- break;
- }
- return TRUE;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement