Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <Windows.h>
- #include <iostream>
- #include <vector>
- #include <TlHelp32.h>
- #include <tchar.h>
- #include <stdint.h>
- #include <stdio.h>
- #include "ConsoleApplication3.h"
- using namespace std;
- union ulf
- {
- unsigned long ul;
- float f;
- };
- DWORD dwGetModuleBaseAddress(TCHAR *lpszModuleName, DWORD pID) {
- DWORD dwModuleBaseAddress = 0;
- HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, pID);
- MODULEENTRY32 ModuleEntry32 = { 0 };
- ModuleEntry32.dwSize = sizeof(MODULEENTRY32);
- if (Module32First(hSnapshot, &ModuleEntry32))
- {
- do {
- if (_tcscmp(ModuleEntry32.szModule, lpszModuleName) == 0)
- {
- dwModuleBaseAddress = (DWORD)ModuleEntry32.modBaseAddr;
- break;
- }
- } while (Module32Next(hSnapshot, &ModuleEntry32));
- }
- CloseHandle(hSnapshot);
- return dwModuleBaseAddress;
- }
- int main() {
- DWORD pID;
- DWORD off1, off2, off3, off4, off5, off6, off7;
- DWORD mp1, mp2, mp3, mp4, mp5, mp6, mp7;
- DWORD baseAddress;
- DWORD healthAddy;
- HWND hGameWindow;
- HANDLE pHandle;
- int currentHealth;
- char moduleName[] = "zdkrc.exe";
- //Get Handles
- hGameWindow = FindWindow(NULL, "Dekaron");
- GetWindowThreadProcessId(hGameWindow, &pID);
- pHandle = OpenProcess(PROCESS_VM_READ, FALSE, pID);
- //Get Client Base Addy
- DWORD clientBase = dwGetModuleBaseAddress(_T(moduleName), pID);
- ReadProcessMemory(pHandle, (LPCVOID)(clientBase + 0x0087BC34), &baseAddress, sizeof(baseAddress), NULL);
- //Health
- ReadProcessMemory(pHandle, (LPCVOID)(baseAddress + 0x4), &off1, sizeof(off1), NULL);
- ReadProcessMemory(pHandle, (LPCVOID)(off1 + 0x4C), &off2, sizeof(off2), NULL);
- ReadProcessMemory(pHandle, (LPCVOID)(off2 + 0x34), &off3, sizeof(off3), NULL);
- ReadProcessMemory(pHandle, (LPCVOID)(off3 + 0x88), &off4, sizeof(off4), NULL);
- ReadProcessMemory(pHandle, (LPCVOID)(off4 + 0x4), &off5, sizeof(off5), NULL);
- ReadProcessMemory(pHandle, (LPCVOID)(off5 + 0x50), &off6, sizeof(off6), NULL);
- ReadProcessMemory(pHandle, (LPCVOID)(off6 + 0x1C), &off7, sizeof(off7), NULL);
- cout << "HP Count HEX: " << std::hex << off7 << std::endl;
- //Mana
- ReadProcessMemory(pHandle, (LPCVOID)(baseAddress + 0x4), &mp1, sizeof(mp1), NULL);
- ReadProcessMemory(pHandle, (LPCVOID)(mp1 + 0xD8), &mp2, sizeof(mp2), NULL);
- ReadProcessMemory(pHandle, (LPCVOID)(mp2 + 0x4), &mp3, sizeof(mp3), NULL);
- ReadProcessMemory(pHandle, (LPCVOID)(mp3 + 0xD4), &mp4, sizeof(mp4), NULL);
- ReadProcessMemory(pHandle, (LPCVOID)(mp4 + 0x38), &mp5, sizeof(mp5), NULL);
- ReadProcessMemory(pHandle, (LPCVOID)(mp5 + 0x50), &mp6, sizeof(mp6), NULL);
- ReadProcessMemory(pHandle, (LPCVOID)(off6 + 0x20), &mp7, sizeof(mp7), NULL);
- cout << "MP Count HEX: " << std::hex << mp7 << std::endl;
- //HP Float
- unsigned long valuehp = off7;
- float floatHP = *reinterpret_cast<float*>(&valuehp);
- std::cout << "HP FLOAT = " << floatHP << "\n";
- //MP Float
- unsigned long valuemp = mp7;
- float floatMP = *reinterpret_cast<float*>(&valuemp);
- std::cout << "MP FLOAT = " << floatMP << "\n";
- cin.get();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement