(11.03.2012 01:38 )Pascha schrieb: Ok dann habe ich fälschlicher weise angenommen das es VB ist.
Man kann mit Hilfe eines Programms namens Cheat Engine auf laufende Prozesse zugreifen (zumindestens bei Spielen ist es so, habe es bei anderen noch nicht probiert) und Adressen bzw Pointer auslesen, so kann man die Werte dahinter nach belieben verändern.
Das Programm arbeitet weitesgehend automon bei der erstellung des Skript, man muss nur gewisse Einstellungen vornehmen.
Warum auch immer ich hatte gedacht, dass es das ganze in VB tut.
Sorry für die Verwirrung.
Es gibt natürlich DebugBetriebssytemroutinen um in einen Prozess zu schauen. Sonst könnte ein Debugger ja nicht funktionieren.
Aber: Diese Funktionen können nur in elevated mode ausgeführt werden. Das Program das sie aufruft muss also zwingend mit Administratorrechten gestartet werden.
Zudem ist das alles schön und gut aber damit hast Du noch immer einfach einen linearen Adressbereich von heutzutage schnell mal vielen MB Grösse. Da die richtige Addresse zu finden für die eine spezielle Variable ist ein Unding. Je nach Programmierung kann diese Adresse auch noch varieren zwischen Programmaufrufen. Ein Debugger macht das indem der Compiler für den Debugbuild Unmengen an extra Informationen in das Executable schreibt die dem Debugger die Addresse und den Namen von Variablen mitteilen. Bei Releasesoftware ist diese Informationen beinahe immer entfernt, sowohl wegen der extra Grösse die es verursacht und damit auch langsamerer Lade- und sogar Ausführungszeit, aber natürlich auch weil die wenigsten Programmierer einem Hacker soviel Einblick in die Applikation bieten wollen.
Die von Dir angesprochenen CheatEngine dürfte nur darum funktionieren weil sich da jemand (wahrscheinlich ein paar jemanden) viel Mühe gemacht haben um mit einem Disassembler die Spiele zu untersuchen und die entsprechenden Adresstabellen für bestimmte Spiele zu erstellen. Das wird wahrscheinlich noch wesentlich erleichtert weil viele Spiele die gleichen oder ähnlichen Engines benützen um ein Spiel zu implementieren. Wenn die dann ein Spiel anschauen und feststellen dass es die gleiche Engine verwendet wie Spiel X, das sie schon disassembliert haben, ist es viel einfacher um da auch rein zu schauen.
Ohne spielspezifische Tabellen zu dem Spiel dass Du cheaten willst, funktioniert das aber sicher nicht. Und die Verwendung von einem Disassembler (oder überhaupt jegliche Art von Reverse Engineering) für solche Zwecke ist inzwischen in vielen Ländern ziemlich strafbar. Und in manchen ist auch die Verwendung der so erhaltenen Resultate schon strafbar.