God kveld freaker.
Jeg har en venn som har vært så grei å gi meg en header og ba meg dele den med verden, så da gir jeg den til dere her på Freakforum.
Denne krever nok en viss teknisk innsikt for å få glede av.
Det eneste jeg ber om, er at dere ikke misbruker headeren ved å ta æren for den, da det ville vært dårlig gjort mot fyren jeg fikk dette av.
cHack
Eksempelet bruker spillet Soldat, men headeren fungerer på hvilken som helst .exe-fil.
For å finne adressene du skal skrive til, er Cheat Engine er flott alternativ.
PS: Nå er jeg trøtt, kommer tilbake med mer detaljerte guider på hvordan ting fungerer senere.
EDIT: Op kan få plassere denne tråden i datasikkerhet eller programmering sånn som det passer dem. Jeg er ikke sikker på hvor den skal, så slang den hit.
Jeg har en venn som har vært så grei å gi meg en header og ba meg dele den med verden, så da gir jeg den til dere her på Freakforum.
Denne krever nok en viss teknisk innsikt for å få glede av.
Det eneste jeg ber om, er at dere ikke misbruker headeren ved å ta æren for den, da det ville vært dårlig gjort mot fyren jeg fikk dette av.
cHack
Kode
/* CHack.h - Mateo's CHack class for hacking all kinds of external applications Written by Mateo - 2008-11-15. Just include this header in your project. */ #pragma once #include <windows.h> #include <tlhelp32.h> #include <psapi.h> #include <cstdio> #include <string> using std::string; class CHack { public: bool Active; DWORD ProcessID; void Initialize(char *ProcessName) { ProcessID = GetPIDFromName(ProcessName); if (ProcessID != NULL) { hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, ProcessID); Active = true; } else Active = false; }; void Initialize(char *WindowName, char *ClassName) { ProcessID = GetPIDFromWindow(WindowName, ClassName); if (ProcessID != NULL) { hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, ProcessID); Active = true; } else Active = false; }; template <typename T> void Write(int Address, T Value) { if (Active) { T NewData = Value; DWORD NewDataSize = sizeof(NewData); WriteProcessMemory(hProcess, (LPVOID)Address, &NewData, NewDataSize, 0); } }; template <typename T> T Read(int Address) { if (Active) { T Ret; ReadProcessMemory(hProcess, (LPVOID) Address, &Ret, sizeof(T), NULL); return Ret; } }; CHack() { Active = false; hProcess = NULL; ProcessID = NULL; }; ~CHack() { CloseHandle(hProcess); }; private: HANDLE hProcess; DWORD GetPIDFromWindow(char *WindowName, char *ClassName) { DWORD ProcID; HWND TargetWnd; TargetWnd = FindWindowA(ClassName, WindowName); GetWindowThreadProcessId(TargetWnd, &ProcID); return ProcID; }; DWORD GetPIDFromName(char *ProcessName) { DWORD PID = 0; string Name = ProcessName; Name = ::CharLowerA((char*) Name.c_str()); PROCESSENTRY32 lp; HANDLE lh = NULL; memset(&lp, 0, sizeof(lp)); lp.dwSize = sizeof(lp); lh = ::CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); int Found = ::Process32First(lh, &lp); while(Found) { char* dName = new char[(int) ((wcslen(lp.szExeFile) + 1) * sizeof(wchar_t))]; ::WideCharToMultiByte(CP_ACP, 0, lp.szExeFile, -1, dName, static_cast <int> (wcslen(lp.szExeFile) + 1), NULL, NULL); dName = ::CharLowerA(dName); if (0 == Name.compare(dName)){ PID = lp.th32ProcessID; delete [] dName; dName = NULL; break; } delete [] dName; dName = NULL; Found = ::Process32NextW(lh, &lp); } return PID; }; };
Kode
Usage: Code: // Hack Example.cpp #include "CHack.h" #include <iostream> using std::cout; CHack Soldat; int main(void) { while (Soldat.Active == false) Soldat.Initialize("Soldat.exe"); // Make sure Soldat is active first. // Soldat.Active is the variable that tells you wether its ready to write/read the process. while (1) { // Each second, print out the current position for slot 1 cout << Soldat.Read <float> (0xAFAE64) << ", "; cout << Soldat.Read <float> (0xAFAE68) << "\n"; Sleep(1000); } return 0; }
For å finne adressene du skal skrive til, er Cheat Engine er flott alternativ.
PS: Nå er jeg trøtt, kommer tilbake med mer detaljerte guider på hvordan ting fungerer senere.
EDIT: Op kan få plassere denne tråden i datasikkerhet eller programmering sånn som det passer dem. Jeg er ikke sikker på hvor den skal, så slang den hit.
Sist endret av 7th_account; 11. juli 2009 kl. 00:19.