Ich habe mal kurz gegoogelt, und rausgefunden, wie man mit autoit werte einfrieren kann ohne schleifen, sondern wie cheat engine.
So.
Dar ich im moment eine Verbindung von 10 kb/s habe, werde ich leider keine bilder einfügen können.
Fangen wir an.
Erstmal braucht ihr die Adresse eures wertes.
In meinem Beispiel ist es "319" aus dem cheat engine tutorial step 5.
Ich nehme an ihr habt die adresse.
(Ich denke es ist egal ob es ein ponter ist, dar durch diese methode der pointer genoppt wird, und der wie wir wissen immer gleich ist.)
Macht einen Rechtsklick auf eure adresse, und wählt "Find out what writes to this adress"
Ändert euren wert. Den wert in cheatengine ändern funktioniert nicht. In meinem Beispiel drücke ich "Change Value".
In dem cheatengine debugging fenster solltet ihr nun eine adresse sehen können.
Rechtsklick -> Show this adress in disassembler
Nun seht ihr den Pointer, in assesembler.
Und wie wir in der markerten zeile unter der spalte "bytes "sehen, Besteht die adresse aus 2 bytes. (2 zahlen = 1 byte)
Beispiel.
89 = 1 byte/byte
89 10 = 2 bytes
89 10 46 = 3 bytes
usw.
Nun.
in meinem beispiel hat die zeile die adresse 00421daa.
Und dar es 2 bytes sind heißt das.
00421daa = 89
00421dab = 10
hier ein beispiel zu 3 bytes
00421daa = 89
00421dab = 10
00421dac = 46
Die adresse für jeden byte +1 (In hexformat)
Um den pointer zu freezen müssen wir wie gesagt, die adresse nopen.
Der wert für den befehl nop = 90
Also müssen wir den wert von 00421daa und 00421dab in 90 ändern.
Wenn ihr dass per autoit macht, ist die adresse gefreezt und ändert sich nicht.
Wollt ihr sie aber z.B. auf 99 Freezen, müsst ihr vorher vom wer den pointer finden, ihn in euer script einauen und auf 99 setzen, und danach die adresse nopen.
Um den Freeze rückgängig zu machen einfach wieder die adressen auf die Standart werte stellen.
also 00421daa in 89 und 00421dab in 10
Dann ist es wieder unfreezd.
Hoffe ihr versteht das tutorial und wisst etwas damit anzufangen.
Hier mal ein BeispielScript, um euch zu zeigen wie es funktioniert.
So.
Dar ich im moment eine Verbindung von 10 kb/s habe, werde ich leider keine bilder einfügen können.
Fangen wir an.
Erstmal braucht ihr die Adresse eures wertes.
In meinem Beispiel ist es "319" aus dem cheat engine tutorial step 5.
Ich nehme an ihr habt die adresse.
(Ich denke es ist egal ob es ein ponter ist, dar durch diese methode der pointer genoppt wird, und der wie wir wissen immer gleich ist.)
Macht einen Rechtsklick auf eure adresse, und wählt "Find out what writes to this adress"
Ändert euren wert. Den wert in cheatengine ändern funktioniert nicht. In meinem Beispiel drücke ich "Change Value".
In dem cheatengine debugging fenster solltet ihr nun eine adresse sehen können.
Rechtsklick -> Show this adress in disassembler
Nun seht ihr den Pointer, in assesembler.
Und wie wir in der markerten zeile unter der spalte "bytes "sehen, Besteht die adresse aus 2 bytes. (2 zahlen = 1 byte)
Beispiel.
89 = 1 byte/byte
89 10 = 2 bytes
89 10 46 = 3 bytes
usw.
Nun.
in meinem beispiel hat die zeile die adresse 00421daa.
Und dar es 2 bytes sind heißt das.
00421daa = 89
00421dab = 10
hier ein beispiel zu 3 bytes
00421daa = 89
00421dab = 10
00421dac = 46
Die adresse für jeden byte +1 (In hexformat)
Um den pointer zu freezen müssen wir wie gesagt, die adresse nopen.
Der wert für den befehl nop = 90
Also müssen wir den wert von 00421daa und 00421dab in 90 ändern.
Wenn ihr dass per autoit macht, ist die adresse gefreezt und ändert sich nicht.
Wollt ihr sie aber z.B. auf 99 Freezen, müsst ihr vorher vom wer den pointer finden, ihn in euer script einauen und auf 99 setzen, und danach die adresse nopen.
Um den Freeze rückgängig zu machen einfach wieder die adressen auf die Standart werte stellen.
also 00421daa in 89 und 00421dab in 10
Dann ist es wieder unfreezd.
Hoffe ihr versteht das tutorial und wisst etwas damit anzufangen.
Hier mal ein BeispielScript, um euch zu zeigen wie es funktioniert.
Code:
#include <ButtonConstants.au3> #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> #include <NomadMemory.au3> #Region ### START Koda GUI section ### Form= $Form1 = GUICreate("Cheat Engine Tutorial", 177, 42, 192, 124) $Button1 = GUICtrlCreateButton("Freezen", 8, 8, 75, 25) $Button2 = GUICtrlCreateButton("Unfreezen", 96, 8, 75, 25) GUISetState(@SW_SHOW) #EndRegion ### END Koda GUI section ### $PID = ProcessExists("Tutorial-i386.exe") $OPEN = _MemoryOpen($PID) While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit Case $Button1 Freeze() Case $Button2 UnFreeze() EndSwitch WEnd Func Freeze() _MemoryWrite(0x00421daa, $OPEN, "0x90", 'byte[1]') _MemoryWrite(0x00421dab, $OPEN, "0x90", 'byte[1]') EndFunc Func UnFreeze() _MemoryWrite(0x00421daa, $OPEN, "0x89", 'byte[1]') _MemoryWrite(0x00421dab, $OPEN, "0x10", 'byte[1]') EndFunc