[Cheatengine] Objekt Freischalten

10/03/2016 22:42 DrackenDarck#1
Hallo Leute,

ich spiele gerne Flash games und manchmal cheate ich da nen bisschen, wie in guten alten offlinezeiten mit Cheatheften :D
Sind reine Free Games ohne Schäden für irgendwen

---

Ich wollte nun wissen, wenn ich ein Objekt freischalten will wo ein Schloss vor ist und ich keinen Wert habe den ich verändern kann, wie bei einer Währung oder Munition oder so, wie kann ich das angehen z.B. Waffe X freischalten.
Welche Ansätze könnte ich da nutzen?

Und noch eine Frage: Wenn ich bei manchen Spielen Werte ändere und das Menü wechsel gehen die Werte wieder zurück, hat dann das Spiel ein Anti Cheat System und Cheaten ist nicht möglich, weil es Serverseitig gespeichert ist?

Lieben Gruß
Dracken
P.s.: Ich hoffe ich bin hier richtig.


___
Noch ne Frage, wenn gestattet (ich will ungern 3 threads öffnen): Wenn ich nach dem Wert z.B. 1 suche zeigt er mir aber auch alle Werte mit 0.143434 an oder 1.9383838 kann ich das irgendwie einstellen, dass er mir wirklich NUR Werte mit 1 anzeigt ohne nach dem Komma oder anderen Werten also eine reine 1?
10/04/2016 01:19 alpines#2
Es gibt sicherlich irgendwo eine Flag im System die kennzeichnet ob der Gegenstand freigeschaltet ist oder nicht. Ansonsten müsste eine Funktion existieren mit der du sie freischalten kannst, diese kannst du mit inline-asm callen und als Funktionsparameter die Waffe beispielsweise übergeben (je nach dem wie das Spiel das handled).

Du kannst mit "Exact Value" nach genauen Werten suchen, wenn du nach Kommazahlen suchst dann kannst du Float oder Double Value nehmen.
10/04/2016 15:57 DrackenDarck#3
ich gebe immer exact value ein aber er zeigt mir auch alle anderen murksen ergebnisse an.
Ich würde gerne einen Charakter in meinem Beispiel freischalten, dass problem ist das da einfach nur ein Schloss vor ist und der nur in einem paket drinne ist :D

"diese kannst du mit inline-asm callen und als Funktionsparameter die Waffe beispielsweise übergeben (je nach dem wie das Spiel das handled)." Sind das Funktionen von Cheatengine? denn das sagt mir mal gar nichts :D
10/16/2016 23:52 Epanias#4
Wenn dir beim Suchen nach einem glatten Wert, sprich einer Ganzzahl Kommazahlen angezeigt werden, suchst du vermutlich mit dem falschen "Value Type".

Du solltest dich eventuell ein bisschen mit Datentypen bzw deren Größe im Speicher eines Programmes auseinandersetzen.

Wenn du z. B. nach dem exakten Wert "5" suchen willst, handelt es sich dabei um eine Ganzzahl, welche in der Regel als ein 4 Bytes int (engl. integer = Ganzzahl, siehe Datentypen) dargestellt wird, weswegen du bei der Suche bei "Value Type" 4 Bytes einstellen solltest.

Wenn du nach Kommazahlen suchst, währe dass dann, wie schon gesagt, float oder double und Werte die 0 oder 1 sind, in der Regel bool bzw in Cheatengine "Byte", da boolische Werte im Speicher durch 1 Byte dargestellt werden.

Quote:
Originally Posted by DrackenDarck View Post
"diese kannst du mit inline-asm callen und als Funktionsparameter die Waffe beispielsweise übergeben (je nach dem wie das Spiel das handled)." Sind das Funktionen von Cheatengine? denn das sagt mir mal gar nichts :D
Das sind sehr Fortgeschrittene Reverse Techniken, die du mit Cheatengine alleine nicht nutzen können wirst.

Gut es gibt eine Funktion dafür in Cheatengine aber ich würde dir nicht unbedingt raten sie zu nutzen, da sie sehr abhängig von den physikalischen Komponenten in deinem Computer ist und ggf dein ganzes System aufhängen lässt - funktioniert bei mir leider nicht.
10/17/2016 00:40 DrackenDarck#5
Also für Flash Games muss ich meistens nach dem Wert double suchen und bekomme dann auch klare Zahlen, aber auch 5,4323 sowas halt.
10/17/2016 13:58 XYZ-Cannon#6
Quote:
Originally Posted by Epanias View Post
Wenn dir beim Suchen nach einem glatten Wert, sprich einer Ganzzahl Kommazahlen angezeigt werden, suchst du vermutlich mit dem falschen "Value Type".

Du solltest dich eventuell ein bisschen mit Datentypen bzw deren Größe im Speicher eines Programmes auseinandersetzen.

Wenn du z. B. nach dem exakten Wert "5" suchen willst, handelt es sich dabei um eine Ganzzahl, welche in der Regel als ein 4 Bytes int (engl. integer = Ganzzahl, siehe Datentypen) dargestellt wird, weswegen du bei der Suche bei "Value Type" 4 Bytes einstellen solltest.

Wenn du nach Kommazahlen suchst, währe dass dann, wie schon gesagt, float oder double und Werte die 0 oder 1 sind, in der Regel bool bzw in Cheatengine "Byte", da boolische Werte im Speicher durch 1 Byte dargestellt werden.
Bit*

Dracken, wenn du nach einem Wert mit dem Datentyp Double suchst, werden dir auch Kommastellen mitgegeben. Ganzzahlige Werte sind wie schon richtig genannt z.B. Werte vom Typ Integer.
10/17/2016 14:38 th0rex#7
Quote:
Originally Posted by XYZ-Cannon View Post
Bit*
In welcher Sprache ?
10/17/2016 14:56 XYZ-Cannon#8
Quote:
Originally Posted by C0untLizzi View Post
In welcher Sprache ?
Sprache ist irrelevant; das unterschiedliche Sprachen unterschiedlich viel Speicherplatz einräumen halte ich für unpassend im Kontext.

Ein Boolean Wert gibt Eines zurück; true/false.

Der Informationsgehalt beträgt ein Bit.
10/17/2016 15:00 th0rex#9
Quote:
Originally Posted by XYZ-Cannon View Post
Sprache ist irrelevant; das unterschiedliche Sprachen unterschiedlich viel Speicherplatz einräumen halte ich für unpassend im Kontext.

Ein Boolean Wert gibt Eines zurück; true/false.

Der Informationsgehalt beträgt ein Bit.
Schön nur leider kannst du nicht 1bit addressieren auf x86/x86_64 weswegen das dann doch 1 byte ist. Und es geht ja nicht um den Informationsgehalt sondern darum wie es im Speicher dargestellt ist.
10/17/2016 15:04 XYZ-Cannon#10
Quote:
Originally Posted by C0untLizzi View Post
Schön nur leider kannst du nicht 1bit addressieren auf x86/x86_64 weswegen das dann doch 1 byte ist. Und es geht ja nicht um den Informationsgehalt sondern darum wie es im Speicher dargestellt ist.
Nein, 1 Byte ist auch nicht korrekt. Man kann nicht verallgemeinern wie viel Speicherplatz ein boolsche Variable im Speicher einnimmt.

Das Einzige, was man auf jede Programmiersprache beziehen kann ist der Informationsgehalt. Der beträgt überall 1 Bit.
10/17/2016 16:48 warfley#11
Quote:
Originally Posted by XYZ-Cannon View Post
Nein, 1 Byte ist auch nicht korrekt. Man kann nicht verallgemeinern wie viel Speicherplatz ein boolsche Variable im Speicher einnimmt.

Das Einzige, was man auf jede Programmiersprache beziehen kann ist der Informationsgehalt. Der beträgt überall 1 Bit.
Letztlich sind Boolean Typen auch nur Zahlentypen und können somit 2^(SizeOf(Boolean)*8) diskrete Werte speichern. Der Informationsgehalt von 1 Bit kommt nur zustande in Kombination mit Abfragen, welche auf Ungleichheit zu dem Wert 0 prüft. Damit ist allerdings nur der Informationsgehalt einer Abfrage 1 Bit, die Boolsche Variable kann dennoch weitere Informationen Tragen.

