Ich spiel grad ein wenig mit Cheat Engine rum und hab nun auch eine Adresse gefunden, die dem Wert zugeordnet ist, den ich suche. Mittels dem Debugger und dem Disassembler/Memoryview konnte ich rausfinden, durch welchen Befehl diese Variable verändert wird und wo sie sich befindet. Nun möchte ich diese Codestelle mit Code füllen, der nichts macht, was mit OllyDbg kein Problem darstellen sollte.
Jedenfalls wird mir die Stelle, an dem sich die Assemblercodezeile, die ich ersetzen will, befindet in solcher Form angegeben: "'Dateinamen.exe'+1F641".
Meine Frage lautet nun, wie ich denn von solch einer Form auf die Speicheradresse in der ausgeführten .exe komme, um die besagte Codezeile dauerhaft zu "eliminieren"?
Danke für die Antwort, aber das leider nicht das was ich suche. :/
Ich will mit einem beliebigen Memoryeditor die bereits kompilierte, nicht laufende .exe umschreiben. Die nötigen Programme dazu hab ich bereits, nur weiß ich eben nicht wie ich von der Adresse, die mir Cheat Engine ausspuckt, auf die statische Adresse komme, an der eben dieses Codestück liegt. :/
Danke für die Antwort, aber das leider nicht das was ich suche. :/
Ich will mit einem beliebigen Memoryeditor die bereits kompilierte, nicht laufende .exe umschreiben. Die nötigen Programme dazu hab ich bereits, nur weiß ich eben nicht wie ich von der Adresse, die mir Cheat Engine ausspuckt, auf die statische Adresse komme, an der eben dieses Codestück liegt. :/
Tyrar hat gesagt, das der Part mit dem Dateinamen die Modulbase repräsentiert. Das Offset wird darauf addiert und damit erhälst du eine Adresse.
Es muss nicht zwingend sein, das du an dieser spezifischen Stelle den Code ändern möchtest. Ich glaube eher, das du die Stelle manipulieren willst, an dem dieses Codesegment aufgerufen wird und dazu brauchst du die Adresse im Speicher, an der diese Anweisung steht. Sieht man auch über Cheat Engine (neben den Opcodes)
Die Modulbase ist jedoch bei jedem Programmstart anders, ich brauch eine statische Adresse von der Datei selbst.
Ein praktisches Beispiel: Vermutlich kennt ihr das Cheat Engine Tutorial. Dort gibt es eine Aufgabe, bei der per Buttonclick der Wert einer Variable verkleinert wird.
Die Aufgabe besteht darin, den Code, der eben diesen Wert senkt, mit "NOP's" zu ersetzen um den Buttonclick "unschädlich" zu machen. Wenn die Adresse gefunden, der Debugger attached und das Codestück, das den Wert verkleinert ausfindig gemacht ist, ist das ganze in CE nur ein Click und es ist vollbracht.
Ich möchte jetzt "Tutorial.exe" so verändern, dass der Code, der den Wert verkleinert, bereits von Start an mit "NOP's" ersetzt ist. Dazu brauch ich die Adresse des Codestücks in der Datei um - beispielsweise in OllyDbg - die Codezeile zu finden und auszuschalten.
Rechtsklick auf die Adresse -> What writes to this address (oder so ähnlich)
Dann siehst du von wo aus der Wert verändert wird. Die Stelle kannst du dann in OllyDBG suchen und verändern wie du lustig bist.
Die Modulbase ist jedoch bei jedem Programmstart anders, ich brauch eine statische Adresse von der Datei selbst.
Deshalb sollst du ja das Snippet von Tyrar nutzen. Damit bekommst du die Modulbase, auch wenn sie sich bei jedem Neustart ändert.
Ansonsten brauchst du diese Funktion nicht und kannst einfach 0x400000 als Base verwenden, wenn die Base jedes mal die gleiche Adresse hat. (Vorausgesetzt das 0x400000 auch die Adresse ist)
Wenn du bei OllyDbg auf das "M" klickst und dann auf die Zeile, in der bei "Owner" dein Programm und bei "Contains" "PE Header" steht, klickst, öffnet sich ein weiteres Fenster. Wenn du dort runterscrollst, kommst du irgendwann zu "PE Signature (PE)" - 17 Zeilen darunter befindet sich der Eintrag "Imagebase" - das ist die Adresse, die du suchst.
Ist zwar ziemlich umständlich, funktioniert aber, wenn du keine zusätzlichen Programme verwenden willst.
Wenn du bei OllyDbg auf das "M" klickst und dann auf die Zeile, in der bei "Owner" dein Programm und bei "Contains" "PE Header" steht, klickst, öffnet sich ein weiteres Fenster. Wenn du dort runterscrollst, kommst du irgendwann zu "PE Signature (PE)" - 17 Zeilen darunter befindet sich der Eintrag "Imagebase" - das ist die Adresse, die du suchst.
Ist zwar ziemlich umständlich, funktioniert aber, wenn du keine zusätzlichen Programme verwenden willst.
Oder man klickt einfach auf das "E" und bekommt alle Module mit zugehöriger Base angezeigt:
Wenn du bei OllyDbg auf das "M" klickst und dann auf die Zeile, in der bei "Owner" dein Programm und bei "Contains" "PE Header" steht, klickst, öffnet sich ein weiteres Fenster. Wenn du dort runterscrollst, kommst du irgendwann zu "PE Signature (PE)" - 17 Zeilen darunter befindet sich der Eintrag "Imagebase" - das ist die Adresse, die du suchst.
Ist zwar ziemlich umständlich, funktioniert aber, wenn du keine zusätzlichen Programme verwenden willst.
Quote:
Originally Posted by Mostey
Oder man klickt einfach auf das "E" und bekommt alle Module mit zugehöriger Base angezeigt:
Vielen Dank euch beiden, genau das hab ich gesucht. <3
Noch zu diesem Thema: Kennt jemand von euch einen guten Disassembler, der - nachdem man die geladene Datei gepatcht hat - auch wieder eine funktionsfähige .exe exportieren kann? <.<
OllyDbg kann afaik nur das Programm ausführen und debuggen, nachdem man den Code nach seinen Wünschen verändert hat. Die Möglichkeit, eine ausführbare Datei zu exportieren, ist mir nicht bekannt.
Aber ich lasse mich gern eines Besseren belehren. Vlt. gibts auch Plugins, die ich nicht kenne. <.<
Doch das geht, nachdem du deine Datei bearbeitet hast drückst du STRG+F2 um das Programm neu zu laden, danach gehst du zu den Patches und aktivierst deine Modifizierungen. Und der Rest:
Cheat Engine findet adresse nicht// Cant find adress 08/19/2013 - General Coding - 2 Replies Hiho Leute.
Habe zum testen Play Age of War 2, and more Action Games! | Max Games
aus einem tutorial herrasugenommen , möchte das gold/EXP herrausfinden
..gold ist 2500 ... aber das problem kommt gleich wenn ich die 2500 eingebe
findet er nix ... o.o garnichts ... Q_Q?? wieso ...
Hi Everyone
I taked this game for testing:
Adresse for cheat engine look ==> 01/30/2012 - 12Sky2 Hacks, Bots, Cheats & Exploits - 4 Replies Hi ..
I give adresse for cheat engine ..
011B2B68 = Infinite Time
011B291C = AutoPill
011B2922 = HP =>> value max = 5
Wie findet man die Engine.dll Adresse raus? 01/18/2012 - General Gaming Discussion - 3 Replies Hallo, ich wollte mal fragen wie man die Adresse von der Engine.dll rausfindet mit CE .. danke für antworten
Wie findet man die Engine.dll Adresse raus? 01/17/2012 - General Coding - 3 Replies Hallo, ich wollte mal fragen wie man die Adresse von der Engine.dll rausfindet mit CE .. danke für antworten
Cheat Engine adresse in Autoit ?? 07/18/2011 - AutoIt - 4 Replies Hallo alle zusammen :)
Was ihr vorher wissen solltet :
-kommt mir nicht mit sowas wie "Google doch selbst". Ich google und stöber alle Foren seit genau 11 Stunden durch. Bin auf einige Tutorials gekommen, doch bin nicht sehr weiter gekommen.
Ich habe ein kleines Problem.
Ich würde gerne einen kleinen Hack schreiben.