Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > General Coding
You last visited: Today at 15:54

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

Advertisement



Cheat Engine wie verwenden :O

Discussion on Cheat Engine wie verwenden :O within the General Coding forum part of the Coders Den category.

Reply
 
Old   #1
 
D3adlySil3nc3's Avatar
 
elite*gold: 0
Join Date: Apr 2011
Posts: 288
Received Thanks: 40
Cheat Engine wie verwenden :O

Hallo,
Ich bin jetzt sein einer Woche bei CE dabei und spiele damit bei einem MMO etwas rum, komme allerdings nicht wirklich voran.
Ich würde das mal gerne allgemein wissen.
Hoffentlich könnt ihr ein paar meiner Fragen beantworten.

Statische Sachen wie MP/HP sind klar oder auch die Position.
Wenn ich nen Gegner anklicke erhalte ich zwei Adressen, mit unterschiedlichen Werten. Wenn beide 0 sind ist das Vieh Tod. Verstehe nur nicht warum die beiden Unterschiedlich sind.

Ich verstehe schon nicht wie ich an die Chat Nachrichten komme. Ich bekomme zwar die Adresse für die Value wenn ich eine Nachricht schreibe (aber noch nicht abgeschickt habe) und ich erhalte auch einzelne MSg wenn ich danach suche allerdings weiß ich nicht wie ich an die neusten msgs komme ohne danach zu suchen. Was ich sehe ist, dass sie alle im gleichen "Memory Block" auftauchen aber ich hab keine Ahnung wie ich zB finde was diese Adresse beschreibt.

Dann würde mich interessieren wie ich an kurzweilige Aktionen komme.
zB.: Wenn ich ein Mob angreife oder einen Skill ausführe, wie suche ich danach? Oder auch einfach gehen.

Wie kann ich eine Liste der Mobs in meiner Nähe bekommen?
Da ich soetwas wie meine Position habe (noch unsicher) kkönnte ich doch von da ausgehend einen gewissen Range absuchen. Allerdings ist mir nicht klar wie ich dann erkenne ob auf einer anderen Position ein Mob ist oder nicht, oder auch wie ich diesen Range durchgehe.
Aber vom Prinzip müsste doch im Speicher eine Liste der Mobs in meinem Viewport stehen? Was dann ja doch einfacher wäre.

Hoffe mal jemand könnte sich meiner erbamen und mir ein bisschen weiterhelfen.

mfg
D3adlySil3nc3 is offline  
Old 02/12/2015, 04:17   #2
 
elite*gold: 0
Join Date: Feb 2009
Posts: 1,137
Received Thanks: 573
Ich weiß nicht ob du programmierst oder schon mal programmiert hast, aber für solche Sachen musst du verstehen wie Programme und ihre Speicherverwaltung funktioniert.

Nehmen wir mal als Beispiel den Chat. Der Chat besteht aus entweder (1)einem großen String, (2)einem Array aus Strings oder (3)einer Liste von Strings. (Oder es sind Kombinierte Datentypen die einen string und noch weitere Informationen enthalten).

Nun zum erläutern der Speicherverteilung der einzelnen möglichkeiten, mit der Annahme dass ein C-String als Char* verwendet wird
1. Du wirst einen gigantischen speicherblock finden, in dem der komplette Text steht. Sobald etwas zum text hinzukommt wird der alte string block entfernt und ein neuer entsprechend größerer an einer anderen Stelle/Adresse erzeugt. Die Idee ist den Zeiger auf diesen Speicherblock zu finden (Steht an einer anderen, Statischen Adresse) und durch den die Adresse des Strings zu finden
2. Hier muss man nun unterscheiden, gibt es immer eine statische Anzahl an chat Nachrichten die gespeichert werden, so hat man einen Statischen Array einer festen Größe, den im Auge zu behalten sollte relativ easy sein. Dieser ist ein Speicherblock an einer festen Adresse X und enthält mehrere Zeiger auf die einzelnen nachrichten. Also bei einem 4 Elementigen Array wäre an der Adresse X der wert der Adresse zur ersten Nachricht, an der Adresse X+SizeOf(Pointer) der zur zweiten etc.

Ist es ein Dynamischer Array, so haben wir das selbe problem wie bei dem Großen string, kommt eine neue Chat Nachricht hinzu, so wird der Speicherblock aufgelöst und ein neuer mit der Größe des alten +SizeOf(Pointer) an einer anderen stelle hinzugefügt. Da heißt es wieder über den Zeiger zu diesem Array an anderer stelle zugreifen.

3. Bei einer Liste handelt es sich um mehrere Structs mit 1. einem Pointer zum String, 2. Einen Pointer zum nächsten Element. Du wirst irgendwo im Speicher dann eine Adresse auf das erste Element finden, an der Adresse hast du dann einen Block der 2*SizeOf(Pointer) groß ist und 2 Adressen enthält. Eine dieser Adressen führt zu dem String der chat Nachricht, die andere zum nächsten Element. Damit musst du dich entlanghangeln, das element der kette, dessen Zeiger auf null zeigt ist das letzte Element der liste.

Je Komplexer die Datentypen sind (z.B. eine Klasse für den String) durch desto mehr Informationen musst du dich durcharbeiten um an diese Adressen zu kommen.

Generell sind Speichertechnisch strings schon etwas komplexer als andere Datentypen (z.B. Integer) da Strings 1. Je nach Programmiersprache anders sind, 2. Statisch als auch Dynamisch sein können (bei dynamischen hast du einen Zeiger als Referenz)
warfley is offline  
Reply


Similar Threads Similar Threads
Cheat engine pointer finden und in autoit verwenden
03/05/2013 - AutoIt - 12 Replies
Würde gern die Punktzahl in einem Spiel verändern, Wert finden und über CE ändern kein Problem, die Adresse ändert sich jedoch bei Neustart des Spiels... ich weiß, das ich jetzt einen Pointer und dessen Offset benötige, ich habe auch schon gegoogelt und viel ausprobiert, jedoch finde ich den Pointer nicht? Ich habe probiert: Rechtsklick auf die Adresse, find out what writes to this adress, dann bekomm ich auch werte raus, wenn ich dann auf mehr anzeigen klicke ist eins rot unterlegt: 0042B727...
Cheat Engine mit NFS World Verwenden
02/18/2011 - Need for Speed World - 6 Replies
So , die meisten von euch werden sicherlich schon wissen wie es geht , dennoch gibt es einige Leute die es vielleicht nicht Wissen. Und da Jemand gefragt hat ob's n Tut. gibt hab ich mir mal paar Minuten Zeit genommen ;). 1. Zuerst starten wir NFS World im Fenstermodus , und anschliessend Cheat Engine.



All times are GMT +1. The time now is 15:56.


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.