Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > C/C++
You last visited: Today at 05:54

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[C++]Einfacheres MemoryWrite/MemoryRead

Discussion on [C++]Einfacheres MemoryWrite/MemoryRead within the C/C++ forum part of the Coders Den category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Sep 2009
Posts: 51
Received Thanks: 10
[C++]Einfacheres MemoryWrite/MemoryRead

Hi,

ich hab hier mal zur Übung/aus Langeweile zwei Funktionen geschrieben, die das Lesen bzw. Schreiben einer Speicheradresse vereinfachen. Ist nichts besonderes und ich denke viele haben das bestimmt schon, aber vllt kann es ja der ein oder andere gebrauchen. Falls ihr Verbesserungsvorschläge habt, immer her damit

Hier die Funktion, die einen Wert schreibt:
Code:
bool MemoryWrite(LPWSTR fensterName, unsigned address, int value){
	HWND fensterHandle;
	fensterHandle = FindWindow(0,fensterName);
	HANDLE processHandle;
	DWORD id;

	if (!fensterHandle) 
	{
		return false;
	} else {
		GetWindowThreadProcessId(fensterHandle, &id);
		processHandle = OpenProcess(PROCESS_VM_WRITE | PROCESS_VM_OPERATION, false, id);
		fflush(stdin);
		WriteProcessMemory(processHandle, (LPVOID) address, &value, sizeof(int), NULL);
		return true;
	}
}
und hier die Funktion, die den entsprechenden Wert der gewünschten Adresse zurückgibt:
Code:
int MemoryRead(LPWSTR fensterName, unsigned address){
	int value;
	HWND fensterHandle;
	fensterHandle = FindWindow(0,fensterName);
	HANDLE processHandle;
	DWORD id;

	GetWindowThreadProcessId(fensterHandle, &id);
	processHandle = OpenProcess(PROCESS_VM_OPERATION | PROCESS_VM_READ , false, id);
	fflush(stdin);
	ReadProcessMemory(processHandle, (LPVOID) address, &value, sizeof(int), NULL);
	return value;
}
Ich hoffe, ich kann euch damit evtl. wenigstens 1-2 Minuten Arbeit ersparen

mfg
Zulman
Zulman is offline  
Old 10/05/2010, 17:45   #2


 
MrSm!th's Avatar
 
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,902
Received Thanks: 25,407
und was machst du bei float werten? was machst du bei texten? was machst du, wenn du keinen fensternamen sondern nur ne PID hast?
was macht man, wenn man ne dll hat?

also ich finde wrapper für sowas nicht so schön, da sie meist das verständnis, wie es denn wirklich abgeht, einfach zerstören :<
und wirklich gelungen ist er dazu auch nicht...

ach ja, ans ende gehört
Code:
CloseHandle(processHandle);
und du solltest nicht nur das Fensterhandle prüfen, sondern auch das Prozesshandle und bei beiden Funktionen solltest du zurückgeben, ob es geklappt hat oder nicht und nicht nur bei der ersten.
MrSm!th is offline  
Thanks
1 User
Old 10/05/2010, 18:37   #3
 
elite*gold: 20
Join Date: Sep 2006
Posts: 1,100
Received Thanks: 184
Bot_interesierter is offline  
Old 10/07/2010, 17:48   #4
 
Lazeboy's Avatar
 
elite*gold: 0
Join Date: Jun 2008
Posts: 451
Received Thanks: 410
mhh ich dachte man umschreibt ReadProcessMemory oder Write.....
mit memcpy und diesen befehlen so hab ich das gemacht.
Lazeboy is offline  
Old 10/07/2010, 17:50   #5
 
elite*gold: 0
Join Date: Oct 2010
Posts: 18
Received Thanks: 2
Wow, super schnipsel, danke dir vielmals, die anderen die ich gesehen hatte waren riesig
Fettbraten is offline  
Reply


Similar Threads Similar Threads
[Hilfe] MemoryRead in WoW
07/03/2010 - AutoIt - 3 Replies
Huhu, wollte mich mal wieder ans MemoryRead wagen. Ich komme einfach nicht weiter und finde nichts im Internet (bzw. Foren). Ich möchte einfach mal nur den Spielernamen auslesen. Mein Code sieht imo so aus: #include <NoMadMemory.au3> #RequireAdmin $PID = ProcessExists("Wow.exe")
Adressen finden [Cheat Engine] - MemoryWrite [Autoit]
05/14/2010 - Tutorials - 6 Replies
Habe hier 2 nützliche Tutorials gefunden wo erklärt wird wie Adressen finden könnt und anschliessend das ganze per Memory Write in Autoit umsetzen könnt. Dieses Tutorial ist nicht von mir. YouTube - Memory Hacking 1/2 YouTube - Memory Hacking 2/2 Das gleiche Schema kann man auch für Bots per Memory Write benutzen. lg
Memorywrite geht nicht immer
03/05/2009 - GW Bots - 7 Replies
Hallo ich hab ein problem Ich will nen NPC anwählen über Memories Manchmal gehts, manchmal nicht und ich komm einfach nicht drauf wieso. $gw= ProcessExists("Gw.exe") $mem = _MemoryOpen($gw) $npc= 0xd284e0
[AUTOMATON] Einfacheres Eingeben der Befehle
04/01/2008 - Flyff - 6 Replies
Es gibt einen einfacheren Weg um Befehle einzugeben: Wenn ihr im "einfg" Fenster z.B. "StartGrinding" eingebt, könnt ihr stattdessen einfach im chat "@StartGrinding" eingeben. also einfach @ davor. Dann einfach die Sprechblase links im Chat auf eine "F-Taste" ziehen, und voila habt ihr eine Taste für den Angriff :D



All times are GMT +1. The time now is 05:54.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2025 elitepvpers All Rights Reserved.