Ein schönes Beispiel dafür ist das Dateien lesen in C, dabei kann die Anzahl an gelesenen Bytes sowohl als Boolsche Variable verwenden werden um EOF zu erkennen (sobald die anzahl der gelesenen Bytes = 0 ist) als auch die konkrete Bytezahl als Information enthalten. Somit ist der Informationsgehalt dieser Variable, welche als Boolsche Variable verwendet wird mindestens 8 bit (je nach Architektur)
10/17/2016 18:48 XYZ-Cannon#12
Quote:
Originally Posted by warfley View Post
Letztlich sind Boolean Typen auch nur Zahlentypen und können somit 2^(SizeOf(Boolean)*8) diskrete Werte speichern. Der Informationsgehalt von 1 Bit kommt nur zustande in Kombination mit Abfragen, welche auf Ungleichheit zu dem Wert 0 prüft. Damit ist allerdings nur der Informationsgehalt einer Abfrage 1 Bit, die Boolsche Variable kann dennoch weitere Informationen Tragen.

Ein schönes Beispiel dafür ist das Dateien lesen in C, dabei kann die Anzahl an gelesenen Bytes sowohl als Boolsche Variable verwenden werden um EOF zu erkennen (sobald die anzahl der gelesenen Bytes = 0 ist) als auch die konkrete Bytezahl als Information enthalten. Somit ist der Informationsgehalt dieser Variable, welche als Boolsche Variable verwendet wird mindestens 8 bit (je nach Architektur)
Gerade für Anfänger ist der Overhead der boolschen Variable schwer zu verstehen.

Ich beziehe mich mit meiner Argumentation übrigens auch auf die Doku von Java und bin mir ziemlich sicher (korrigiere mich wenn ich falsch liege), dass sich die Definition auch in anderen Programmiersprache ähnelt. Aber genug Off-topic.
Quote:
boolean: The boolean data type has only two possible values: true and false. Use this data type for simple flags that track true/false conditions. This data type represents one bit of information, but its "size" isn't something that's precisely defined.
[Only registered and activated users can see links. Click Here To Register...]
10/17/2016 19:17 DrackenDarck#13
Na Ihr führt hier ja nen Talk, ich bin ja schon ein nerd, aber Ihr seid ja noch viel Nerdiger als ich :D
Da kann ich einfach nicht mitgeeken, auf eurem Niveau^^.
10/23/2016 17:40 DrackenDarck#14
Okay, habe heute noch mal was versucht, aber ohne Erfolg.
Ich kann ja nach String suchen.
[Only registered and activated users can see links. Click Here To Register...]

ich finde sachen nach Premium, aber wenn ich die unten einfüge und Aktiviere schaltet es das Premium zeug auch nicht direkt frei.

Was genau bringt der Text Wert dann? oder nur rein Optisch? Das ich meine Rüstung von "Armor" in "Superumhang" umbenennen kann?
Der erste Premium Eintrag ist auch für ca. 1sek "premium 2" und springt dann auf premium. Auch war er mal kurz "premium button".

Habe jetzt mal weitere Funktionen von CE versucht und habe die Umgebung abgesucht und fand dies:
[Only registered and activated users can see links. Click Here To Register...]

Aber wirklich anfangen kann ich damit auch nichts^^.
10/25/2016 10:42 XYZ-Cannon#15
Quote:
Originally Posted by DrackenDarck View Post
Ich kann ja nach String suchen.

Was genau bringt der Text Wert dann? oder nur rein Optisch? Das ich meine Rüstung von "Armor" in "Superumhang" umbenennen kann?
Genau das.
Du müsstest herausfinden, wie der Premium Status gespeichert wird und dir den entsprechenden Adressbereich raussuchen. Meist wird das dann über eine Flag geregelt, die entweder den Status 0/1 hat, für Premium aktiv oder inaktiv.