Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > AutoIt
You last visited: Today at 01:42

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

Advertisement



was mach ich falsch ? pointer offset

Discussion on was mach ich falsch ? pointer offset within the AutoIt forum part of the Coders Den category.

Reply
 
Old   #1
 
Mr.Netwolf's Avatar
 
elite*gold: 0
Join Date: Sep 2008
Posts: 80
Received Thanks: 6
was mach ich falsch ? pointer offset

ich weis eigentlich garnix über di everwendung von pointern und offsets

wer mir da bisschen weiterhelfen möchte dem würd ich jetz schon sehr danken.

ich versuch einfach nur die values für target HP raus zu ziehen .
aber irgendwas mach ich falsch .
Code:
#include <NomadMemory.au3>
SetPrivilege("SeDebugPrivilege", 1)
#RequireAdmin
$PID = ProcessExists("aion.bin")

If $PID Then
     MsgBox(0, "kieron is gay", $PID)
   
   $open=_MemoryOpen($PID)
   MsgBox(0, "kieron is gay", $open[0])
   If $open[0] Then
	  $baseADDR = _MemoryModuleGetBaseAddress($PID, "Game.dll")

$TargetBase = 0x7AEA60
$TargetOffset = 0x1D4
$TargetState = 0x298 ;(1 ==> Attacking, 0 ==> Not Attacking, 7 == Dead)
$TargetLevel = 0x36
$TargetName = 0x3A
$TargetHP = 0x10E0
$TargetHPPercent = 0x38
$TargetMaxHP = 0x10DC
;TargetPosition (Just Game.dll+7ADA60+OFFSET)
$TargetPositionX = 0x34
$TargetPositionY = 0x38
$TargetPositionZ = 0x3C


$finalADDR = Hex($baseADDR + $TargetBase + $TargetHP)
$MemTest = _MemoryRead($finalADDR,$PID)
  MsgBox(0,"Value", $MemTest )
_MemoryClose($PID) 

EndIf
EndIf
die offsets sollten alle aktuel sein.
Mr.Netwolf is offline  
Old 04/13/2012, 06:07   #2
 
elite*gold: 0
Join Date: Mar 2009
Posts: 7,260
Received Thanks: 33,149
_MemoryRead() erwartet als Parameter das von _MemoryOpen() zurückgegebenes Array und nicht die Prozess ID. In "deinem" Script wäre es $open.

PHP Code:
#RequireAdmin
#include <NomadMemory.au3>

SetPrivilege("SeDebugPrivilege"1)
$ProcessId ProcessExists("aion.bin")
If 
$ProcessId 0 Then
    $Handle 
_MemoryOpen($ProcessId)
    If 
Not @error Then
        $BaseAddress 
_MemoryModuleGetBaseAddress($ProcessId"Game.dll")
        If 
Not @error Then
            $TargetBase 
0x7AEA60
            $TargetHP     
0x10E0

            $Value 
_MemoryRead($BaseAddress $TargetBase $TargetHP$Handle)
            
MsgBox(0"Value"$Value)
        EndIf
        
_MemoryClose($Handle)
    EndIf
EndIf 
Da ich mich mit Aion nicht auskenne kann ich nicht sagen, ob das so auch stimmt.
KDeluxe is offline  
Thanks
1 User
Old 04/13/2012, 16:06   #3
 
Mr.Netwolf's Avatar
 
elite*gold: 0
Join Date: Sep 2008
Posts: 80
Received Thanks: 6
danke habe die ganze nacht damit verbracht mich mit memory assembler und der interaktion zwischen pointer und offset schlauer zu machen.

das problem lag zum einen darin. das dazwischen nochn Offset gefehlt hat 0x1D4 und ich direkt nach der addresse gesucht hab. das geht natürlich nicht so.

da ja ich ja die addresse in der adresse suchen muss. jetzt sieht das ganze so aus und funktioniert soweit einwandfrei ^__^

nur ein problem gibs noch. beim umwandeln in Hex kommen komische werte wie 0x00000000xxxxxxxx raus. die ich momentan dann einfach erstmal mit stringtrimleft() umwandle falls ich die werte direkt als Hex brauch. Angeblich soll das daran liegen das die werte die begrenzung von autoit überschreiten....

PHP Code:
#include <NomadMemory.au3>
SetPrivilege("SeDebugPrivilege"1)
#RequireAdmin
Local $prozessname = ("aion.bin")
$PID ProcessExists($prozessname)
    If 
$PID 0 Then
       $pointerbase 
0x7AEA60
        $Handle 
_MemoryOpen($PID)
        
