• Trainer
  • Forums
  • Suche
  • Members
  • Kalender
  • Hilfe
  • Extras
Forum stats
Show team
Neue Beiträge ansehen
Heutige Beiträge ansehen
Home of Gamehacking - Archiv
Login to account Create an account
Login
Benutzername:
Passwort: Passwort vergessen?
 



  Home of Gamehacking - Archiv Gamehacking Gamehacking
« Zurück 1 2 3 4 5 ... 8 Weiter »
Finden der Player-/Entity-Liste bzw. die Baseadresse von jedem Gegner ?

Ansichts-Optionen
Finden der Player-/Entity-Liste bzw. die Baseadresse von jedem Gegner ?
Acubra Offline
Trainermaker
****
Beiträge: 904
Themen: 127
Registriert seit: Oct 2010
Bewertung: 6
#2
08.03.2015, 17:15 (Dieser Beitrag wurde zuletzt bearbeitet: 08.03.2015, 20:09 von Acubra.)
Hey,
wenn es soetwas wie eine Entity-Liste gibt dann muss es einen Speicherbereich mit den ganzen Pointern zu den jeweiligen Adressen der Spieler geben. Wie du schon richtig im Nachtrag 4 gesagt hast, müsstest du dann zum ersten Pointer (der auf die BaseAdresse des ersten Spielers zeigt) höchstwahrscheinlich 0x4*i hinzuaddieren um den Pointer des Spielers mit dem Index "i" zu erhalten. 0x4 musst du hinzuaddieren, da ja ein Pointer (DWORD) 4 bytes groß ist. Die 0x4 können aber von Spiel zu Spiel auch unterschiedlich sein, je nachdem ob der Pointer noch mit anderen Informationen in einer Struktur steht oder nicht.
Zu deinem ersten Nachtrag: Du solltest nicht gucken was in die Adresse schreibt (writes), sondern was auf sie zugreift (accesses), damit du die Adressen nicht erst hast wenn dem Gegner HP abgezogen wurde. Das in C++ ist über eine DLL Injektion sehr einfach zu realisieren. Du überschreibt des Befehl der die HP abzieht mit einem Sprung (Jump) zu deiner eigenen Funktion. Dort steht bei dir folgender (pseudo) code:

Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
void GetAddys()
{
	DWORD dwBase = NULL;
	__asm
	{
		pushad //save registers
			pushfd //save flags
			mov dwBase, [eax] //jenachdem wie dein decrease befehl ist musst du evtl. das register anpassen
	}
	//struct definieren wäre wahrscheinlich klüger
	float fHp = (float)dwBase + 0xf8;

	if (dwBase != NULL && fHp < 10000 && fHp > 0)
	{
		//code
	}
	__asm
	{
		popfd 
			popad 
			jmp backToOrignalCode 
	}
}

Dafür braucht man noch lange keinen Debugger.

PS: Habe gelesen das der Sourcecode des Spiels frei verfügbar ist? Eventuell wäre der Spielcode einen Blick wert.
//EDiT: Da haben wir es doch schon: https://github.com/assaultcube/AC/blob/d...ntgame.cpp

Code:
1
2
3
4
5
6
7
8
9
10
playerent *getclient(int cn) // ensure valid entity
{
if(cn == player1->clientnum) return player1;
return players.inrange(cn) ? players[cn] : NULL;
}
void initclient()
{
newname("unarmed");
player1->team = TEAM_SPECT;
}

"Auf dieser Welt gibt es mehr Scheisse als auf Festivalklos"
[Bild: hoglogo_smalpxga.jpg]
Homepage Suchen
Antworten
Share Thread:            


Nachrichten in diesem Thema
Finden der Player-/Entity-Liste bzw. die Baseadresse von jedem Gegner ? - von b4d-b0y - 07.03.2015, 18:14
RE: Finden der Player-/Entity-Liste bzw. die Baseadresse von jedem Gegner ? - von Acubra - 08.03.2015, 17:15
RE: Finden der Player-/Entity-Liste bzw. die Baseadresse von jedem Gegner ? - von Acubra - 08.03.2015, 18:58
RE: Finden der Player-/Entity-Liste bzw. die Baseadresse von jedem Gegner ? - von b4d-b0y - 08.03.2015, 19:45
RE: Finden der Player-/Entity-Liste bzw. die Baseadresse von jedem Gegner ? - von Acubra - 08.03.2015, 20:42

  • Druckversion anzeigen
  • Thema abonnieren


Benutzer, die gerade dieses Thema anschauen:
1 Gast/Gäste

  • Kontakt
  • Forum team
  • Forum stats
  • Nach oben
 
  • RSS-Synchronisation
  • Lite mode
  • Home of Gamehacking - Archiv
  • Help
 
Forum software by © MyBB - Theme © iAndrew 2014



Linearer Modus
Baumstrukturmodus