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>
- using namespace std;
- 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;
- DWORD baseAddress;
- DWORD crossID;
- int currentCrossID;
- char moduleName[] = "client_panorama.dll";
- HWND hGameWindow;
- HANDLE pHandle;
- hGameWindow = FindWindow(NULL, "Counter-Strike: Global Offensive");
- GetWindowThreadProcessId(hGameWindow, &pID);
- pHandle = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pID);
- //Get Handles
- DWORD clientBase = dwGetModuleBaseAddress(_T(moduleName), pID);
- ReadProcessMemory(pHandle, (LPCVOID)(clientBase + 0x04C28FC4), &baseAddress, sizeof(baseAddress), NULL);
- ReadProcessMemory(pHandle, (LPCVOID)(baseAddress + 0x18), &off1, sizeof(off1), NULL);
- ReadProcessMemory(pHandle, (LPCVOID)(off1 + 0x24), &off2, sizeof(off2), NULL);
- ReadProcessMemory(pHandle, (LPCVOID)(off2 + 0x4), &off3, sizeof(off3), NULL);
- crossID = off3 + 0x68;
- do {
- ReadProcessMemory(pHandle, (LPCVOID)(crossID), ¤tCrossID, 4, NULL);
- cout << "CrossID: " << currentCrossID << std::endl;
- system("cls");
- if (currentCrossID > 0) {
- mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
- Sleep(15);
- mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
- }
- } while (true);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement