|
You last visited: Today at 01:42
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.
04/13/2012, 02:06
|
#1
|
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.
|
|
|
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.
|
|
|
04/13/2012, 16:06
|
#3
|
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($read3, 8)
;MsgBox(0,"Value", $read3)
$finalread = _MemoryRead($read2 + 0x10E0, $Handle)
MsgBox(0,"Value", $read2 + 0x10E0)
MsgBox(0,"Value", $finalread)
_MemoryClose($PID)
|
|
|
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
|
|
|
 |
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.
|
|