Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > AutoIt
You last visited: Today at 20:15

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

Advertisement



[Memory read] Baseadresse mit Script rausfinden?

Discussion on [Memory read] Baseadresse mit Script rausfinden? within the AutoIt forum part of the Coders Den category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Oct 2010
Posts: 167
Received Thanks: 24
[Memory read] Baseadresse mit Script rausfinden?

Hallo erstmal,

zuerst einmal die Situation. Also ich habe in dem Spiel "Aion" einen Pointer für die HP Anzahl herausgefunden. Der lautet : "Game.dll"+0009C01C und der Offsetwert des Pointers lautet : 4.

Ich hab den Pointer jetzt in mein Script eingefügt, indem ich die game.dll Adresse in Cheat engine gesucht und mit dem Wert "0009C01C" addiert habe und den Offset Wert dazu gegeben habe. Ich habe mit der Nomadmemory.au3 gearbeitet. Das hat auch alles soweit wunderbar geklappt.

Das Problem:

Das Problem ist, dass ich nicht jedesmal wenn ich das Spiel neustarte, die "game.dll" mit Cheat engine neu rausfinden möchte. Ich würde es gerne so machen, dass mein Autoit Script dies automatisch bei jedem Start des Spiels für mich erledigt, sodass ich nicht immer die game.dll bei Cheat engine rausfinden und in meinem Script ändern muss.

Weiß einer zufällig wie das funltionieren könnte?
Vielen Dank schonmal im vorraus


Das Script sieht übrigens so aus:
Code:
$Adresse = 0x2CA00000 + 0x0009C01C
Dim $Offset[2] = [0, 0x4]

    $Open = _MemoryOpen(ProcessExists("aion.bin"))
    If Not @error Then
        $Read = _MemoryRead($Adresse, $Open)
        $Value = _MemoryRead($Read + $Offset[1], $Open)
Und die Adresse "0x2CA00000" ist die "Game.dll", die ich bei jedem Neustart des Spiels im Script ändern muss.

Edit:
Problem gelöst, Autoit Script musste zu x86 compiled werden, damit die "Game.dll" gefunden werden konnte.
Masterscripter is offline  
Old 02/13/2012, 18:51   #2

 
°Remus°'s Avatar
 
elite*gold: 2
Join Date: Mar 2008
Posts: 8,541
Received Thanks: 4,539
gibts in der nomadmemory.au3 nicht auch ne
_MemoryGetBaseAddress()
methode?
hab ich zumindestens schonmal irgendwo gesehen
°Remus° is offline  
Old 02/13/2012, 19:11   #3
 
elite*gold: 50
Join Date: Mar 2010
Posts: 1,373
Received Thanks: 521
Ja gibt es
jacky919 is offline  
Old 02/14/2012, 16:42   #4
 
elite*gold: 0
Join Date: Oct 2010
Posts: 167
Received Thanks: 24
@Remus Ja damit hab ich's jetzt mal versucht.

Also damit:
Code:
$baseADDR = _MemoryGetBaseAddress($pid, "Game.dll")
Kommt allerdings immer nur 0 raus ... :/
Masterscripter is offline  
Old 02/16/2012, 13:47   #5

 
FichteFoll's Avatar
 
elite*gold: 237
Join Date: Sep 2008
Posts: 4,476
Received Thanks: 4,587
Related:
#post12835381
#post12874739

Speziell _ProcessUDGetModuleBaseAddress() sollte dir das liefern, was du suchst.
FichteFoll is offline  
Old 02/18/2012, 21:11   #6
 
elite*gold: 0
Join Date: Feb 2009
Posts: 542
Received Thanks: 112
PHP Code:
#RequireAdmin 
#include <Pointer.au3> 

