Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > AutoIt
You last visited: Today at 08:44

  • 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   #1
 
blackout617's Avatar
 
elite*gold: 68
Join Date: Feb 2011
Posts: 401
Received Thanks: 96
Question Pointer und Offsets?

Hallo ich habe ein project für ein spiel aber ich kenne micht nicht mit offsets aus.
Wie kan ich das jetzt benutzen ?
Meiner example code:
Code:
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <NomadMemory.au3>
#include <ProgressConstants.au3>

$ActualHP = 0x007E6938 
$ofset1=0xAC 
$ofset2=0x48

Global $Open = _MemoryOpen(ProcessExists("NostaleX.dat"))

$valueAd=_MemoryRead($ActualHP+$ofset1, $Open)
$curValue=_MemoryRead($valueAd+$ofset2, $Open)

Msgbox(64,"Actual HP",$curValue)
aber bei der msgbox komt "0" und nicht actual hp warum ?
die adressen & offsets die ich habe
MAX HP = 007E6938 Offset1:AC Offset2:48
CURRENT HP = 007E6938 Offset1:AC Offset2:4C
blackout617 is offline  
Old 08/04/2013, 16:06   #2
 
Croco™'s Avatar
 
elite*gold: 235
Join Date: Jan 2012
Posts: 920
Received Thanks: 377
Für Pointer gibt es die Funktion _MemoryPointerRead.
Dort kannst du die Offsets als Array übergeben.
Das kannst du dir auch einmal durchlesen:
Croco™ is offline  
Old 08/04/2013, 22:11   #3
 
elite*gold: 0
Join Date: Mar 2009
Posts: 7,260
Received Thanks: 33,149
Du addierst auf die Adresse das Offset. Das ist falsch. Du musst das Offset auf den ausgelesenen Wert addieren. Oder einfach Funktionen verwenden die Pointer "unterstützen".


KDeluxe is offline  
Thanks
1 User
Old 08/06/2013, 22:40   #4
 
blackout617's Avatar
 
elite*gold: 68
Join Date: Feb 2011
Posts: 401
Received Thanks: 96
Croco das geht glaub auch nicht komt wieder "0",
KDeluxe funkt es nur bei 64bit weil ich habe 32bit windows XP , und ich kriege "Can't read memory! @error:15"
blackout617 is offline  
Old 08/10/2013, 17:09   #5
 
blackout617's Avatar
 
elite*gold: 68
Join Date: Feb 2011
Posts: 401
Received Thanks: 96
Hier jetzt habe ich das wersucht aber wieder kein erfolg was mache ich falsch ?
Code:
#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
Hier die offset und base oder sowas ein photo was mache ich falsch?

blackout617 is offline  
Old 08/10/2013, 17:59   #6
 
elite*gold: 0
Join Date: Mar 2009
Posts: 7,260
Received Thanks: 33,149
Quote:
Originally Posted by blackout617 View Post
Croco das geht glaub auch nicht komt wieder "0",
KDeluxe funkt es nur bei 64bit weil ich habe 32bit windows XP , und ich kriege "Can't read memory! @error:15"
Nafensterlich funktioniert meine UDF auch mit 32 Bit Betriebssystemen. @error 15 sagt aus, dass die finale Adresse nicht gelesen werden konnte. Ursache dafür ist so gut wie immer die Verwendung von falschen Offsets. Evtl. sind sie einfach in der falschen Reihenfolge.

Quote:
Originally Posted by blackout617 View Post
Hier jetzt habe ich das wersucht aber wieder kein erfolg was mache ich falsch ?
Code:
#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
Hier die offset und base oder sowas ein photo was mache ich falsch?

Und siehe da... Ich hatte recht, du verwendest "falsche" Offsets. Genau genommen ist die Reihenfolge falsch.

So sollte es funktionieren:
KDeluxe is offline  
Old 08/10/2013, 18:56   #7
 
blackout617's Avatar
 
elite*gold: 68
Join Date: Feb 2011
Posts: 401
Received Thanks: 96
Danke jetzt krieg ich aber: Can't get ModuleBaseAdress! @error:21,@extend:0
blackout617 is offline  
Old 08/10/2013, 20:06   #8
 
elite*gold: 0
Join Date: Mar 2009
Posts: 7,260
Received Thanks: 33,149
Das kann mehrere Ursachen haben, ich möchte aber erst nicht darauf eingehen. "; not recommended" steht nicht ohne Grund in meinem Beispiel. Fast immer ist es eine unnötige Ressourcenverschwendung die zusätzliches Fehlerpotenzial entwickelt.

Probiere folgendes aus:
KDeluxe is offline  
Old 08/10/2013, 20:09   #9
 
