werd ich hier schreiben, wie man das in AutoIt realisiert.
Was wir brauchen:
-Grundlegende AutoIt Kenntnisse
-Einen Script Editor (ich benutze Scite)
-Die "NomadMemory.au3" -siehe Anhang
-Solitär - zumindest werde ich es an Solitär erklären, ist aber auch auf jedes andere spiel übertragbar
Was wir machen:
Wir werden den Spielstand in solitär durch eine Änderung in der Memory ändern.
Als erstes suchen wir die Speicheradresse mit unsere CheatEngine, was eigentlich kein Problem darstellen sollte.
Bei mir ist es "077DC9D8".
Wenn wir die Adresse haben können wir mit der Umsetzung in AutoIt starten.
Hack:
Erstellt eine neue .au3 Datei und öffnet sie mit eurem Script Editor
Um auch unter Vista mit der Memory zu arbeiten brauchen wir Administratorrechte, deshalb starten wir mit
PHP Code:
#RequireAdmin ;Unter Vista brauch das Program Administrator rechte!
Diese Datei kopiert ihr einfach in den "Includes" Ordner in eurem AutoIt Verzeichnis.
PHP Code:
#include <NomadMemory.au3> ;brauchen wir, um die Memory Funktionen nutzen können.
;(Geht zwar auch per Hand ist aber so viel einfacher.)
SetPrivilege("SeDebugPrivilege", 1) ;ist nicht nötig, sollte aber verwendet werden
PHP Code:
While Not ProcessExists("Solitaire.exe");Läuft so lange, bist Solitär gestartet ist.
Sleep(200)
WEnd
;Der Quellcode, der nach der While Schleife steht wird erst beachtet, wenn Solitär gestarte ist.
PHP Code:
$ProcessID = ProcessExists("Solitaire.exe");gibt die PID zurück welche wir für _memoryopen brauchen
$Open = _memoryopen($ProcessID) ;Sagt AutoIt mit welcher Memory es arbeiten soll
PHP Code:
$Adresse = 0x077DC9D8 ;um in AutoIt eine Hex angabe zu machen setzt ihr einfach ein 0x davor(Die Adresse kann bei euch anders sein)
$Punkte =InputBox("Punkte","Wieviel Punkte möchten sie?");eine einfache InputBox um die Punkte zu speichern.(ähnlich Cin aus C++)
$write = _MemoryWrite($Adresse, $Open, $Punkte, 'dword');die Funktion, die die Punkte verändert.
;am ende der Funktion muss noch der Memory Typ geschrieben werden ('dword' = 4Byte)
PHP Code:
#RequireAdmin ;Unter Vista brauch das Program Administrator rechte!
#include <NomadMemory.au3> ;brauchen wir, um die Memory Funktionen nutzen können.(Geht zwar auch per Hand ist aber so viel einfacher.)
SetPrivilege("SeDebugPrivilege", 1) ;sollte beim arbeiten mit der Memory immer gesetzt werden
While Not ProcessExists("Solitaire.exe");Läuft so lange, bist Solitär gestartet ist.
Sleep(200)
WEnd
;Der Quellcode, der nach der While Schleife steht wird erst beachtet, wenn Solitär gestarte ist.
$ProcessID = ProcessExists("Solitaire.exe");gibt die PID zurück welche wir für _memoryopen brauchen
$Open = _memoryopen($ProcessID) ;Sagt AutoIt mit welcher Memory es arbeiten soll
$Adresse = 0x077DC9D8 ;um in AutoIt eine Hex angabe zu machen setzt ihr einfach ein 0x davor(Die Adresse kann bei euch anders sein)
$Punkte =InputBox("Punkte","Wieviel Punkte möchten sie?");eine einfache InputBox um die Punkte zu speichern.(ähnlich Cin aus C++)
_MemoryWrite($Adresse, $Open, $Punkte, 'dword');die Funktion, die die Punkte verändert.am ende muss noch die art
;am ende der Funktion muss noch der Memory Typ geschrieben werden ('dword' = 4Byte)
MfG
Timo264