memory

08/13/2010 21:53 omer36#1
ich würd jetz mal gerne mein wissen rund um memorywrite/read ect erweitern...
komischer weise gibt es hier im forum noch kein tut dazu, und im internet finde ich auch nicht viel darüber...

zum testen will ich nen teleport hack machen, füs spiel last chaos...
die offsets hab ich mir von KillerDeluxe geladen..

was genau braucht man? hier mal ein bild
(doppel klick auf den Pointer vom X-wert)
[Only registered and activated users can see links. Click Here To Register...]


würde dann so machen wollen:
eine kleine gui, inder man die aktuelle position sieht,
eine input indem man die neue posi eingibt..
und ein button der es dann ändert....


hatt einer vllt ein tut dazu? oder könnte kurz erklären wie mann das machen?


ist das so im ansatz richtig?
als wert bekomm ich leider nur eine "0" ...
PHP Code:
#RequireAdmin
#include <NomadMemory.au3>

$Handle _MemoryOpen(WinGetProcess("[CLASS:Nksp]"))
$Base 0x1E6E8194
Dim $Offset
[5] = [00x540x40x100x1C]
$Pread =  _MemoryPointerRead($Base$Handle$Offset"float")


Func start()
    
GUICtrlSetData($x,$Pread)
EndFunc 
08/13/2010 23:28 Imaginär#2
[Only registered and activated users can see links. Click Here To Register...]

Gibt sehr wohl ein Tut dazu auf epvp! :p



Ich muss zugeben, dass ich mich mit Last Chaos noch nicht so wirklich beschäftigt habe..

Aber anhand des Bildes würde ich es so versuchen:
Was mich aber noch ein bisschen stört ist, dass da wo "_pnetwork" steht, normalerweise [prozessname]+[basepointer] stehen sollte Ò_ó
08/13/2010 23:59 suiluJ.#3
so mache ich das
Code:
#RequireAdmin
#include <NomadMemory.au3>
Main()
Func Main()
$pid=ProcessExists("LastChaos.exe");?? Bitte richtig ändern
$open=_MemoryOpen($pid)
$XAdresse=XAddresse()

$ActualX=_MemoryRead($XAdresse,$open,"float")
MsgBox(0,"X Pos",$ActualX)
EndFunc

Func XAddresse()
$pid=ProcessExists("LastChaos.exe");?? Bitte richtig ändern
$open=_MemoryOpen($pid)

$Base=;Die Base adresse (Füg _pnet...+..... manuell ein und nehm die adresse die rauskommt)

Dim $av_Offset2[6] = [0, 0x54, 0x4, 0x10, 0x1C]
$x=_MemoryRead($Base,$open,"dword")
$x2=_MemoryRead($x+ $av_Offset2[1],$open,"dword")
$x3=_MemoryRead($x2+ $av_Offset2[2],$open,"dword")
$x4=_MemoryRead($x3+ $av_Offset2[3],$open,"dword")
$x5=_MemoryRead($x4+ $av_Offset2[4],$open,"dword")
$Addy=$x5+$av_Offset2[5]
Return $Addy
EndFunc
08/15/2010 01:35 omer36#4
€selma
Dim $av_Offset2[6] = [0, 0x54, 0x4, 0x10, 0x1C]
müsste da nicht ne 5 hin?


hmm klappt nicht so wirklich...
ich hab selber vom hp wert den pointer gesucht und gefunden, und wollte den maleinfach in einer input anzeigen lassen, aber klappt auch nicht -.-

was könnte hier falsch sein?

PHP Code:
#RequireAdmin
#include <Nomadmemory.au3>
#include <GUIConstantsEx.au3>
$Form1 GUICreate("Form1"23197192124)
$leben GUICtrlCreateInput(""323212921)
GUISetState(@SW_SHOW)


Global 
$Open _MemoryOpen(ProcessExists("[Nksp]"))

Global 
$Pointer 0x106507E8
Global $Offset[2] = [00x109308]

Global 
$pLeben _MemoryPointerRead($Pointer,$Open,$Offset'DWORD')

While 
1
    $nMsg 
GUIGetMsg()
    Switch 
$nMsg
        
Case $GUI_EVENT_CLOSE
            
Exit

EndSwitch
GuiCtrlSetData($leben$pLeben)
WEnd 

ich merk grade, dass ich mit memory noch nicht wirklich viel ahnung habe :D

€nebenbei: ich starte erst mein script und dannach das game,
macht kein unterschied oder?
08/15/2010 02:50 KDeluxe#5
Du gibst die Offsets von unten nach oben an, wäre also:
PHP Code:
Dim $Offset[5] = [00x1C0x100x40x54
Du solltest außerdem drauf achten, dass _MemoryPointerRead und - Write Arrays zurück geben.
[0] beinhaltet die Adresse und [1] den Wert. Die HP solltest du außerdem immer auslesen,
pack den Befehl also in die Schleife. Bei ProcessExists solltest du auch "Nksp.exe" benutzen.

PHP Code:
#RequireAdmin
#include <Nomadmemory.au3>
#include <GUIConstantsEx.au3>

$Form1 GUICreate("Form1"23197192124)
$leben GUICtrlCreateInput(""323212921)
GUISetState(@SW_SHOW)


$Open _MemoryOpen(ProcessExists("Nksp.exe"))
$Pointer 0x106507E8
$Offset
[2] = [00x109308]

While 
True
    $nMsg 
GUIGetMsg()
    If 
$nMsg == $GUI_EVENT_CLOSE Then Exit

    
$pLeben _MemoryPointerRead($Pointer$Open$Offset)
    
$Input GUICtrlRead($leben) ;liest den Wert der Inputbox
    
If $pLeben[1] <> $Input Then GUICtrlSetData($leben$pLeben[1]) ;ändert den Wert der Inputbox nur wenn es nötigt ist
WEnd 
Deine Aussage mit den Tutorials stimmt aber nicht, es gibt mehrere gute Tutorials.
Eigentlich reicht es auch, sich die NomadMemory.au3 anzugucken.
08/15/2010 03:00 | Moep |#6
Quote:
Originally Posted by omer36 View Post
€nebenbei: ich starte erst mein script und dannach das game,
macht kein unterschied oder?
Macht nen gewaltigen Unterschied. Setz mal nach
Code:
$Open = _MemoryOpen(ProcessExists("Nksp.exe"))
folgenden Code ein.

Code:
If @error Then MsgBox(4096, "Fehler", "Das richtige Fenster konnte nicht gefunden werden")
merkst was?..
08/15/2010 11:30 omer36#7
ok mit dem hp wert geht jetz endlich :D
danke an alle..

@moep
ich habs gesgagt, weil ich wusste, dass es ein unterschied machen kann, weil jeder immer
If @error Then MsgBox(4096, "Fehler", "Das richtige Fenster konnte nicht gefunden werden") gemacht hatt...
problem bei mir ist, wenn ich last chaos offen habe und dann etwas starte und eine sicherheitsfrage kommt (scheiss win7 und vista) bleibt das spiel hängen...
ich hab einfach sleep20sec gemacht, dann hab ich genug zeit um ins spiel zu kommen :D
08/15/2010 14:19 | Moep |#8
nimm doch WinWaitActive oder WinWait