Offset Autoit Problem

01/26/2009 09:27 emtec22#1
Hi,

ich arbeite gerade an einem neuen Bot.
Leider bekomme ich keine richtige Ausgabe wenn ich das Offset addiere, oder ich mache etwas falsch.
$hp ist der aktuelle Wert in der Umgebung ohne Pointer
Wenn ich diesen auslese kommt mein richtiges Leben auch raus.

$pointer ist der pointer und $offset dazu war 31C habe ich mal zu 0x gemacht damit Autoit nicht meckert.

wenn ich $pointer + $offset mache dann gibts in der Msgbox eine 0.
$pointer+ 796(von hex in dez) auch ne 0.

Hat jemand eine Idee wie ich Pointer mit Offsets einbaue das dsa klappt ?

PHP Code:
  #include<nomadmemory.au3>


Global $Currenthp$CurrentmaxHP $hp $hprocess $lol ,$maxHP $PID $pointer $offset$base $Hp1

$hp
0x315D3F1C
$maxHP
0x315D3F24

$pointer
=0x0117D768
$offset
=0x31C

$PID 
ProcessExists("Client.exe")
$hprocess _MemoryOpen($PID)

_Check()

Func _Check ()
    
 
$Currenthp _MemoryRead($hp$hprocess)
 
$CurrentmaxHP _MemoryRead($maxHP$hprocess)

  
$lol=_MemoryRead($hp,$hprocess)
  
MsgBox(0,"",$lol); das klappt

   $lol2
=_MemoryRead($pointer+$offset,$hprocess)
   
MsgBox(0,"",$lol2); klappt nicht

EndFunc 
01/26/2009 19:04 tonitusch666#2
Hmm also wenn ich Dein Problem richtig interpretiere, dann kann das so aus 2 Gründen nicht funktionieren:
1) in AutoIt gibts keine Zeiger / Zeigerarithmetik
2) Zeiger des autoit Prozess können nicht in den Adressraum des client.exe Prozess zeigen
(mal gaaanz vereinfacht formuliert, hat was mit virtuellen Adressen, logischen Adressräumen und der MMU zu tun ;))

Also die Variable $pointer ist die Speicherstelle des client.exe Prozess an der eine Adresse abgelegt ist von der $offset weiter der Wert abgelegt ist, der Dich interessiert.
D.h. Du muss mit MemRead den Wert lesen, dann den offset draufaddieren und dann mit einem weiteren MemRead von dieser Adresse den Wert lesen...

mfg