• 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
#5
08.03.2015, 20:42 (Dieser Beitrag wurde zuletzt bearbeitet: 08.03.2015, 20:59 von Acubra.)
Hey,
das nicht alle Spiele Opensource sind ist erschwert natürlich den Prozess. Assault Cube ist deswegen auch echt gut zum Lernen. Wenn du den Sourcecode des Spiels nicht hast, dann musst du es wohl oder übel "reversen". Das heißt mithilfe eines Debuggers den ASM Code des Spiels nachvollziehen und interpretieren.
Ich weiß jetzt nicht was du mit anders vorgehen meinst. Im Prinzip ist es bei jedem Spiel das Gleiche. Irgendwo steht was du wissen willst und den Ort musst du finden. Wie du den Ort findest, dafür gibt es keine Allround-Lösung und das hat sehr viel mit Erfahrung und Trial & Error zu tun. Es gibt auch oft viele verschiedene Ansätze für das gleiche Problem.

Zu dem Pseudocode. Wenn du die Register an der Stelle auslesen willst (von deinem Programm aus), dann musst du in der Tat einen Debugger attachen--> Breakpoint an der Stelle setzen--> Register auslesen--> Breakpoint entfernen. Das ist schon ziemlich kompliziert.
Wenn es dir nur ums Auslesen geht, dann musst du eigentlich immer die EntityListe oder den ObjectManager oder was auch immer finden. Das sind dann eben die PointerArrays, für die jeweiligen Objekte. Über ReadProcessMemory lässt sich dann ganz einfach extern alles auslesen, oder du greifst intern über eine .dll direkt auf den Speicher zu.
//EDiT: Hab mich nochmal mit ReClass kurz rangesetzt. So ist es meiner Meinung nach am Einfachsten auf die Player zuzugreifen wenn man keine SDK hat.
Du definierst zwei Klassen, die EntityListe und die Playerklasse:
[code=C]
class cEntityList;
class cPlayer;

class cEntityList
{
public:
cPlayer** m_ppEntities; //0x0000
char _0x0004[4];
__int32 m_iMaxPlayers; //0x0008
char _0x000C[52];

};//Size=0x0040

class cPlayer
{
public:
char _0x0000[248];
__int32 m_iHealth; //0x00F8
char _0x00FC[836];

};//Size=0x0440
[/code]
Und jetzt kannst du sehr einfach und elegant auf alle Member (Player) zugreifen:
[code=C]
cEntityList *pEntityList = (cEntityList *)(0x0050F4F8);
for (int i = 0; i < pEntityList->m_iMaxPlayers - 1;i++)
{
cPlayer *pCurrentPlayer = NULL;
pCurrentPlayer = pEntityList->m_ppEntities[i];
if (pCurrentPlayer != NULL)
{
printf("PlayerIndex: %i - BaseAddress :%x - Health :%i\n", i, pCurrentPlayer, pCurrentPlayer->m_iHealth);
}
}
[/code]
"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