Dr_FarFar

[C++] mIRC v7.32 Crack Loader

Aug 25th, 2016
174
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.38 KB | None | 0 0
  1. /***
  2. ▄▄▄▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄▄▄▄▄
  3. ▐░░░░░░░░░░▌ ▐░░░░░░░░░░░▌ ▐░░░░░░░░░░░▌▐░░░░░░░░░░░▌▐░░░░░░░░░░░▌▐░░░░░░░░░░░▌▐░░░░░░░░░░░▌▐░░░░░░░░░░░▌
  4. ▐░█▀▀▀▀▀▀▀█░▌▐░█▀▀▀▀▀▀▀█░▌ ▐░█▀▀▀▀▀▀▀▀▀ ▐░█▀▀▀▀▀▀▀█░▌▐░█▀▀▀▀▀▀▀█░▌▐░█▀▀▀▀▀▀▀▀▀ ▐░█▀▀▀▀▀▀▀█░▌▐░█▀▀▀▀▀▀▀█░▌
  5. ▐░▌ ▐░▌▐░▌ ▐░▌ ▐░▌ ▐░▌ ▐░▌▐░▌ ▐░▌▐░▌ ▐░▌ ▐░▌▐░▌ ▐░▌
  6. ▐░▌ ▐░▌▐░█▄▄▄▄▄▄▄█░▌ ▐░█▄▄▄▄▄▄▄▄▄ ▐░█▄▄▄▄▄▄▄█░▌▐░█▄▄▄▄▄▄▄█░▌▐░█▄▄▄▄▄▄▄▄▄ ▐░█▄▄▄▄▄▄▄█░▌▐░█▄▄▄▄▄▄▄█░▌
  7. ▐░▌ ▐░▌▐░░░░░░░░░░░▌ ▐░░░░░░░░░░░▌▐░░░░░░░░░░░▌▐░░░░░░░░░░░▌▐░░░░░░░░░░░▌▐░░░░░░░░░░░▌▐░░░░░░░░░░░▌
  8. ▐░▌ ▐░▌▐░█▀▀▀▀█░█▀▀ ▐░█▀▀▀▀▀▀▀▀▀ ▐░█▀▀▀▀▀▀▀█░▌▐░█▀▀▀▀█░█▀▀ ▐░█▀▀▀▀▀▀▀▀▀ ▐░█▀▀▀▀▀▀▀█░▌▐░█▀▀▀▀█░█▀▀
  9. ▐░▌ ▐░▌▐░▌ ▐░▌ ▐░▌ ▐░▌ ▐░▌▐░▌ ▐░▌ ▐░▌ ▐░▌ ▐░▌▐░▌ ▐░▌
  10. ▐░█▄▄▄▄▄▄▄█░▌▐░▌ ▐░▌ ▄ ▐░▌ ▐░▌ ▐░▌▐░▌ ▐░▌ ▐░▌ ▐░▌ ▐░▌▐░▌ ▐░▌
  11. ▐░░░░░░░░░░▌ ▐░▌ ▐░▌▐░▌▐░▌ ▐░▌ ▐░▌▐░▌ ▐░▌▐░▌ ▐░▌ ▐░▌▐░▌ ▐░▌
  12. ▀▀▀▀▀▀▀▀▀▀ ▀ ▀ ▀ ▀ ▀ ▀ ▀ ▀ ▀ ▀ ▀ ▀ ▀
  13.  
  14.  
  15.  
  16. ~~~ :xD: Have Fun. Don't Forget To Bookmark This Website :xD:
  17. ~~~ https://www.FaceBook.com/Dr.FarFar
  18. ~~~ http://Dr-FarFar.BlogSpot.com/
  19.  
  20. */
  21.  
  22. ########################################################################################################################
  23.  
  24. #include <windows.h>
  25. #include <TlHelp32.h>
  26.  
  27. #define MSGBOX_CAPTION "Error"
  28.  
  29. DWORD dwAddress2Diff = 0x000000C2;
  30.  
  31. BYTE Signature[] = {0x0F,0x85,0x00,0x01};
  32.  
  33. BYTE Replacement[] = {0xE9,0x01,0x01,0x00,0x00,0x90};
  34. BYTE Replacement2[] = {0x90,0x90,0x90,0x90,0x90,0x90};
  35.  
  36. struct ModuleInfo {
  37. DWORD dwStartAddress;
  38. DWORD dwEndAdress;
  39. } Module;
  40.  
  41. int GetModuleInfo(DWORD dwProcessIdentifier,TCHAR *lpszModuleName) {
  42. int Code=0;
  43. HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE,dwProcessIdentifier);
  44.  
  45. if(hSnapshot != INVALID_HANDLE_VALUE) {
  46. MODULEENTRY32 ModuleEntry32 = {0};
  47. ModuleEntry32.dwSize = sizeof(MODULEENTRY32);
  48. if(Module32First(hSnapshot,&ModuleEntry32)) {
  49. do {
  50. if(strcmp(ModuleEntry32.szModule,lpszModuleName) == 0) {
  51. Module.dwStartAddress = (DWORD)ModuleEntry32.modBaseAddr;
  52. Module.dwEndAdress = (DWORD)(Module.dwStartAddress+ModuleEntry32.modBaseSize);
  53. Code=1;
  54. break;
  55. }
  56. } while(Module32Next(hSnapshot,&ModuleEntry32));
  57. }
  58.  
  59. CloseHandle(hSnapshot);
  60. }
  61.  
  62. return Code;
  63. }
  64.  
  65. int main(int argc,char *argv[]) {
  66. char szName[32];
  67. memset(szName,0,sizeof(szName));
  68.  
  69. if(!strcmpi(argv[1],"-name") && argv[2]!='\0') {
  70. strncat(szName,argv[2],sizeof(szName)-1);
  71. } else {
  72. strncat(szName,"Registered",sizeof(szName)-1);
  73. }
  74.  
  75. HKEY hKey;
  76. RegCreateKeyEx(HKEY_CURRENT_USER,"Software\\mIRC\\UserName",0,NULL,REG_OPTION_VOLATILE,KEY_ALL_ACCESS,NULL,&hKey,NULL);
  77. RegSetValueEx(hKey,NULL,0,REG_SZ,(unsigned char*)szName,strlen(szName));
  78. RegCreateKeyEx(HKEY_CURRENT_USER,"Software\\mIRC\\License",0,NULL,REG_OPTION_VOLATILE,KEY_ALL_ACCESS,NULL,&hKey,NULL);
  79. RegCreateKeyEx(HKEY_CURRENT_USER,"Software\\mIRC\\Validated",0,NULL,REG_OPTION_VOLATILE,KEY_ALL_ACCESS,NULL,&hKey,NULL);
  80. RegCloseKey(hKey);
  81.  
  82. typedef BOOL (*DEBUGACTIVEPROCESSSTOP)(DWORD);
  83. DEBUGACTIVEPROCESSSTOP _DebugActiveProcessStop;
  84. HMODULE hK32 = LoadLibrary("kernel32.dll");
  85. _DebugActiveProcessStop=(DEBUGACTIVEPROCESSSTOP)GetProcAddress(hK32,"DebugActiveProcessStop");
  86.  
  87. STARTUPINFO StartupInfo = {};
  88. PROCESS_INFORMATION ProcInfo = {};
  89. if(!CreateProcess("mirc.exe",0,0,FALSE,0,DEBUG_ONLY_THIS_PROCESS,0,0,&StartupInfo,&ProcInfo)) {
  90. MessageBox(0,"Failed to open mirc.exe\rEnsure loader is within mIRC installation folder",MSGBOX_CAPTION,MB_ICONERROR);
  91. return 0;
  92. }
  93.  
  94. DEBUG_EVENT DebugEvent;
  95. bool bReady2Exit = false;
  96. while(!bReady2Exit) {
  97. memset(&DebugEvent,0,sizeof(DEBUG_EVENT));
  98. if(WaitForDebugEvent(&DebugEvent,1000)) {
  99. if(DebugEvent.dwDebugEventCode == LOAD_DLL_DEBUG_EVENT) {
  100. if(GetModuleInfo(ProcInfo.dwProcessId,(char*)&"mirc.exe")) {
  101. DWORD dwCurrentAddress = Module.dwStartAddress;
  102. BYTE *MemValue;
  103. int iSigLen=sizeof(Signature);
  104. while(dwCurrentAddress < Module.dwEndAdress) {
  105. ReadProcessMemory(ProcInfo.hProcess,(void*)dwCurrentAddress,&MemValue,iSigLen,NULL);
  106.  
  107. if(memcmp(Signature,&MemValue,iSigLen) == 0) {
  108. if(WriteProcessMemory(ProcInfo.hProcess,(void*)dwCurrentAddress,&Replacement,sizeof(Replacement),NULL) == 0
  109. || WriteProcessMemory(ProcInfo.hProcess,(void*)(dwCurrentAddress-dwAddress2Diff),&Replacement2,sizeof(Replacement2),NULL) == 0) {
  110. MessageBox(0,"Memory write failed\rEnsure you are using mIRC v7.32",MSGBOX_CAPTION,MB_ICONERROR);
  111. return 0;
  112. }
  113.  
  114. _DebugActiveProcessStop(ProcInfo.dwProcessId);
  115. bReady2Exit=true;
  116. break;
  117. }
  118.  
  119. dwCurrentAddress++;
  120. }
  121. }
  122. }
  123.  
  124. ContinueDebugEvent(DebugEvent.dwProcessId,DebugEvent.dwThreadId,DBG_CONTINUE);
  125. }
  126. }
  127.  
  128. CloseHandle(ProcInfo.hProcess);
  129. CloseHandle(ProcInfo.hThread);
  130.  
  131. return 0;
  132. }
  133.  
  134.  
  135.  
  136. ########################################################################################################################
  137.  
  138. https://www.facebook.com/Dr.FarFar
  139. http://Dr-FarFar.BlogSpot.com/
  140.  
  141. ________ __________ __________
  142. ___ __ \___________ ____/______ ____________ ____/______ _________
  143. __ / / /__ ___/__ /_ _ __ `/__ ___/__ /_ _ __ `/__ ___/
  144. _ /_/ / _ /___ _ __/ / /_/ / _ / _ __/ / /_/ / _ /
  145. /_____/ /_/ _(_)/_/ \__,_/ /_/ /_/ \__,_/ /_/
  146.  
  147. ~\ Dr.FarFar /~
Add Comment
Please, Sign In to add comment