Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > AutoIt
You last visited: Today at 09:43

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Pointer und Offsets?

Discussion on Pointer und Offsets? within the AutoIt forum part of the Coders Den category.

Reply
 
Old 08/10/2013, 21:55   #16

 
elite*gold: 64
Join Date: May 2011
Posts: 1,229
Received Thanks: 854
Naja um dir jetzt echt mal ein bisschen zu helfen:

Code:
#AutoIt3Wrapper_UseX64=n
#include <Pointer.au3>

$szProcessName = "MultiClient.exe"
$dwProcessId = ProcessExists($szProcessName)
If $dwProcessId == 0 Then
	MsgBox(48, "Error", "Process doesn't exists!")
Else
	$phHandles = _MemoryOpen($dwProcessId)
	If @error Then
		MsgBox(48, "Error", "Can't open " & $szProcessName & "! @error: " & @error)
	Else
		$lpBaseAddress = 0x0356DC90
		Dim $pOffsets[2] = [0xAC, 0x48]
		$lpMemoryData = _MemoryRead(_MemoryRead(_MemoryRead($lpBaseAddress, $phHandles) + $pOffsets[0], $phHandles) + $pOffsets[1], $phHandles, 'dword')
		ConsoleWrite("Value: " & $lpMemoryData)
		MsgBox(64, "Info", & "Value: " & $lpMemoryData)
		_MemoryClose($phHandles)
	EndIf
EndIf
#Edit:
Kleiner Fehler Fix
BladeTiger12 is offline  
Old 08/10/2013, 22:12   #17
 
blackout617's Avatar
 
elite*gold: 68
Join Date: Feb 2011
Posts: 401
Received Thanks: 96
Quote:
Originally Posted by BladeTiger12 View Post
Naja um dir jetzt echt mal ein bisschen zu helfen:

Code:
#AutoIt3Wrapper_UseX64=n
#include <Pointer.au3>

$szProcessName = "MultiClient.exe"
$dwProcessId = ProcessExists($szProcessName)
If $dwProcessId == 0 Then
	MsgBox(48, "Error", "Process doesn't exists!")
Else
	$phHandles = _MemoryOpen($dwProcessId)
	If @error Then
		MsgBox(48, "Error", "Can't open " & $szProcessName & "! @error: " & @error)
	Else
		$lpBaseAddress = 0x0356DC90
		Dim $pOffsets[2] = [0xAC, 0x48]
		$lpMemoryData = _MemoryRead(_MemoryRead(_MemoryRead($lpBaseAddress, $phHandles) + $pOffsets[0], $phHandles) + $pOffsets[1], $phHandles, 'dword')
		ConsoleWrite("Value: " & $lpMemoryData)
		MsgBox(64, "Info", & "Value: " & $lpMemoryData)
		_MemoryClose($phHandles)
	EndIf
EndIf
#Edit:
Kleiner Fehler Fix
Endlich funk es sehr vielen dank kanst du mir auch bitte erkleren ? woher komt 0x00400000 + 0x3E6948 ?
blackout617 is offline  
Old 08/10/2013, 22:21   #18
 
elite*gold: 0
Join Date: Mar 2009
Posts: 7,260
Received Thanks: 33,149
0x00400000 ist in der Regel der "Einstiegspunkt" eines Prozesses.

Er hat im Endeffekt nur die Werte genommen, die du im ersten Beitrag geschrieben hast:
Quote:
Originally Posted by blackout617 View Post
MAX HP = 007E6938 Offset1:AC Offset2:48
Das deckt sich allerdings nicht mit den Werten deines Screenshots, deshalb habe ich sie nie hergenommen. Wohl ein Fehler gewesen.

Die Hex-Ausgabe liegt übrigens an folgender Zeile in der Pointer.au3:
Code:
$iv_Address = '0x' & hex($iv_Data[1] + $av_Offset[$i])