$Address _MemoryModuleGetBaseAddress("" $PID """" "Game.Dll" "") + $pointerbase 
          MsgBox
(0,"Pointer"$Address)
     EndIf
    
$read1 _MemoryRead($Address$Handle)
      
MsgBox(0,"Pointervalue"$read1)
    
$read2 _MemoryRead($read1 0x1D4$Handle)
      
MsgBox(0,"Value"$read2)
       
MsgBox(0,"Value"$read2 0x10E0)
       
       ; 
temporary fix
       
da values zu groß sind müssen hex values getrimt werden befor sie direkt verwended können...
       ;
$read3 "0x" StringTrimLeft($read38)
      ;
MsgBox(0,"Value"$read3)
       
       
      
$finalread _MemoryRead($read2 0x10E0$Handle)
      
MsgBox(0,"Value"$read2 0x10E0)
      
MsgBox(0,"Value"$finalread)
    
_MemoryClose($PID
Mr.Netwolf is offline  
Old 04/13/2012, 21:52   #4
 
elite*gold: 0
Join Date: Mar 2009
Posts: 7,260
Received Thanks: 33,149
Die verwendeten " in _MemoryModuleGetBaseAddress() kannst du dir sparen. Bei _MemoryClose() übergibt man außerdem auch das zu schließende Handle. Da du die 64 Bit Version von AutoIt benutzt werden hexadezimale Strings mit 16 Zeichen angezeigt. Allerdings gibt keine Funktion einen Hex-String zurück gibt.

Code:
#AutoIt3Wrapper_usex64=n

#RequireAdmin
#include <NomadMemory.au3>
SetPrivilege("SeDebugPrivilege", 1)

$ProcessId = ProcessExists("aion.bin")
If $ProcessId > 0 Then
	$Handle = _MemoryOpen($ProcessId)
	If Not @error Then
		$Address = _MemoryModuleGetBaseAddress($ProcessId, "Game.Dll")
		If Not @error Then
			$Baseaddress = $Address + 0x7AEA60
			$read1 		 = _MemoryRead($Baseaddress, $Handle)
			$read2 		 = _MemoryRead($read1 + 0x1D4, $Handle)
			$Value 	 	 = _MemoryRead($read2 + 0x10E0, $Handle)

			;Dim $Offset[3] = [0, 0x1D4, 0x10E0]
			;$Value = _MemoryPointerRead($Baseaddress, $Handle, $Offset)

			MsgBox(0, "", 	"Base: " & Hex($Baseaddress) & @CR & "Read1: " & Hex($read1) & @CR & _
							"Read2: " & Hex($read2) & @CR & "Value: " & $Value)
		EndIf
		_MemoryClose($Handle)
	EndIf
EndIf
KDeluxe is offline  
Reply


Similar Threads Similar Threads
Pointer und offset addieren
02/26/2012 - .NET Languages - 5 Replies
HI! Kann mir bitt jemand diesen Pointer: &H290330 mit dieser Offset addieren: &H6F8 (Ich brauche das für VB08) Danke!
[VB] Pointer+Offset Einbinden
12/02/2010 - .NET Languages - 19 Replies
Guten Tag Alle Zusammen ! Folgendes Problem : Wie Baue ich diesen Pointer von CheatEngine in Mein Visual Basic EIn! http://s10.directupload.net/images/101130/t4fp524 r.png Hier Code von VB da IST KEI POINTER DA IST EINFACH DIE NORMALER ADRESSE ABER WIE BAUE Ich den POINTER und offset ein ?
help with pointer+offset
11/28/2010 - Last Chaos - 0 Replies
this is my code in c++ __inline ULONG_PTR ReadPointer(ULONG_PTR* ulBase, INT nOffset) { if (!IsBadReadPtr((VOID*)ulBase, sizeof(ULONG_PTR))) { if (!IsBadReadPtr((VOID*)((*(ULONG_PTR*)ulBase)+nOffs et), sizeof(ULONG_PTR))) { return *(ULONG_PTR*)((*(ULONG_PTR*)ulBase)+nOffset); }
was mach ich falsch ?
06/19/2010 - WarRock - 9 Replies
Hey leute ich hab mir ein no menu hack gemacht aber er geht nicht... ich hab auch die neusten addys drin trozdem geht er nicht ... guckt ihn euch mal an: #include <windows.h> #include <stdio.h> #define ADR_Playerpointer 0x00AA6DF8 #define ADR_Serverpointer 0x009A1E18
Pointer offset suche... help plz
07/09/2009 - AutoIt - 4 Replies
hallo, screeni im Anhang. Finde keinen Pointer und Offset. Leben Energie usw hab ich schnell in Warhammer gefunden. Habe eine Adresse gefunden die 1 ist wenn ich einen Gegner angeklickt habe und die 0 ist wenn ich keinen Gegner angeklickt habe. Die will ich gern verwenden. Die scheint aber jedenmal dynamisch zu sein. vielleicht kann ja wer helfen. Danke cya PicFront - Ihr innovativer Bildhoster



All times are GMT +1. The time now is 01:43.


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.