Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // TheSHADOWY Dll..... Agradecimentos Define, Smoll.
- #pragma warning(disable:4996)
- #ifdef _MSC_VER
- #define _CRT_SECURE_NO_WARNINGS
- #endif
- #include <iostream>
- #include <Windows.h>
- #include <string>
- #include <ctime>
- #include <SDKDDKVer.h>
- using namespace std;
- string GameStatus;
- //FUNCTION PROTOTIPADAS
- bool IsGameAvail;
- bool UpdateOnNextRun; //Usar para o update do display menu apenas em checagem
- void OpenConsole() {
- AllocConsole();
- freopen("CONIN$", "r", stdin);
- freopen("CONOUT$", "w", stdout);
- freopen("CONOUT$", "w", stderr);
- SetConsoleTitle(L"Torchlight");
- }
- DWORD WINAPI IniComds(LPVOID blabla) {
- bool vidastatus; // STATUS DE LIGADO OU DESLIGADO
- bool goldStatus;
- int timeSinceLastUpdate = clock(); //força status de update a cada x segundos
- int GameAvailTMR = clock();
- int OnePressTMR;//usando o limite de keys inserida para apenas 1 ou x ms
- UpdateOnNextRun = true;
- string sGoldStatus;
- string sHealthStatus;
- sGoldStatus = "OFF";
- sHealthStatus = "OFF";
- OnePressTMR = clock();
- while (!GetAsyncKeyState(VK_INSERT))// SE A TECLA INSERT NAO FOR USADA ABRE O MENU! SE APERTA FECHA O JOGO
- {
- if (UpdateOnNextRun || clock() - timeSinceLastUpdate > 5000)
- {
- system("cls");
- cout << "----------------------------------------------------" << "\n";
- cout << " DLL HACKER PARA TORCHLIGHT " << "\n";
- cout << "----------------------------------------------------" << "\n\n";
- cout << "GAME STATUS:" << GameStatus << " " << "\n\n";
- cout << "[F1] GOLD INFINITO -> " << sGoldStatus << " <-" << "\n\n";
- cout << "[F2] VIDA INIFNITA ->" << sHealthStatus << "<-" << "\n\n";
- cout << "[INSERT] FECHAR" << "\n";
- UpdateOnNextRun = false;
- timeSinceLastUpdate = clock();
- while (true) {
- if (GetAsyncKeyState(VK_F2) & 1) {
- OnePressTMR = clock();
- vidastatus = !vidastatus;
- UpdateOnNextRun = true;
- if (vidastatus)sHealthStatus = "ON";
- else sHealthStatus = "OFF";
- DWORD Address = (int)GetModuleHandle(L"Torchlight.exe") + 0x00A2B6A4; // soma o endereço estatico
- printf("0x%X \n", Address);// o local desse endereço aponta pra outro endereço
- Address = *(DWORD*)Address; //faço a leitura do endereço dinamico que está no estatico
- printf("0x%X \n", Address); //primeira parte do endereço dinamico
- Address = *(DWORD*)(Address + 0x1c);//soma o endereço dinamico + um offset,
- //que vai ser lido nesse ponto que obtem outro endereço para outro ponto dinamico o segundo no caso
- printf("0x%X \n", Address); //segundo endereço dinamico
- Address = (Address + 0x394);//soma esse nedereço dinamico mais outro offset para pegar o endereço
- //observe que eu não fiz a leitura só a soma, por que é o endereço final
- printf("0x%X \n", Address); //'ENDEREÇO' final
- printf("Valor? %f \n", *(FLOAT*)Address); // ler em float
- *(FLOAT*)Address = 9999; //editar em float
- //perceba que a todo ponto a ponto eu tratei cada endereço em DWORD, que é inteiro e sempre positivo
- cout << "ativado\n";
- for (;;) { *(FLOAT*)Address = 9999; }
- cout << "ativado\n";
- }
- else if (GetAsyncKeyState(VK_F1) & 1) {
- OnePressTMR = clock();
- //Reverter o valor do status para on ou off
- goldStatus = !goldStatus;
- UpdateOnNextRun = true;
- //changes the text to update on next display
- if (goldStatus)sGoldStatus = "ON";
- else sGoldStatus = "OFF";
- *(DWORD*)(
- *(DWORD*)(
- *(DWORD*)(
- *(DWORD*)(
- *(DWORD*)(
- *(DWORD*)((int)GetModuleHandle(L"Torchlight.exe") + 0x00A2B6A4) + 0x1c) + 0x660) + 0xc) + 0x18) + 0x3c4) = 999;
- cout << "Gold alterado ativado\n";
- }
- }
- }
- }
- return 0;
- }
- BOOL APIENTRY DllMain(HMODULE hModule,
- DWORD dReason,
- LPVOID lpReserved
- )
- {
- if (dReason == DLL_PROCESS_ATTACH) {
- OpenConsole();
- CreateThread(NULL, NULL, IniComds, NULL, NULL, NULL);
- }
- return TRUE;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement