Advertisement
Guest User

Untitled

a guest
Mar 17th, 2018
177
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.00 KB | None | 0 0
  1. // TheSHADOWY Dll..... Agradecimentos Define, Smoll.
  2.  
  3. #pragma warning(disable:4996)
  4.  
  5. #ifdef _MSC_VER
  6. #define _CRT_SECURE_NO_WARNINGS
  7. #endif
  8.  
  9. #include <iostream>
  10. #include <Windows.h>
  11. #include <string>
  12. #include <ctime>
  13. #include <SDKDDKVer.h>
  14.  
  15. using namespace std;
  16. string GameStatus;
  17. //FUNCTION PROTOTIPADAS
  18. bool IsGameAvail;
  19. bool UpdateOnNextRun; //Usar para o update do display menu apenas em checagem
  20.  
  21.  
  22.  
  23. void  OpenConsole() {
  24.  
  25.     AllocConsole();
  26.     freopen("CONIN$", "r", stdin);
  27.     freopen("CONOUT$", "w", stdout);
  28.     freopen("CONOUT$", "w", stderr);
  29.     SetConsoleTitle(L"Torchlight");
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36.     }
  37.  
  38.  
  39.  
  40.  
  41. DWORD WINAPI IniComds(LPVOID blabla) {
  42.  
  43.  
  44.     bool vidastatus; // STATUS DE LIGADO OU DESLIGADO
  45.     bool goldStatus;
  46.     int timeSinceLastUpdate = clock(); //força status de update a cada x segundos
  47.     int GameAvailTMR = clock();
  48.     int OnePressTMR;//usando o limite de keys inserida para apenas 1 ou x ms
  49.     UpdateOnNextRun = true;
  50.     string sGoldStatus;
  51.     string sHealthStatus;
  52.     sGoldStatus = "OFF";
  53.     sHealthStatus = "OFF";
  54.     OnePressTMR = clock();
  55.     while (!GetAsyncKeyState(VK_INSERT))// SE A TECLA INSERT NAO FOR USADA  ABRE O MENU! SE APERTA FECHA O JOGO
  56.     {
  57.  
  58.         if (UpdateOnNextRun || clock() - timeSinceLastUpdate > 5000)
  59.         {
  60.             system("cls");
  61.             cout << "----------------------------------------------------" << "\n";
  62.             cout << "        DLL HACKER PARA TORCHLIGHT " << "\n";
  63.             cout << "----------------------------------------------------" << "\n\n";
  64.             cout << "GAME STATUS:" << GameStatus << "   " << "\n\n";
  65.             cout << "[F1] GOLD INFINITO -> " << sGoldStatus << " <-" << "\n\n";
  66.             cout << "[F2] VIDA INIFNITA ->" << sHealthStatus << "<-" << "\n\n";
  67.             cout << "[INSERT] FECHAR" << "\n";
  68.             UpdateOnNextRun = false;
  69.             timeSinceLastUpdate = clock();
  70.        
  71.    
  72.  
  73.         while (true) {
  74.  
  75.             if (GetAsyncKeyState(VK_F2) & 1) {
  76.  
  77.                 OnePressTMR = clock();
  78.                 vidastatus = !vidastatus;
  79.                 UpdateOnNextRun = true;
  80.                 if (vidastatus)sHealthStatus = "ON";
  81.                 else sHealthStatus = "OFF";
  82.  
  83.  
  84.                 DWORD Address = (int)GetModuleHandle(L"Torchlight.exe") + 0x00A2B6A4; // soma o endereço estatico                
  85.                 printf("0x%X \n", Address);// o local desse endereço aponta pra outro endereço        
  86.  
  87.  
  88.                 Address = *(DWORD*)Address; //faço a leitura do endereço dinamico que está no estatico
  89.                 printf("0x%X \n", Address); //primeira parte do endereço dinamico
  90.  
  91.  
  92.                 Address = *(DWORD*)(Address + 0x1c);//soma o endereço dinamico + um offset,
  93.                                                     //que vai ser lido nesse ponto que obtem outro endereço para outro ponto dinamico o segundo no caso
  94.                 printf("0x%X \n", Address); //segundo endereço dinamico
  95.  
  96.                 Address = (Address + 0x394);//soma esse nedereço dinamico mais outro offset para pegar o endereço
  97.                                             //observe que eu não fiz a leitura só a soma, por que é o endereço final
  98.                 printf("0x%X \n", Address); //'ENDEREÇO' final        
  99.  
  100.                 printf("Valor? %f \n", *(FLOAT*)Address); // ler em float
  101.                 *(FLOAT*)Address = 9999; //editar em float
  102.                                          //perceba que a todo ponto a ponto eu tratei cada endereço em DWORD, que é inteiro e sempre positivo
  103.                 cout << "ativado\n";
  104.                 for (;;) { *(FLOAT*)Address = 9999; }
  105.                 cout << "ativado\n";
  106.  
  107.             }
  108.             else if (GetAsyncKeyState(VK_F1) & 1) {
  109.  
  110.                 OnePressTMR = clock();
  111.                 //Reverter o valor do status para on ou off
  112.                 goldStatus = !goldStatus;
  113.                 UpdateOnNextRun = true;
  114.                 //changes the text to update on next display
  115.                 if (goldStatus)sGoldStatus = "ON";
  116.                 else sGoldStatus = "OFF";
  117.  
  118.                 *(DWORD*)(
  119.                     *(DWORD*)(
  120.                         *(DWORD*)(
  121.                             *(DWORD*)(
  122.                                 *(DWORD*)(
  123.                                     *(DWORD*)((int)GetModuleHandle(L"Torchlight.exe") + 0x00A2B6A4) + 0x1c) + 0x660) + 0xc) + 0x18) + 0x3c4) = 999;
  124.                 cout << "Gold alterado ativado\n";
  125.             }
  126.  
  127.         }
  128.  
  129.     }
  130.  
  131.     }
  132.     return 0;
  133. }
  134. BOOL APIENTRY DllMain(HMODULE hModule,
  135.     DWORD  dReason,
  136.     LPVOID lpReserved
  137. )
  138. {
  139.     if (dReason == DLL_PROCESS_ATTACH) {
  140.         OpenConsole();
  141.         CreateThread(NULL, NULL, IniComds, NULL, NULL, NULL);
  142.     }
  143.     return TRUE;
  144. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement