Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > General Coding > Coding Tutorials
You last visited: Today at 04:47

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

Advertisement



[Tutorial] Gamehacking Howto I [Ger]

Discussion on [Tutorial] Gamehacking Howto I [Ger] within the Coding Tutorials forum part of the General Coding category.

Reply
 
Old 10/14/2009, 17:31   #136
 
elite*gold: 0
Join Date: Oct 2009
Posts: 30
Received Thanks: 5
wenn du es z.b. in nem mmorpg machst dann wirst du nur im client den betrag ändern du siehst zwar z.b. 9999 gold aber die bringen dir nichts da das geld in den datenbanken der server gespeichert sind
To4st is offline  
Thanks
1 User
Old 10/14/2009, 17:41   #137


 
MrSm!th's Avatar
 
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,902
Received Thanks: 25,407
Quote:
Originally Posted by Magix92 View Post
Okay, das habe ich mir eigentlich auch schon so gedacht.
Habs mal bei Pinball versucht, klappt wunderbar.

Super Tutorial

Jetzt Noobfrage des Jahrhunderts: Warum macht man dann nicht einfach somit Geld in iwelchen Onlinegames hoch?
Engine wird detected oder...wäre ja sonst zu einfach
macht man ja auch nur nicht mit geld weil das in der regel serversided ist sondern mit dingen die im client bearbeitet werden wie speed oder ähnliches
CE wird nicht überall detected meistens nur wenn es ein protect programm gibt
MrSm!th is offline  
Thanks
1 User
Old 10/14/2009, 17:51   #138
 
elite*gold: 0
Join Date: Oct 2009
Posts: 37
Received Thanks: 8
Okay super-ich danke euch.
Aber ich hänge mich gerade ständig an dem Schrit mit dem Pointer auf, ich suche die edi Adresse, setze Haken bei Hex und drücke new scan.
NICHTS wird gefunden.

Was mache ich falsch?
Next scan bringts auch nicht.

Gestern hab ichs noch hinbekommen
Magix92 is offline  
Old 10/14/2009, 19:04   #139


 
MrSm!th's Avatar
 
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,902
Received Thanks: 25,407
Nix zu danken.
Es ist nicht immer EDI! Du musst den Wert von dem Register nehmen, das in dieser "Rechnung" verwendet wird!
Hier ist es mov eax, [esi+30] an der stelle von esi kann auch was anderes stehen udn davon musst du den Wert nehmen!
CE ist aber so nett und schreibt ein bischen weiter unten (kann man auch auf dem screen sehen) nach welchem Wert man suchen muss
MrSm!th is offline  
Thanks
1 User
Old 10/14/2009, 19:12   #140
 
elite*gold: 0
Join Date: Oct 2009
Posts: 37
Received Thanks: 8
Quote:
Originally Posted by xhelloselm View Post
[esi+30]
In Pinball steht da aber nur [esi] ohne die +30
Was nun?
Magix92 is offline  
Old 10/14/2009, 19:23   #141


 
MrSm!th's Avatar
 
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,902
Received Thanks: 25,407
ja dann nimmst du nur den wert von esi!
aber es kann auch sein, dass du den falschen befehl ansiehst!
bei adroxxx auf dem screen ist ja auch einmal
mov eax, [esi+30]
mov [esi+30], eax

dann könnte man glauben es geht um eax
deswegen nutze ich wie gesagt den tipp von CE :



da könnte man auch glauben es geht um ecx oder edx deswegen wie gesagt ich nehm den tipp von CE^^
MrSm!th is offline  
Thanks
1 User
Old 10/14/2009, 19:42   #142

 
Adroxxx's Avatar
 
elite*gold: 15
Join Date: Nov 2005
Posts: 13,021
Received Thanks: 5,324
Quote:
Originally Posted by Magix92 View Post
In Pinball steht da aber nur [esi] ohne die +30
Was nun?
Bei Pinball findet man den Poiter etwas anders. Da musst du am besten mit Olly ran und einen BP machen, und dann einen BP auf den Funktionanfang und dann auf die RET adresse, und dann schauen wo ESI geschrieben wird.
Adroxxx is offline  
Thanks
1 User
Old 10/14/2009, 19:48   #143
 
elite*gold: 0
Join Date: Oct 2009
Posts: 37
Received Thanks: 8
Danke soweit.
Aber ich hänge gerade an dem Punkt
"Nun rufen wir bei der Funktion OnBnClickedButton1() die funktion m_lesen auf."

Wie gehtn das?
Sorry, noob am Start
Magix92 is offline  
Old 10/14/2009, 20:06   #144

 
Adroxxx's Avatar
 
elite*gold: 15
Join Date: Nov 2005
Posts: 13,021
Received Thanks: 5,324
Steht doch da....

Ist doch

BlaBlub::OnBnClickedButton1() {

//Aufruf von m_lesen

m_lesen();

}
Adroxxx is offline  
Old 10/14/2009, 20:10   #145


 
MrSm!th's Avatar
 
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,902
Received Thanks: 25,407
aber das steht doch auf der ersten seite^^
einfach in die funktion

m_lesen();
rein

@Adroxxx:

Vielleich hilft das noch:
Wie gesagt hWnd und ProcID sind richtig, also kanns ja nur am Handle zum Programm liege, und das würde auch Sinn ergeben!
Scheinbar erkennt mein Vista nichtmal, dass der Trainer überhaupt einer ist.
Bei CE muss ich mit aktivierter UAC ein Adminpasswort eingeben, bei meinem Trainer nicht, obwohl sie beinahe die selbe Funktionsweise haben.
Also liegt es entweder echt am Handle oder an Mfc.
Ich vermute eher am Handle, diese ist nämlich jedes Mal gleich und da mein Trainer ja so einen verrückten Wert anzeigt, könnte es ja sein, dass er die Adresse nicht in Solitär sucht, sondern im eigenen Prozess oder einem ganz falschen...wäre das möglich?
Der Teil mit dem ReadProcessMemory ist aber richtig oder?

Mal so ne Frage: Könntest du mir vielleicht mal deinen Basepointer und dein Offset sagen, ich passe den Source daran an, gebe den Trainer dir und du prüfst ob es funktioniert? Wenn der Handle richtig ist, müsste es ja bei dir gehen, wenn es bei dir auch nicht geht, dann liegt es wohl am Handle.
Was mich am meisten verwirrt, ist dass sich der angebliche Basepointer nach spätestens 2 Reboots verändert und mit Olly kann ich Solitär nicht öffnen.
MrSm!th is offline  
Old 10/14/2009, 20:40   #146
 
elite*gold: 0
Join Date: Apr 2007
Posts: 18
Received Thanks: 0
Quote:
Originally Posted by xhelloselm View Post
aber das steht doch auf der ersten seite^^
einfach in die funktion

m_lesen();
rein

@Adroxxx:

Vielleich hilft das noch:
Wie gesagt hWnd und ProcID sind richtig, also kanns ja nur am Handle zum Programm liege, und das würde auch Sinn ergeben!
Scheinbar erkennt mein Vista nichtmal, dass der Trainer überhaupt einer ist.
Bei CE muss ich mit aktivierter UAC ein Adminpasswort eingeben, bei meinem Trainer nicht, obwohl sie beinahe die selbe Funktionsweise haben.
Also liegt es entweder echt am Handle oder an Mfc.
Ich vermute eher am Handle, diese ist nämlich jedes Mal gleich und da mein Trainer ja so einen verrückten Wert anzeigt, könnte es ja sein, dass er die Adresse nicht in Solitär sucht, sondern im eigenen Prozess oder einem ganz falschen...wäre das möglich?
Der Teil mit dem ReadProcessMemory ist aber richtig oder?

