[Frage]NomadMemory

07/22/2011 02:46 irrenhaus#1
Hallo,
ich habe ein Problem mit meiner NomadMemory.au3
immer wenn ich
Code:
_MemoryPointerRead / _MemoryPointerWrite
in meinem Hack benutze und es Decompile kommt ein Error
der sagt das es keine Array Variable ist.

hier ist einmal meine NomadMemory.au3

Ich hoffe mir kann jemand helfen

MFG
[X]Gold
07/22/2011 05:27 KDeluxe#2
Beim (De-)kompilieren bekommst du keine Fehlermeldungen, du kannst also jeden Scheiß ohne weiteres kompilieren. Nur wirst du dann ein Problem beim ausführen haben.

Und um was geht es genau? $ah_Handle ist ein Array, wird aber von _MemoryOpen() zurück gegeben, damit solltest du also kein Problem haben. Bleiben also nur noch die Offsets. Hier hilft - wie auch immer - lesen:
Quote:
Set $av_Offset like this:
$av_Offset[0] = 0
$av_Offset[1] = Offset for pointer 1
$av_Offset[2] = Offset for pointer 2
$av_Offset[n] = Offset for pointer n
_MemoryPointerRead() gibt beim Erfolg auch ein Array zurück. Schlägt der Funktion fehl nicht. Du kannst also nicht nur einfach $Value[1] benutzen, sonst würdest du unter Umständen einen Fehler bekommen und das Script stürzt ab. Dieses Problem kannst du ganz einfach lösen, indem du vorher eine Abfrage machst, ob es sich um ein Array handelt, oder ob der Funktionsaufruf erfolgreich war.

07/22/2011 10:23 irrenhaus#3
Ah Danke ich werd es nachher mal Ausprobieren :>

Die Offsets hatte ich so Definiert
Code:
Dim $Offset1[6]
$Offset1[0]=0
$Offset1[1]=0xBlah
$Offset1[2]=0xBlah
...
Aber wenn es kein Array ist dann wird die Stelle doch ignoriert und das soll es ja nicht :0
07/22/2011 18:07 Ludder231#4
HAst du die NomadMeomory.au3 auch includiert? Also mit #include<nomadmemory.au3> und ahst du die auch in dein AutoIT verzeichnis unter Includes gespeichert?
07/22/2011 18:23 Freddy​#5
Quote:
Originally Posted by Ludder231 View Post
HAst du die NomadMeomory.au3 auch includiert? Also mit #include<nomadmemory.au3> und ahst du die auch in dein AutoIT verzeichnis unter Includes gespeichert?
Mit sicherheit hat er es sonst könnte man es glaubeich nicht compilen
07/22/2011 19:46 buFFy!#6
memorypointerread ist buggy. mach dir ne eigene funktion dafür.
hab das hier mal kurz in notepad zam gegurkt
Code:
func readptrchain($hproc, $addr, $offsets, $type)
	if ubound($offsets) == 0 then return 0
	local $ret = $addr
	for $i = 0 to ubound($offsets)
		$ret = _memoryread($ret+$offsets[$i], $hproc, $type);
	next
	return ret;
endfunc
wenn du deine offsets so definierst
Code:
dim $offset[x] = [0x0, 0xoffset1, 0xoffset2, ..., 0xoffsetx];
dann sollte das gehen..
07/22/2011 21:32 KDeluxe#7
An _MemoryPointerRead() ist nichts "buggy". Deine readptrchain() Funktion bringt dagegen rein gar nichts. Sie ließt immer die selbe Adresse aus.
07/22/2011 23:27 irrenhaus#8
ich glaube das ich nichts richtiges rausbekomme da ich nicht genug zugriff auf den Prozess hab :O
( s4Client.exe )
07/23/2011 11:06 buFFy!#9
Quote:
Originally Posted by KillerDeluxe View Post
An _MemoryPointerRead() ist nichts "buggy". Deine readptrchain() Funktion bringt dagegen rein gar nichts. Sie ließt immer die selbe Adresse aus.
habs editiert.. war doch offensichtlich was gefehlt hat.
und als ich noch mit au3 gearbeitet habe, war diese funktion definitiv buggy!
07/23/2011 20:54 KDeluxe#10
Was verstehst du den unter "buggy"? Die Funktion läuft einwandfrei. Selbst dein editiertes Script wird nicht funktionieren, da du die verschiedenen Offsets immer auf die Baseadresse addierst und sie dann ausließt, am Ende kommst du also auf ein komplett falsches Ergebnis. Du müsstest schon auf den Buffer addieren (so wie es auch die Funktionen von Nomad machen).
07/24/2011 11:20 buFFy!#11
Quote:
Originally Posted by KillerDeluxe View Post
Was verstehst du den unter "buggy"? Die Funktion läuft einwandfrei. Selbst dein editiertes Script wird nicht funktionieren, da du die verschiedenen Offsets immer auf die Baseadresse addierst und sie dann ausließt, am Ende kommst du also auf ein komplett falsches Ergebnis. Du müsstest schon auf den Buffer addieren (so wie es auch die Funktionen von Nomad machen).
olol stimmt. fail ^^

die funktion hat in früheren au3 versionen manchmal den richtigen wert zurückgegeben, manchmal aber auch einfach 0. und das im selben skript mit verschiedenen applikationen.
11/06/2011 08:52 xXMerlinoXx#12
OOOOOOHhhhhh I LOVE YOU!!!!!!!!