blackout617's Avatar
 
elite*gold: 68
Join Date: Feb 2011
Posts: 401
Received Thanks: 96
Quote:
Originally Posted by KDeluxe View Post
Das kann mehrere Ursachen haben, ich möchte aber erst nicht darauf eingehen. "; not recommended" steht nicht ohne Grund in meinem Beispiel. Fast immer ist es eine unnötige Ressourcenverschwendung die zusätzliches Fehlerpotenzial entwickelt.

Probiere folgendes aus:
@error 15

hatte es woher auch schon probiert :
$lpBaseAddress = 0x0356DC90
und
$lpBaseAddress = "0356DC90"
blackout617 is offline  
Old 08/10/2013, 20:21   #10
 
elite*gold: 0
Join Date: Mar 2009
Posts: 7,260
Received Thanks: 33,149
Die Angabe als String kann nicht funktionieren. Den String müsstest du dann schon der Dec() Funktion übergeben. Da du den Wert aber direkt in Hexadezimalschreibweise angeben kannst rate ich dir davon ab.
Überprüfe mal, ob diese Adresse immer die richtige BaseAddress ist sich nie ändert. Interessant wäre in diesem Zusammenhang auch, ob folgendes funktioniert:
Wenn dieses Script funktioniert muss ich mir meine UDF noch mal anschauen, vielleicht habe ich tatsächlich eine fehlerhafte hochgeladen, wobei ich aktuell nicht davon ausgehe.
KDeluxe is offline  
Old 08/10/2013, 20:48   #11
 
blackout617's Avatar
 
elite*gold: 68
Join Date: Feb 2011
Posts: 401
Received Thanks: 96
Ich werde noch verrück es funk nicht ( was für eine adressse komt bei msgbox (msgbox ist ja das gleiche ich habe consolewrite genutzt für copy/paste ergebnis)
ConsoleWrite("Address: " & $lpMemoryData[0] & @CRLF & "Value: " & $lpMemoryData[1])

Code:
Address: 0x000000000384C7A8
Value: 0
blackout617 is offline  
Old 08/10/2013, 21:06   #12
 
SpieleHacksInfo's Avatar
 
elite*gold: 0
Join Date: Dec 2012
Posts: 448
Received Thanks: 278
Ist die Adresse 384C7A8 denn richtig?
SpieleHacksInfo is offline  
Old 08/10/2013, 21:16   #13
 
blackout617's Avatar
 
elite*gold: 68
Join Date: Feb 2011
Posts: 401
Received Thanks: 96
Nein,Das ist ja das ergebnis :/
blackout617 is offline  
Old 08/10/2013, 21:41   #14

 
elite*gold: 64
Join Date: May 2011
Posts: 1,229
Received Thanks: 854
Lol^^, wieso ist dein ergebnis ein Hex?

Hast du es umgewandelt?
BladeTiger12 is offline  
Old 08/10/2013, 21:48   #15
 
blackout617's Avatar
 
elite*gold: 68
Join Date: Feb 2011
Posts: 401
Received Thanks: 96
Glaub nein also ich habe das hier benutzt und das ergebnis habe ich ja geschrieben
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[3] = [0, 0xAC, 0x48]
        $lpMemoryData = _MemoryPointerRead($lpBaseAddress, $phHandles, $pOffsets, 'DWORD')
        If @error Then
            MsgBox(48, "Error", "Can't read memory! @error: " & @error & ", @extended: " & @extended)
		 Else
			ConsoleWrite("Address: " & $lpMemoryData[0] & @CRLF & "Value: " & $lpMemoryData[1])
            MsgBox(64, "Info", "Address: " & $lpMemoryData[0] & @CRLF & "Value: " & $lpMemoryData[1])
        EndIf
        _MemoryClose($phHandles)
    EndIf
EndIf
Glaub nein also ich habe das hier benutzt und das ergebnis habe ich ja geschrieben
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[3] = [0, 0xAC, 0x48]
        $lpMemoryData = _MemoryPointerRead($lpBaseAddress, $phHandles, $pOffsets, 'DWORD')
        If @error Then
            MsgBox(48, "Error", "Can't read memory! @error: " & @error & ", @extended: " & @extended)
		 Else
			ConsoleWrite("Address: " & $lpMemoryData[0] & @CRLF & "Value: " & $lpMemoryData[1])
            MsgBox(64, "Info", "Address: " & $lpMemoryData[0] & @CRLF & "Value: " & $lpMemoryData[1])
        EndIf
        _MemoryClose($phHandles)
    EndIf
EndIf
blackout617 is offline  
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 08:44.


Powered by vBulletin®
Copyright ©2000 - 2025, 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 ©2025 elitepvpers All Rights Reserved.