Könntest du folgenden Code mal ausprobieren:
Meine UDF hat eine ausführlichere "Fehlerbehandlungsmöglichkeit". Deshalb hast du bei meiner UDF auch die Fehlermeldung bekommen, wohingegen die _MemoryPointerRead() Funktion einfach nur "0" zurück liefert und den Funktionsaufruf von "ReadProcessMemory" überhaupt nicht nach Richtigkeit überprüft.
KDeluxe is offline  
Thanks
1 User
Old 08/10/2013, 22:27   #19

 
elite*gold: 64
Join Date: May 2011
Posts: 1,229
Received Thanks: 854
Nicht nur das KDeluxe, seine Adresse im ersten Post kann stimmen,
und die Adresse: 0x0356DC90 ist falsch gewesen.
BladeTiger12 is offline  
Old 08/10/2013, 22:43   #20
 
elite*gold: 0
Join Date: Mar 2009
Posts: 7,260
Received Thanks: 33,149
Selbst die Adresse aus dem 1. Beitrag ist falsch (Differenz von 0x10).

"Richtig" war es in diesem Beitrag:
Quote:
Originally Posted by blackout617 View Post
Quote:
#include <Pointer.au3>
$PID = ProcessExists("MultiClient.exe")
$MemOpen = _MemoryOpen($PID)

Global $Offset[3]
$Offset[0] = 0
$Offset[1] = Dec("48")
$Offset[2] = Dec("AC")
$StaticOffset = Dec("003E6948")

$BaseAddr = _MemoryGetBaseAddress($MemOpen, 1)
$Addr = "0x" & Hex($baseADDR + $StaticOffset)

$Value = _MemoryPointerRead($Addr, $MemOpen, $Offset)

while 1
Tooltip ($Value[1])
WEnd
Die "MultiClient.exe" hat mich aber schon die ganze Zeit gestört. Bei dieser ist der Einstiegspunkt eben nicht 0x00400000 sondern 0x03187348. Ich nehme aber einfach mal an, dass die "MultiClient.exe" die "NostaleX.dat" lädt und ausführt, wodurch die richtige Adresse wieder 0x007E6948 und nicht 0x0356DC90 ist. Das sind natürlich wieder "Sonderfälle".
KDeluxe is offline  
Old 08/10/2013, 22:44   #21
 
blackout617's Avatar
 
elite*gold: 68
Join Date: Feb 2011
Posts: 401
Received Thanks: 96
ok danke,3E6948 habe ich werstanden das ist bei c.e. beim pointer scan die base adresse