HotKeySet("{F1}""_Read"

$PID ProcessExists("aion.exe"
If 
$PID 0 Then 
    $Handle 
_MemoryOpen($PID
    
$Address _MemoryModuleGetBaseAddress(ProcessExists("aion.exe"), "Game.dll"
    
$Address "0x" Hex($Address Dec("9C01C")) 
    
Dim $Offset[2] = [0,0x4
Else 
    Exit 
EndIf 

While 
True 
    Sleep
(10
WEnd 

Func _Read
() 
    
$Read _MemoryPointerRead($Address$Handle$Offset"float"
    
MsgBox(0""$Read[1]) 
EndFunc 
vlt so ?? oda etwas umändern ...
maxi39 is offline  
Old 03/13/2012, 17:35   #7
 
elite*gold: 0
Join Date: Oct 2010
Posts: 167
Received Thanks: 24
@maxi39 also bei deinem Script:

Code:
#RequireAdmin 
#include <Pointer.au3> 

HotKeySet("{F1}", "_Read") 

$PID = ProcessExists("aion.exe") 
If $PID > 0 Then 
    $Handle = _MemoryOpen($PID) 
    $Address = _MemoryModuleGetBaseAddress(ProcessExists("aion.exe"), "Game.dll") 
    $Address = "0x" & Hex($Address + Dec("9C01C")) 
    Dim $Offset[2] = [0,0x4] 
Else 
    Exit 
EndIf 

While True 
    Sleep(10) 
WEnd 

Func _Read() 
    $Read = _MemoryPointerRead($Address, $Handle, $Offset, "float") 
    MsgBox(0, "", $Read[1]) 
EndFunc
kommt leider immer nur 0 raus. Weiß einer wieso?:/
Masterscripter is offline  
Old 03/15/2012, 20:09   #8
 
elite*gold: 0
Join Date: Oct 2010
Posts: 167
Received Thanks: 24
Kann denn keiner helfen?:/
Masterscripter is offline  
Old 03/15/2012, 20:11   #9
 
elite*gold: 50
Join Date: Mar 2010
Posts: 1,373
Received Thanks: 521
Debug Privilegien?
jacky919 is offline  
Old 03/15/2012, 21:59   #10


 
K1ramoX's Avatar
 
elite*gold: 26
Join Date: Jan 2012
Posts: 3,474
Received Thanks: 18,844
Les dir mal durch. Hatte genau das gleiche Problem wie du ;o
K1ramoX is offline  
Old 03/17/2012, 15:33   #11
 
elite*gold: 0
Join Date: Oct 2010
Posts: 167
Received Thanks: 24
@Applecode Danke, aber hat anscheinend auch nicht funktioniert. Jetzt kommt zwar nicht mehr 0 raus, dafür hab ich jetzt ne andere Fehlermeldung, die ich noch nie hatte^^. Sieht etwa so aus:



Noch einer ne Idee? Ich weiß echt nicht mehr weiter :/

Edit:

Ich suche ja nur eine Alternative, um die Baseadresse von "game.dll" rauszubekommen. Im Moment sieht das ganze halt so aus:

Code:
$Adresse = 0x2CA00000 + 0x0009C01C
Dim $Offset[2] = [0, 0x4]

    $Open = _MemoryOpen(ProcessExists("aion.bin"))
    If Not @error Then
        $Read = _MemoryRead($Adresse, $Open)
        $Value = _MemoryRead($Read + $Offset[1], $Open)
Ich hab also einfach nur "game.dll" bei Cheat engine eingegeben, sodass ich den Wert raushatte und dann hab ich ihn einfach mit der Adresse addiert und da kam auch immer das richtige bei heraus. Nur das Problem ist ja, dass sich die "game.dll" bei jedem Spielneustart ändert.
Masterscripter is offline  
Old 03/17/2012, 15:40   #12
 
elite*gold: 50
Join Date: Mar 2010
Posts: 1,373
Received Thanks: 521
Scheinbar wird die Funktion rekursiv aufgerufen, sie ruft sich also selber immer wieder auf. AutoIt limitiert aber die Anzahl der Inkarnationen. Die Grenze wurde von deinem Programm überschritten.
Viellleicht könntest du die Funktion hier mal posten.
jacky919 is offline  
Old 03/17/2012, 15:41   #13
 
lolkop's Avatar
 
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
Quote:
Originally Posted by Masterscripter View Post
@Applecode Danke, aber hat anscheinend auch nicht funktioniert. Jetzt kommt zwar nicht mehr 0 raus, dafür hab ich jetzt ne andere Fehlermeldung, die ich noch nie hatte^^. Sieht etwa so aus:



Noch einer ne Idee? Ich weiß echt nicht mehr weiter :/

Edit:

Ich suche ja nur eine Alternative, um die Baseadresse von "game.dll" rauszubekommen. Im Moment sieht das ganze halt so aus:

Code:
$Adresse = 0x2CA00000 + 0x0009C01C
Dim $Offset[2] = [0, 0x4]

    $Open = _MemoryOpen(ProcessExists("aion.bin"))
    If Not @error Then
        $Read = _MemoryRead($Adresse, $Open)
        $Value = _MemoryRead($Read + $Offset[1], $Open)
Ich hab also einfach nur "game.dll" bei Cheat engine eingegeben, sodass ich den Wert raushatte und dann hab ich ihn einfach mit der Adresse addiert und da kam auch immer das richtige bei heraus. Nur das Problem ist ja, dass sich die "game.dll" bei jedem Spielneustart ändert.
lass das ganze doch erstmal in scite direkt über den interpreter laufen... dann wird wir auch in der console direkt der fehler angezeigt...

Edit:
davon abgesehen steht doch da das der maximal vorgegebene rekursionslevel überschritten wurde...
lolkop is offline  
Old 03/17/2012, 15:43   #14
 
elite*gold: 50
Join Date: Mar 2010
Posts: 1,373
Received Thanks: 521
Quote:
Originally Posted by lolkop View Post
lass das ganze doch erstmal in scite direkt über den interpreter laufen... dann wird wir auch in der console direkt der fehler angezeigt...

Edit:
davon abgesehen steht doch da das der maximal vorgegebene rekursionslevel überschritten wurde...
Dazu sei gesagt, dass er SciTE mit Administator-Rechten starten muss.
jacky919 is offline  
Old 03/17/2012, 15:53   #15
 
elite*gold: 0
Join Date: Oct 2010
Posts: 167
Received Thanks: 24
Ja also der Fehler an sich ist mir schon klar, aber ich weiß nicht, wie ich ihne beheben kann, geschweige denn, was ich falsch mache.

Mein Script ist:
Code:
#RequireAdmin
#include <NoMadMemory.au3>

HotKeySet("{F1}", "_Read")

$PID = ProcessExists("aion.bin")
If $PID > 0 Then
    $Handle = _MemoryOpen($PID)
    $Address = _MemoryModuleGetBaseAddress(ProcessExists("aion.bin"), "Game.dll")
    $Address = "0x" & Hex($Address + Dec("9C01C"))
    Dim $Offset[2] = [0,0x4]
Else
    Exit
EndIf

While True
    Sleep(10)
WEnd

Func _Read()
    $Read = _PointerRead($Address, $Handle, $Offset, "float")
    MsgBox(0, "", $Read[1])
EndFunc
Und das einzige, was ich erreichen möchte, ist die HP Anzahl herausbekommen. In meinem 1. Post könnt ihr das Script, mit dem es klappt sehen. Es klappt nur nach Neustart des Spiels halt nicht mehr.
Masterscripter is offline  
Reply


Similar Threads Similar Threads
[VB.NET] Read memory help
03/25/2011 - .NET Languages - 7 Replies
Ok so im looking for some one that can help me to read a procces memory from a game and show it on a label in vb.net so if the HP changes then the label will change. Please help me here cant find anything on google, also how to send keys to the game
Suche Script für Memory Read
03/04/2011 - AutoIt - 1 Replies
Kann mir einer ein Script geben ohne GUI, mit NoMadMemory include wo ich die Read Memory Funktion nutzen kann? Würde mich auch über ein VB Script freuen! Möchte für 4Story Global ein Log Buch machen!
VB.NET Read Memory
11/08/2010 - .NET Languages - 1 Replies
jo Hi, Ich suche eine ReadMemory Function. Hat einer eine da? Danke
[VB]Write Memory bzw Read Memory
06/26/2010 - .NET Languages - 8 Replies
Hi Ich hab das TuT von *Guidman* benütz um einen hack zu machen. So aber nun hab ihc ein paar fragen könnte man memory teil kürzer machen und am besten wie kann man das selber machen weil ich will nihct immer C&P machen. Und zu Read Memory kann man das auch machen das ein Label immer die Bestimmte Ahnzahl angiebt von dem Pointer?.(Wenn das Read Memory ist ?) Bitte helf mir Danke
Memory read and add value
06/20/2010 - AutoIt - 4 Replies
Im trying to read values with HexCode but i have no ide to do this. i want the porgress bar and the labels to show the curent value of the Adresses #include <GUIConstantsEx.au3> #include <ProgressConstants.au3> #include <StaticConstants.au3> #include <WindowsConstants.au3> #include <NomadMemory.au3>



All times are GMT +1. The time now is 20:16.


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.