Mal so ne Frage: Könntest du mir vielleicht mal deinen Basepointer und dein Offset sagen, ich passe den Source daran an, gebe den Trainer dir und du prüfst ob es funktioniert? Wenn der Handle richtig ist, müsste es ja bei dir gehen, wenn es bei dir auch nicht geht, dann liegt es wohl am Handle.
Was mich am meisten verwirrt, ist dass sich der angebliche Basepointer nach spätestens 2 Reboots verändert und mit Olly kann ich Solitär nicht öffnen.


Also ich hab denk ich ma das selbe problem wie du , denke aber nich das es am Programm liegt sondern am "basepointer" . Der Wert ist bei mir auch schon im CE so hoch , und im Programm gibt er dann den selben wert aus .
fr3ddy is offline  
Old 10/14/2009, 20:48   #147

 
Adroxxx's Avatar
 
elite*gold: 15
Join Date: Nov 2005
Posts: 13,021
Received Thanks: 5,324
Quote:
Originally Posted by xhelloselm View Post
@Adroxxx:

Vielleich hilft das noch:
Wie gesagt hWnd und ProcID sind richtig, also kanns ja nur am Handle zum Programm liege, und das würde auch Sinn ergeben!
Aha. Und was soll der Unterschied zwischen hWnd und dem Window Handle sein?
Und wenn die procID richtig ist, kann es doch logischerweise nicht der falsche handle sein. Weil Write-&ReadProcessMemory über die ProcID gehen und nicht über den Handle.


Quote:
Originally Posted by xhelloselm View Post
Mal so ne Frage: Könntest du mir vielleicht mal deinen Basepointer und dein Offset sagen, ich passe den Source daran an, gebe den Trainer dir und du prüfst ob es funktioniert? Wenn der Handle richtig ist, müsste es ja bei dir gehen, wenn es bei dir auch nicht geht, dann liegt es wohl am Handle.
Was mich am meisten verwirrt, ist dass sich der angebliche Basepointer nach spätestens 2 Reboots verändert und mit Olly kann ich Solitär nicht öffnen.
o.O Basepointer muss überall gleich sein. Sprich du müsstest auch die gleiche Adresse und Offset haben wie ich im Tutorial.

Hast du mal anstatt FindWindowExW, FindWindowEx oder nur FindWindow versucht?
Adroxxx is offline  
Old 10/14/2009, 21:24   #148


 
MrSm!th's Avatar
 
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,902
Received Thanks: 25,407
Quote:
Originally Posted by Adroxxx View Post
Aha. Und was soll der Unterschied zwischen hWnd und dem Window Handle sein?
nein es geht ja über FindWindow zum pWnd zum hWnd zur procID zum hProc und mit
dem verwendet man doch ReadProcessMemory^^
also:
FindWindow ergebnis: pwnd mit GetSafeHwnd ergebnis: hwnd mit GetWindowThreadProcessId und dem hwnd ergebnis: procID
mit procID und OpenProcess ergebnis: HANDLE hProc
so und dann mit ReadProccesMemory und hProc und den Adressen liets man ja den Speicher aus.
bis zur ProcID ist alles richtig (mit spy++ und dem Taskmgr kontrolliert) also kanns nur am Handle liegen (code nochmal^^ siehe unten)

Quote:
Und wenn die procID richtig ist, kann es doch logischerweise nicht der falsche handle sein. Weil Write-&ReadProcessMemory über die ProcID gehen und nicht über den Handle.
s.o.

Quote:
o.O Basepointer muss überall gleich sein. Sprich du müsstest auch die gleiche Adresse und Offset haben wie ich im Tutorial.
warum hast du dann nie was beim source gesagt? xD da steht doch meine adresse drin UND sogar zwei mal ne Offset rechnung weil ich über 2 pointer gehen muss! hast du vista oder xp?
wie kanns denn dann sein dass CE mir nen anderen BasePointer (wirklich grün) gibt, der damit auch wirklich klappt! nur nicht mit dem trainer
und er ändert sich komischerweise =/ aber er ist grün!