0x00400000 ist die einstieg adressse
$lpBaseAddress = 0x00400000 + pointer base adresse(die ersten 2 zahlen löschen und dan schreiben

MultiClient.exe ist die NostaleX.dat nur als multiclient gemacht
blackout617 is offline  
Old 08/10/2013, 22:50   #22
 
elite*gold: 0
Join Date: Mar 2009
Posts: 7,260
Received Thanks: 33,149
Was meinst du damit? CE zeigt als "Base Address" nicht E6948 an sondern "MultiClient.exe"+3E6948. Beides gehört zusammen und ist die "Base Address".
Das war aber auch schon das Problem, da "MultiClient.exe"+3E6948 = 0x0356DC90 ist. Richtig wäre aber 0x007E6948. Du kannst in CE ja mal "NostaleX.dat"+3E6948 ausprobieren, vielleicht funktioniert es ja.

Quote:
Originally Posted by KDeluxe View Post
Könntest du folgenden Code mal ausprobieren:
Meine UDF hat eine ausführlichere "Fehlerbehandlungsmöglichkeit". Deshalb hast du bei meiner UDF auch die Fehlermeldung bekommen, wohingegen die _MemoryPointerRead() Funktion einfach nur "0" zurück liefert und den Funktionsaufruf von "ReadProcessMemory" überhaupt nicht nach Richtigkeit überprüft.
KDeluxe is offline  
Old 08/11/2013, 00:23   #23
 
blackout617's Avatar
 
elite*gold: 68
Join Date: Feb 2011
Posts: 401
Received Thanks: 96
Also bei heist das jetzt NostaleX.dat werden die pointers,base adress,offsetse nicht funk. die ich bei MultiClient.exe gefunden habe ?

und noch eine kleine frage wie kan ich mit pointer.au3 memory write benutzen ?
Habe das wersucht geht nicht
Code:
$r = 0x00400000 + 0x3E6578
	$r = _MemoryRead($r + $pOffsets[10],$phHandles)
	$r = _MemoryRead($r + $pOffsets[11],$phHandles)
$Test = _MemoryWrite($r+ $pOffsets[11], $phHandles, "1082599999")
blackout617 is offline  
Old 08/11/2013, 02:26   #24
 
elite*gold: 0
Join Date: Mar 2009
Posts: 7,260
Received Thanks: 33,149
Grundsätzlich schon. Ich empfehle dir dennoch weiterhin meine UDF zu verwenden und nicht die Pointer.au3.
Du solltest dann auch einfach die Offsets als Parameter übergeben. Ich vermute aber mal, dass in deinem $pOffsets Array alle Offsets gespeichert sind, die du hast. Das müsstest du dann natürlich ändern.
Ich habe keine Lust deinen aktuellen Fehler genauer zu beschreiben, da ich der Meinung bin, dass du meine UDF verwenden solltest, deshalb kurz.
Code:
$r = _MemoryRead($r + $pOffsets[11],$phHandles)
Diese Zeile musst du aus dem Code entfernen.
KDeluxe is offline  
Thanks
1 User
Reply


Similar Threads Similar Threads
Pointer+offsets lol
05/28/2013 - League of Legends - 11 Replies
Hallo, Ich arbeite gerade an einem Tool für lol welches einem im Spiel helfen soll, Auto timer etc items vorschlagen Fokus usw Ich habe nur ein Problem es sind so viele Werte und bei manchen Pointen komme ich auf keinen grünen Zweig. Vor allem die respawn zeit Kann mal wer die Base Pointer +offsets posten Tjx im voraus :)
C++ Pointer mit Offsets?
05/22/2013 - C/C++ - 12 Replies
Hi. Ich habe einen Pointer gefunden mit 5 Offsets. Hier mal ein Bild: http://img4.fotos-hochladen.net/uploads/cetcm2ox7 3i5.png Mit Autoit habe ich es nicht geschafft, da die Value sich nie geändert hat. Jetzt will ich es per DLL machen. So sieht meine DLL bis jetzt aus:
Offsets/Pointer
04/14/2010 - World of Warcraft - 4 Replies
Huhu, hat wer die Offsets/Pointer für WoW 3.3.3a ? Wäre n1!
[Help] Pointer,Offsets,Etc.
05/29/2009 - Kal Online - 10 Replies
Heyjo, Aaalso... Ich hab mich vorher noch nie mit Artmoney befasst bzw. nur 1-2 mal für speedhack das wars aber auch schon. Mir geht es jetzt um den Pointer, Offsets kram. Wenn ich Pointer suchen möchte such ich erst mal die normale adresse...sagen wir jetzt von der X Coordinate in meinem Fall jetzt: 085EBDA8 jetzt mach ich nen rechtsklick drauf --> Mehr... --> Suche.. --> Pointer zu dieser Adresse suchen: 0 Ergebnisse Wenn ich Pointer ab Anfang des Speicherblocks suchen klicke, kriegt...
need help getting mob pointer and offsets
12/21/2008 - Silkroad Online - 1 Replies
well as the topic sais i wanna get the memory adresses to read mobdata like playerdata so far i found the adress for mobhp in the memory the adress changes with each mob so i've set a breakpoint in olly and got the offset 0x440 with that offset i got the pointer for that client u can c that here: http://silkroad-planet.de/Magic/mob_hp.jpg the mob was a movia(54hp) and the pointer was 0x9CE4E6C well now i'm able to get the data of that client for each mob i select...



All times are GMT +1. The time now is 09:44.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.