So und nun noch ein mal extra nur für dich...
du hast es geändert:
Quote:
#include <NomadMemory.au3>
#RequireAdmin
ToolTip("warte auf S4Client.exe",0,0)
$PID = ProcessExists("S4Client.exe")
ProcessWait($PID)
ToolTip("Good Hack",0,0)
$OPEN = _MEMORYOPEN($PID)
_MEMORYWRITE(Adresse,$Open,Wann es es ändern soll,Value)
|
$PID = ProcessExists("S4Client.exe")
ProcessWait($PID)
Kann so nicht hingeschrieben werden, er bezieht die Process ID aus "S4Client", da er aber vorher nicht auf diesen wartet und man die Funktion warscheinlich vorher schon aktiviert ist diese => 0
Danach wartet er auf den Process (0) den es nicht gibt.
Fazit: Wrong! Und das sieht man mit reiner Logik...
Richtig:
ProcessWait("S4Client.exe")
$PID = ProcessExists("S4Client.exe")
Er wartet auf den Prozess und schreibt dann die Id in $PID, du weis warscheinlich nicht einmal warum man gerne "$PID" hinschreibt(is ja nur C&P) deshalb:
PID = Process ID
Weiter...
_MEMORYWRITE(Adresse,$Open,Wann es es ändern soll,Value)
Noch einmal, nachdem ich dir das schon 2mal erklärt habe und man auch das
1. Durch Logik nachvollziehen kann
2. In der NomadMemory nachgucken kann
Syntax: _MemoryWrite($iv_Address, $ah_Handle, $v_Data, $sv_Type = 'dword')
1. $iv_Adresse: Ja ist richtig, die Adresse. Hierbei zu erwähnen das in AutoIT immer "0x" davor geschrieben werden muss. Da du warscheinlich nicht weist warum(...)
C948D82(Beispiel) ist eine HexaDezimal Zahl, wie alle Non-Leecher wissen geht das nette HexaDezimal System so: A-F;0-9
AutoIT hat aber nunmal keine AutoErkennung was vor ihm liegt, so würde er nur Dezimalzahlen entschlüsseln können. Durch den zusatz von "0x" sagen wir AutoIT:
"Hey du, das is ne HaxaDezimal Zahl, wollts nur mal gesagt haben"
Wenn man es weglässt erkennt er keine Zahl sondern einen String was letztendlich nicht mehr funktioniert.
2.$ah_Handle: Richtig, MemoryOpen sucht den Process anhand der PID und gibt den Handle als Returnwert, dieser kann von MemoryWrite verwertet werden.
3.$v_Data: "Wann es es ändern soll"??? Total Falsch!
Auch hier, Logik hilft weiter.
Ok, was Data heist ist klar. Was v in diesem Fall bedeutet kann man sich auch denken, und selbst wenn man es kopiert, und die Syntax nicht rafft, kann man es nachlesen!
v_Data = "Value Wert der geschrieben werden soll "wenn man es grob nimmt.
Erklärung aus NomadMemory: The data to be written.
4.$sv_Type: Du sagst, dies ist die Value... Auch hier gilt, Logik! Data = Zeit und Type = Wert? Naja...selbst umgekehrt macht es nur zur hälfte Sinn, denn Data ist zwar dann der Wert, aber Type ist nicht die Zeit.
Type = Typ in diesem Falle, der Value Typ.
Es gibt viele verschiedene wie z.B. 2 Bytes,4Bytes,Double,String,Float etc...
AutoIT stellt 3 zur Verfügung:
4 Bytes
Float
String
Wobei man diese nicht einfach so hinschreiben darf.
In AutoIT gilt:
4 Bytes = Dword
Float = Float
String = Char
Wobei Char etwas spezieller ist. Wenn ihr ein Wort schreiben wollt, z.B. "Hallo" hat dieses 5 Zeichen. AutoIT ist aber zu blöd zum zählen, deshalb sagt man ihm das mit "Char".
...,"Hallo",Char[6]
Warum jetzt auf einmal 6 und nicht 5? Immer 1 mehr wie es für uns sind. Das hat was mit dem Bit/Byte system in der Memory zu tun, was ich hier nicht erklär, dafür könnt ihr ja mal As fragen, denn der hat da die meiste Ahnung.
MFG