[Autoit]Pointer auslesen/schreiben

11/12/2008 16:29 °Remus°#1
hallo ich versuch derzeit es hinzubekommen mit au3 pointer auszulesen.
dazu benutzt ich die
[Only registered and activated users can see links. Click Here To Register...]

und dementsprechend
_MemoryPointerWrite

das beispiel an dem ich es versuche is der 8te abschnitt des offieziellen ce tuts,
ich hab den static pointer und entsprechend die offsets
das pw dafür ist
525927
den pointer und dei offsets könnt ihr der angehängten
lvlpointer8.CT (müsst ihr mit CE öffnen)
entnehmen

so hier mein code
Code:
#include <Memory.au3>
HotKeySet("{F5}","end")
Global $offset[4]
$offset[0] = Dec("C")
$offset[1] = Dec("14")
$offset[2] = 0
$offset[3] = Dec("18")

$pid = ProcessExists("Tutorial.exe")
If $pid = 0 Then
	MsgBox(16,@ScriptName,'Prozess nicht gefunden, Skript wird beendet.')
	Exit 
EndIf
$mem = _MemoryOpen($pid)
$adr = 0x0045CC20
While 1
Dim $point =_MemoryPointerRead($adr,$mem,$offset)
ToolTip("DMA = " & $point[0] & @CRLF & "Value = " & $point[1] & @CRLF &  "@error = " & @error,0,0)
Sleep(1000)
WEnd

Func end()
_MemoryClose($mem)
Exit
EndFunc
mein problem ist das ich nie die richtige adresse/ den richtigen wert ausgegeben bekomme, und ich keine ahnung hab wo der fehler liegen könnte,
wahrscheinlich benutzt ich die udf einfach nur falsch und hab von dem was ich da mache keine ahnung^^,
ich hoffe ihr könnt mir da helfen;),

lg °Remus°
11/14/2008 16:07 Benhero#2
hm nice work finde ich... wenn man dich noch von früher kennt xD da konntest du net so viel xDDDD

Mfg. Benhero
11/14/2008 22:49 °Remus°#3
Quote:
Originally Posted by Benhero View Post
hm nice work finde ich... wenn man dich noch von früher kennt xD da konntest du net so viel xDDDD

Mfg. Benhero
lol, mein problem ist ja grade dass das oben nicht so geht wie ich will, ansich ist das nicht so kompliziert^^ blos ich muss halt ihrgendwas falsch gemacht haben,
das was in der metin section an bots vorhanden ist, ist kinderkram im vergleich zu den bots für z.B. Guild Wars,

b2t.: gibts ihrgendwen der sich damit auskennt und mir helfen kann?
12/14/2009 16:44 dieblume123#4
naja hab gestern angefangen mich mit sowas anzufreunden weils pixelsearch end mehr wirklich bringt ><
hab das hier gefunden vllt hilfts dir ja :P
Quote:
func getbase ()
$pid = WinGetProcess("myprog"); pid ermitteln
global $info = _MemoryOpen($pid) ;auf speicher zugreifen und nem objekthandler "$info" zuweisen
$basex = "0x0092EAAC" ;basisadresse (solltest du mit ce ermitteln)
$zadress = _MemoryRead($basex, $info) ;die adresse die in der basisadresse steht
$yadress = $zadress + 32 ;selbiges + 20h (werte werden immer als integer gespeichert)
global $base = _MemoryRead("0x" & hex($yadress), $info) ; die adresse die im ermittelten pointer steht - das hex(...) wandelt die int in nen hex-string um, das "0x" davor brauchst für das autoit-hexadezimal-format
EndFunc
und du kannst es auch ma hier versuchen [Only registered and activated users can see links. Click Here To Register...] autoitbot de/
die typen da ham scho was drauf ich denk das die dir auf jeden weiter helfen können ^^
12/15/2009 19:19 buFFy!#5
Quote:
das was in der metin section an bots vorhanden ist, ist kinderkram im vergleich zu den bots für z.B. Guild Wars
*comes from Gw section to help yahhhhhh*

_MemoryPointerRead/Write sind ein bisschen Buggy. Mal gehts - Mal nicht..
Ich weiß nicht ob's funktioniert.. sollte aber eigentlich
Code:
#include <NomadMemory.au3>

