|
You last visited: Today at 14:04
Advertisement
Wie man Werte Einfriert
Discussion on Wie man Werte Einfriert within the AutoIt forum part of the Coders Den category.
05/03/2011, 02:35
|
#1
|
elite*gold: 0
Join Date: Dec 2009
Posts: 1,622
Received Thanks: 2,070
|
Wie man Werte Einfriert
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.
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
|
|
|
05/05/2011, 20:53
|
#2
|
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,904
Received Thanks: 25,394
|
Cheat Engine freezt aber in einer Schleife.
|
|
|
05/06/2011, 19:19
|
#3
|
elite*gold: 41
Join Date: Oct 2007
Posts: 1,950
Received Thanks: 3,120
|
wie MrSm!th es sagt du schreibst den Wert nur für den einen Moment, wenn das programm sich jede paar sekunden aktualisiert, ist der wert nur einen kurzen moment geändert oder gefreezt müsstest das dann anders aufbauen.
Kannst ja in der hauptschleife ne überprüfung einer variablen machen, die beim klicken des buttons geändert wird somit in der While das dann beschrieben wird. Und das unfreeze ist auch kein unfreeze sondern auch nur das gleiche was ich oben gesagt hab.
ungefähr so:
PHP Code:
#include <ButtonConstants.au3> #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> #include <NomadMemory.au3> #Region ### START Koda GUI section ### Form= Global $var1 = 0 $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 If $var1 = 1 then _MemoryWrite(0x00421daa, $OPEN, "0x90", 'byte[1]') _MemoryWrite(0x00421dab, $OPEN, "0x90", 'byte[1]') EndIf WEnd
Func Freeze() $var1 = 1 EndFunc
Func UnFreeze() $var1 = 0 EndFunc
|
|
|
05/06/2011, 21:30
|
#4
|
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,904
Received Thanks: 25,394
|
Nein, seine Methode ist schon richtig, er überschreibt den Code, der den Wert ändert, das funktioniert.
Ist nur durch viele Anti Cheat Systeme detected; ich wollte auch nur erwähnen, dass CE es wohl in einer Schleife macht.
Du hast wohl nicht ganz verstanden, dass er Code damit ändert und keinen Wert. Den Code muss er natürlich nur einmal überschreiben.
Aber ok,
Quote:
Um den pointer zu freezen müssen wir wie gesagt, die adresse nopen.
|
Sätze wie sowas leiten auch ziemlich in die Irre.
freehuntx, formulier es richtig oder gar nicht.
|
|
|
05/06/2011, 22:23
|
#5
|
elite*gold: 0
Join Date: Jun 2009
Posts: 970
Received Thanks: 227
|
Ja ist schon ganz richtig das CE das in einer Schleife macht, und wenn ich mich noch erinnere nur alle 500 MS.
|
|
|
05/07/2011, 01:06
|
#6
|
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
|
Quote:
Originally Posted by LordKill
wie MrSm!th es sagt du schreibst den Wert nur für den einen Moment, wenn das programm sich jede paar sekunden aktualisiert, ist der wert nur einen kurzen moment geändert oder gefreezt müsstest das dann anders aufbauen.
Kannst ja in der hauptschleife ne überprüfung einer variablen machen, die beim klicken des buttons geändert wird somit in der While das dann beschrieben wird. Und das unfreeze ist auch kein unfreeze sondern auch nur das gleiche was ich oben gesagt hab.
ungefähr so:
PHP Code:
#include <ButtonConstants.au3> #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> #include <NomadMemory.au3> #Region ### START Koda GUI section ### Form= Global $var1 = 0 $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 If $var1 = 1 then _MemoryWrite(0x00421daa, $OPEN, "0x90", 'byte[1]') _MemoryWrite(0x00421dab, $OPEN, "0x90", 'byte[1]') EndIf WEnd Func Freeze() $var1 = 1 EndFunc Func UnFreeze() $var1 = 0 EndFunc
|
es gibt immernoch leute die nicht verstanden haben was der computer eigentlich im hintergrund macht :s
der threadersteller hat tatsächlich die "magie" des inline asm erkannt, und es gibt hier echt noch leute die das ganze anzweifeln :s
|
|
|
05/07/2011, 02:36
|
#7
|
elite*gold: 2
Join Date: Mar 2008
Posts: 1,778
Received Thanks: 1,222
|
Quote:
Originally Posted by lolkop
es gibt immernoch leute die nicht verstanden haben was der computer eigentlich im hintergrund macht :s
der threadersteller hat tatsächlich die "magie" des inline asm erkannt, und es gibt hier echt noch leute die das ganze anzweifeln :s
|
"Inline ASM" ist in AutoIt grad am Kommen
(Smith, nicht schlagen :<)
Wobei man C++ dafür verwenden sollte.
|
|
|
05/09/2011, 06:57
|
#8
|
elite*gold: 0
Join Date: Dec 2009
Posts: 1,622
Received Thanks: 2,070
|
Ich dachte immer Ce Friert werte auf diese weise o.0
Dar nach dem Freezen, selbst wenn man CE Geschlossen hat, der wert sich nicht geändert hat.
Und wenn ihr mal einen Wert freezt und in die memory schaut , seht ihr dass der Pointer Genoppt ist.
@MrSm!th
Ich bin deiner nicht würdig und verstehe nichts vom Programmieren. Deshalb kann ich dir bezüglich "formulier es richtig oder gar nicht." nicht dienen. Ich entschuldige mich vielmals dass ich so dumm bin und mir nie die zeit genommen habe c++ zu lernen.
Mission Complete.
und Werte in einer schleife zu ändern ist in autoit als würde ein mensch ein sofa schleppen.
1 geht ja noch, aber bei 2 wirds schwer.
Quote:
Originally Posted by LordKill
wie MrSm!th es sagt du schreibst den Wert nur für den einen Moment, wenn das programm sich jede paar sekunden aktualisiert, ist der wert nur einen kurzen moment geändert oder gefreezt müsstest das dann anders aufbauen.
Kannst ja in der hauptschleife ne überprüfung einer variablen machen, die beim klicken des buttons geändert wird somit in der While das dann beschrieben wird. Und das unfreeze ist auch kein unfreeze sondern auch nur das gleiche was ich oben gesagt hab.
ungefähr so:
PHP Code:
#include <ButtonConstants.au3> #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> #include <NomadMemory.au3> #Region ### START Koda GUI section ### Form= Global $var1 = 0 $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 If $var1 = 1 then _MemoryWrite(0x00421daa, $OPEN, "0x90", 'byte[1]') _MemoryWrite(0x00421dab, $OPEN, "0x90", 'byte[1]') EndIf WEnd
Func Freeze() $var1 = 1 EndFunc
Func UnFreeze() $var1 = 0 EndFunc
|
Naja Wennschon dannschon:
Code:
If $var1 = 1 then
_MemoryWrite(0x00421daa, $OPEN, "0x90", 'byte[1]')
_MemoryWrite(0x00421dab, $OPEN, "0x90", 'byte[1]')
elseif $var1 = 0 then
_MemoryWrite(0x00421daa, $OPEN, "0x89", 'byte[1]')
_MemoryWrite(0x00421dab, $OPEN, "0x10", 'byte[1]')
EndIf
|
|
|
05/09/2011, 10:15
|
#9
|
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
|
Quote:
Originally Posted by PenGuin :O
"Inline ASM" ist in AutoIt grad am Kommen
|
ich bin jetzt seit ca. 6 jahren mit autoit vertraut (damals durch ein mmorpg darauf gekommen) und mir ist kein zeitpunkt bekannt, zudem autoit nich in der lage war mit winapis umzugehen...
zudem ich nicht verstehe warum du denn inline asm in anführungszeichen gesetzt hast.
|
|
|
05/09/2011, 16:05
|
#10
|
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,904
Received Thanks: 25,394
|
Wenn du aber mal versuchst, mit CE Werte zu freezen, die sehr sehr schnell überschrieben werden, wirst du merken, dass es doch in einer Schleife passieren muss.
Das siehst du zb. bei S4 an den Koordinaten. Würdest du einfach den Code noppen (nicht den Pointer!) müsste man ja genau an einer Stelle bleiben. Du bewegst dich aber immer ein Stück und wirst dann wieder zurück an die alte Stelle teleportiert (sieht man ganz schön, wenn man fällt).
Habe auch schon in CE bemerkt, dass Werte ab und zu wieder zurückgesprungen sind und dann wieder zum eingefrorenen Wert wurden.
Deutet also ziemlich auf eine Schleife hin
p.s. C++ hat damit nichts zutun, eher ASM
|
|
|
05/09/2011, 16:42
|
#11
|
elite*gold: 41
Join Date: Oct 2007
Posts: 1,950
Received Thanks: 3,120
|
fuuu okay ... habs mit asm vercheckt -.- aber jetzt steht das da auch mit nop etc ._.
|
|
|
05/09/2011, 23:19
|
#12
|
elite*gold: 0
Join Date: Dec 2009
Posts: 1,622
Received Thanks: 2,070
|
Quote:
Originally Posted by MrSm!th
Wenn du aber mal versuchst, mit CE Werte zu freezen, die sehr sehr schnell überschrieben werden, wirst du merken, dass es doch in einer Schleife passieren muss.
Das siehst du zb. bei S4 an den Koordinaten. Würdest du einfach den Code noppen (nicht den Pointer!) müsste man ja genau an einer Stelle bleiben. Du bewegst dich aber immer ein Stück und wirst dann wieder zurück an die alte Stelle teleportiert (sieht man ganz schön, wenn man fällt).
Habe auch schon in CE bemerkt, dass Werte ab und zu wieder zurückgesprungen sind und dann wieder zum eingefrorenen Wert wurden.
Deutet also ziemlich auf eine Schleife hin
p.s. C++ hat damit nichts zutun, eher ASM
|
Ich wollte damit sagen dass C++ geeigneter dafür ist als autoit.
Und wieso soll man denn nicht den Pointer Freezen?? dass ist doch der sinn..
verstehe ich nicht..
Naja was Koordinaten angeht...
In Crysis 2 habe ich einen OPK Geschrieben, in autoit, und beim testen der adressen, ist mir nicht aufgefallen dass mann zurückgesetzt wird...
Ich konnte mich keinen schritt bewegen.
Naja ich Finde Nopen besser als es mit einer schleife zu freezen.
Jedem die seine Meinung.
|
|
|
05/09/2011, 23:22
|
#13
|
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,904
Received Thanks: 25,394
|
Problem ist, dass Codechanges wie Noppen von Anti Cheats wie XTrap detected werden.
Ich sagte nicht, man soll den Pointer nicht freezen, ich sagte, man noppt ihn nicht.
Nop ist ein ASM Befehl. Die Aussage "Einen Pointer noppen" macht einfach keinen Sinn, man kann höchstens den Code noppen, der den Pointer beschreibt, sodass dieser nicht mehr verändert wird, mehr wollte ich gar nicht mit dem ersten Post sagen.
|
|
|
05/10/2011, 01:28
|
#14
|
elite*gold: 0
Join Date: Dec 2009
Posts: 1,622
Received Thanks: 2,070
|
Ich drück mich eben dessöfteren falsch aus.
Aber ich denke der grundgedanke wird verstanden.
Und wegen der Detection..
Daran kann ich nichts ändern ^^
Ich rate eben zu diesem weg, einen wert zu freezen, wenn man es nicht mit anticheats zu tun hat.
|
|
|
Similar Threads
|
s25 werte
03/19/2011 - Metin2 - 5 Replies
Hallo, bräuchte maln paar werte...
hwf+0
sbd+0
ag+0
rek+0
vms+0
jeweils gute und schlechte werte
|
85-95 Werte
01/23/2010 - Metin2 Private Server - 2 Replies
hi kann mir vieleicht einer ne liste erstellen mit den werten der 85 bis 95 waffen?
oder kennt einer nen link wo ich das finden kann?
|
WERTE???
08/21/2009 - S4 League - 1 Replies
werte sammeln für KIKI und co.!!!!:handsdown:
|
werte
10/18/2008 - Metin2 Private Server - 5 Replies
hi,
wie viel sind folgende sahcen auf longju2 wert..?
1. edelstein
2. pm
3. muschel
4. medi+
5. medi
6. grüner pott klein
|
werte
10/16/2008 - Metin2 - 3 Replies
hi,
wie viel sind folgende sahcen auf longju2 wert..?
1. edelstein
2. pm
3. muschel
4. medi+
5. medi
6. grüner pott klein
|
All times are GMT +1. The time now is 14:04.
|
|