Quote:
Hast du mal anstatt FindWindowExW, FindWindowEx oder nur FindWindow versucht?
wär ein versuch wert, ich guck dann auch mal, ob es vielleicht mit deiner adresse geht, auch wenn mit CE etwas anderes sagt

code:
Code:
UpdateData(true);
	pWnd = CWnd::FindWindowExW(NULL,NULL,NULL,_T("Solitär"));
	if (pWnd = CWnd::FindWindowExW(NULL,NULL,NULL,_T("Solitär"))) 
	    {
        
        hWnd = HWND(pWnd->GetSafeHwnd()); 
		m_hwnd.Format(_T("%x"),hWnd);
      
	unsigned long address1 = 0x00cc60f4;
    unsigned long offset = 0x2C;
	unsigned long offset2 = 0x10;
    unsigned long address2 ;
	unsigned long address3 ;
    int value ;
    DWORD numBytesRead;
	HANDLE hProc;
	DWORD procID;

	
	GetWindowThreadProcessId(hWnd,&procID);


	m_procID.Format(_T("%d"),procID);	
	

	hProc = OpenProcess(PROCESS_VM_READ,FALSE,procID);

	m_hproc.Format(_T("%x"),hProc);	

	ReadProcessMemory(hProc,(LPCVOID)address1,&address2,sizeof(long),&numBytesRead);

	address2 = address2+offset;

	address3 = address2+offset2;

	ReadProcessMemory(hProc,(LPCVOID)address3,&value,sizeof(int),&numBytesRead);

	m_Value.Format(_T("%i"),value); 

	UpdateData(false);

	CloseHandle(hProc);
	}
	else
	{
    AfxMessageBox(_T("Fenster nicht gefunden!"));
    }
MrSm!th is offline  
Old 11/03/2009, 21:21   #149
 
elite*gold: 0
Join Date: Aug 2009
Posts: 2
Received Thanks: 0
Hallo zusammen,

ich bin noch recht neu hier und habe mal die ganzen Tut´s durchgeackert.

Riesen Lob an den Ersteller des Tutorials, ich als totaler Anfänger habe es auf anhieb einiger Maßen verstanden!!!

Ich bleibe jedoch immer an einem Punkt hängen. Vorab gleich die Anmerkung, das ich hier keinen Ausfragen möchte, bzw. soll mir einer die ganze Arbeit erledigen. Ich möchte das ganze schon von allein lernen.

Es ist jedoch nicht ganz so einfach, also frag ich hier und da mal, bevor ich völlig verzweifle.

Also...
Es geht um ein Flash-Onlinegame. Man kann sich verschiedene Waffen kaufen um andere anzuschießen. So, ingame hab ich dann mal CE 5.5 angeworfen und die Waffenadresse gescannt. Anschließend habe ich nach dem Pointer gescannt, diesen auch gefunden.

Ergebnis: 050f3180 - fld dword ptr [esi+eax*4-00000f48]
oder 050f2f32 - fld dword ptr [ecx+eax*4+04]

Bei einem Offset von +30 ist mir klar was ich eintragen muß, bei *4-00000f48 jedoch nicht.
Wer kann mir auf die Sprünge helfen?
Ben-B is offline  
Old 11/06/2009, 19:19   #150


 
MrSm!th's Avatar
 
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,902
Received Thanks: 25,407
eigentlich musst du genau so vorgehen
das offset ist (wert aus eax)+4-00000f48
heißt du müsstest beim offset bei der pointereinstellung eingeben, welchen wert eax hat+4+f48
ich gehe mal davon aus, dass eax aber dynamisch ist.
das heißt du müsstest dir die befehle über dem geposteten mal ansehen und herausfinden, aus welcher adresse in eax geschoben wird.
MrSm!th is offline  
Reply




All times are GMT +1. The time now is 04:48.


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.