HotKeySet("{End}", "OnExit")

Global Const $hOffset[4] = [0xC, 0x14, 0x0, 0x18]
Global Const $hAddress = 0x0045CC20

While Not $ProcId
	$ProcId = ProcessExists("Tutorial.exe")
	Sleep(0)
WEnd
ConsoleWrite("ProcId: " & $ProcId & @CRLf)

$hProcess = _MemoryOpen($ProcId)

$x = _MemoryRead($hAddress)

$iSize = UBound($hOffset)
For $iCount = 1 To $iSize -1	
	$x = _MemoryRead($hProcess, $x + $hOffset[$iCount])
Next

$y = _MemoryRead($hProcess, $x + $hOffset[3])
ConsoleWrite("Pointer: " & $x + $hOffset[3] & @CRLF & "Value: " & $y)

Func OnExit()
	_MemoryClose($hProcess)
	Exit
EndFunc   ;==>end
Falls es nicht geht dann gib mir bitte die Tutorial.exe und ich mach das ganze nochmal richtig ;)

Ansonsten sollte es auch so gehen:
Code:
#include <NomadMemory.au3>

HotKeySet("{End}", "OnExit")

Global Const $hOffset[4] = [0xC, 0x14, 0x0, 0x18]
Global Const $hAddress = 0x0045CC20

While Not $ProcId
	$ProcId = ProcessExists("Tutorial.exe")
	Sleep(0)
WEnd
ConsoleWrite("ProcId: " & $ProcId & @CRLf)

$hProcess = _MemoryOpen($ProcId)

$x = _MemoryRead($hAddress)
$x = _MemoryRead($x + $hOffset[0])
$x = _MemoryRead($x + $hOffset[1])
$x = _MemoryRead($x + $hOffset[2])
$x = _MemoryRead($x + $hOffset[3])

Func OnExit()
	_MemoryClose($hProcess)
	Exit
EndFunc   ;==>end
oder so:

Code:
#include <NomadMemory.au3>

HotKeySet("{F5}", "OnExit")

Global Const $hOffset[4] = [0xC, 0x14, 0x0, 0x18]
Global Const $hAddress = 0x0045CC20

While Not $ProcId
	$ProcId = ProcessExists("Tutorial.exe")
	Sleep(0)
WEnd
ConsoleWrite("ProcId: " & $ProcId & @CRLf)

$hProcess = _MemoryOpen($ProcId)

For $iCount = 1 To Ubound($hOffset)
	$x = _MemoryPointerRead($hProcess, $hAddress, $hOffset)
Next

ConsoleWrite("Pointer: " & $x[0] & @CRLF & "Value: " & $x[1])

Func OnExit()
	_MemoryClose($hProcess)
	Exit
EndFunc   ;==>end
Wie gesagt, bitte alle 3 Varianten ausprobieren :awesome:

greetz, coRe
12/15/2009 21:10 Xereon#6
Quote:
Originally Posted by °Remus° View Post
lol, mein problem ist ja grade dass das oben nicht so geht wie ich will, ansich ist das nicht so kompliziert^^ blos ich muss halt ihrgendwas falsch gemacht haben,
das was in der metin section an bots vorhanden ist, ist kinderkram im vergleich zu den bots für z.B. Guild Wars,

b2t.: gibts ihrgendwen der sich damit auskennt und mir helfen kann?
kleiner Tipp, wenn ud sowieso ein Bot für GW schreibst: Benutz GWCA ;)
12/16/2009 16:19 °Remus°#7
Quote:
Originally Posted by Xereon View Post
kleiner Tipp, wenn ud sowieso ein Bot für GW schreibst: Benutz GWCA ;)
schau dir an wie alt der thread ist ^^
ich hab nie GW bots geschrieben und das "problem" hab ich schon lange gelöst, aber trotzdem danke
12/16/2009 21:57 buFFy!#8
Ach da hat wieder wer Indiana Jones gespielt oO
02/22/2011 18:06 Xprogrammingmasterx#9
leute kann mir jemand helfen ?!

Was soll ich mit dem pointer ??