|
You last visited: Today at 02:15
Advertisement
ReadProcessMemory
Discussion on ReadProcessMemory within the General Coding forum part of the Coders Den category.
04/29/2011, 22:15
|
#1
|
elite*gold: 0
Join Date: Jan 2010
Posts: 112
Received Thanks: 564
|
ReadProcessMemory
Habe ein gutes beispiel für pointer und offsets um internet gefunden doch leider klappt es nur bei dem programm
was auch im video war ich wollte es jetzt mal bei 4story ausprobieren nur leider geht es nicht ( private server )
hier mal das programm
PHP Code:
#include <iostream>
#include <windows.h>
using namespace std;
//---------------------------------
//Offsets
#define BASE 0x07056A8
#define OFF1 0x42B
#define OFF2 0xAC0
//---------------------------------
//Andere Sachen die wir noch brauchen
HWND hwnd;
HANDLE handle;
DWORD ID;
LPCTSTR lpWindowName = L"4Story_GSP";
bool SetDebugPrivileges();
int main(){
int puffer = 0;
DWORD rw=0;
//--------- Injection ------------
// Suche Prozess (Runes of Magic)
while(!hwnd){
cout << "Suche nach dem Prozess und injecte..." << endl;
hwnd = FindWindow(NULL, lpWindowName);
if(!hwnd)
printf("\r");
Sleep(100);
}
// Prozess-ID besorgen
GetWindowThreadProcessId(hwnd, &ID);
//Rechte zum auslesen besorgen
SetDebugPrivileges();
// Prozess ?ffnen mit allen Rechten
handle = OpenProcess(PROCESS_ALL_ACCESS, false, ID);
//---------------------------------
/*
An diesem Punkt beginnen wir nun mit dem eigentlichem auslesen aus dem Hauptspeicher
Ich demonstriere das jetzt mal an der jeweiligen aktuellen HP Zahl
*/
// Struct erstellen
int hp;
int hp_puff = 0;
int mana_puff = 0;
DWORD baseptr;
DWORD pptr;
while(hwnd)
{
//Hier haben wir nun eine Schleife, die jede Sekunde die HP Zahl ?berpr?ft
// Adresse auslesen
ReadProcessMemory(handle, (void*)BASE, &baseptr, sizeof(baseptr), &rw);
// Player Addy auslesen
ReadProcessMemory(handle, (void*)(baseptr+OFF1), &pptr, sizeof(pptr), &rw);
// Aktuelle und max. HP auslesen auslesen
ReadProcessMemory(handle, (void*)(pptr+OFF2), &hp, sizeof(hp), &rw);
// HP ausgeben
if(hp != hp_puff)
{
cout << "Punkte: " << hp << endl;
hp_puff = hp;
}
Sleep(1000);
}
// Anhalten f?r ?berpr?fung
system("pause");
CloseHandle(handle);
return 0;
}
bool SetDebugPrivileges()
{
HANDLE hToken;
TOKEN_PRIVILEGES tokenPriv;
tokenPriv.PrivilegeCount = 1;
if(!OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES, &hToken))
return false;
if(!LookupPrivilegeValue(NULL, SE_DEBUG_NAME, &tokenPriv.Privileges[0].Luid))
return false;
tokenPriv.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
if(!AdjustTokenPrivileges(hToken, false, &tokenPriv, sizeof(TOKEN_PRIVILEGES), NULL, NULL))
return false;
return true;
}
das problem ist , das er zwar injectet aber immer ne -8xxxxx zahl rauskomm anstat die 16230 wie in cheat engine :
|
|
|
04/29/2011, 23:03
|
#2
|
elite*gold: 0
Join Date: Apr 2008
Posts: 495
Received Thanks: 817
|
Quote:
Originally Posted by Evilkingg
Habe ein gutes beispiel für pointer und offsets um internet gefunden doch leider klappt es nur bei dem programm
was auch im video war ich wollte es jetzt mal bei 4story ausprobieren nur leider geht es nicht ( private server )
hier mal das programm
PHP Code:
#include <iostream> #include <windows.h> using namespace std; //--------------------------------- //Offsets #define BASE 0x07056A8 #define OFF1 0x42B #define OFF2 0xAC0 //--------------------------------- //Andere Sachen die wir noch brauchen HWND hwnd; HANDLE handle; DWORD ID; LPCTSTR lpWindowName = L"4Story_GSP"; bool SetDebugPrivileges(); int main(){ int puffer = 0; DWORD rw=0; //--------- Injection ------------ // Suche Prozess (Runes of Magic) while(!hwnd){ cout << "Suche nach dem Prozess und injecte..." << endl; hwnd = FindWindow(NULL, lpWindowName); if(!hwnd) printf("\r"); Sleep(100); } // Prozess-ID besorgen GetWindowThreadProcessId(hwnd, &ID); //Rechte zum auslesen besorgen SetDebugPrivileges(); // Prozess ?ffnen mit allen Rechten handle = OpenProcess(PROCESS_ALL_ACCESS, false, ID); //--------------------------------- /* An diesem Punkt beginnen wir nun mit dem eigentlichem auslesen aus dem Hauptspeicher Ich demonstriere das jetzt mal an der jeweiligen aktuellen HP Zahl */ // Struct erstellen int hp;
int hp_puff = 0; int mana_puff = 0; DWORD baseptr; DWORD pptr; while(hwnd) { //Hier haben wir nun eine Schleife, die jede Sekunde die HP Zahl ?berpr?ft // Adresse auslesen ReadProcessMemory(handle, (void*)BASE, &baseptr, sizeof(baseptr), &rw); // Player Addy auslesen ReadProcessMemory(handle, (void*)(baseptr+OFF1), &pptr, sizeof(pptr), &rw); // Aktuelle und max. HP auslesen auslesen ReadProcessMemory(handle, (void*)(pptr+OFF2), &hp, sizeof(hp), &rw); // HP ausgeben if(hp != hp_puff) { cout << "Punkte: " << hp << endl; hp_puff = hp; } Sleep(1000); } // Anhalten f?r ?berpr?fung system("pause"); CloseHandle(handle); return 0; } bool SetDebugPrivileges() { HANDLE hToken; TOKEN_PRIVILEGES tokenPriv; tokenPriv.PrivilegeCount = 1; if(!OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES, &hToken)) return false; if(!LookupPrivilegeValue(NULL, SE_DEBUG_NAME, &tokenPriv.Privileges[0].Luid)) return false; tokenPriv.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED; if(!AdjustTokenPrivileges(hToken, false, &tokenPriv, sizeof(TOKEN_PRIVILEGES), NULL, NULL)) return false; return true; }
das problem ist , das er zwar injectet aber immer ne -8xxxxx zahl rauskomm anstat die 16230 wie in cheat engine :

|
Falsche Offsets.
Auf deinem Bild ist Base = 0x7056A8, Offset1 = 0xAC0 und Offset2 = 0x9C6.
Aber lerne die Sprache doch erst mal anständig, bevor du dich mit Hacks beschaffst, weil durch C&P bringt dir es nicht viel.
MFG
|
|
|
04/29/2011, 23:22
|
#3
|
elite*gold: 0
Join Date: Jan 2010
Posts: 112
Received Thanks: 564
|
hmm danke ersmal für die antworte geh aber immer noch nicht
hast ja recht das ich das ersmal lernen sollten ur ich wei nich wo ich anfangen soll ich guck mir einfach mal ein paar sachen an und versuch dann damit zureck zukommen so das ich es zumlaufne kriege wenn ich 1 sache fertig hab mach ich die nächste
|
|
|
 |
Similar Threads
|
ReadProcessMemory From Lineage II
03/03/2011 - Lin2 Exploits, Hacks, Bots, Tools & Macros - 8 Replies
Hello, This is my second thread, and I hope someone can have some benefit from it.
Why do this? well maybe make an status bar to display health,mana, etc or
maybe you want to write data to the process, But in this article I show how to read.
First of all you need to inculde some files:
#include <Tlhelp32.h> to have access to:
|
[C++] ReadProcessMemory Text?
09/12/2010 - C/C++ - 5 Replies
die frage kommt den pros hier vllt etwas dumm vor, aber
ich befasse mich ja erst seit 2 wochen mit c++:
ich habe folgenden code:
ReadProcessMemory(handle,(LPVOID)address,&text ,sizeof(long),&numBytesRead);
cout << hex << text << "\n";
cout << char(text) << "\n";
ich will in einem spiel einen text auslesen.
der erste wert in der konsole entspricht dem 4 bytes wert in CE.
|
ReadProcessMemory, C++ Problem
08/09/2010 - C/C++ - 12 Replies
Hi, ich mach mich gerade ans Memory editing in C++ aber habe nen Problem mit ReadProcessMemory.
Hier mal mein Code:
#include <iostream>
#include <limits>
#include <windows.h>
using namespace std;
int main()
|
[Request]C# ReadProcessMemory
04/18/2010 - .NET Languages - 2 Replies
Hi epvp coders
I need an example for ReadProcessMemory in C#
I need a full console application example that explains the ReadProcessMemory (the whole code)
In deutsch
Hallo epvp Codierer
Ich brauche ein Beispiel für ReadProcessMemory in C #
Ich brauche ein voller Konsole-Anwendung beispielsweise, dass die ReadProcessMemory (der gesamte Code erklärt)
|
[delphi] ReadProcessMemory
10/30/2009 - General Coding - 1 Replies
Hey guys,
I don't know how to use ReadProcessMemory to get a string.
Code:
ReadProcessMemory(PHandle,Pointer($3B98D104),@tem ,4,Read);
...:= string(tem);
This gives me an error
|
All times are GMT +1. The time now is 02:16.
|
|