Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > AutoIt
You last visited: Today at 03:06

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

Advertisement



[AutoIT] Pointer auslesen

Discussion on [AutoIT] Pointer auslesen within the AutoIt forum part of the Coders Den category.

Reply
 
Old   #1
 
GsC RedRum's Avatar
 
elite*gold: 4
Join Date: Feb 2010
Posts: 1,244
Received Thanks: 454
[AutoIT] Pointer auslesen

Guten Abend/Nacht liebe Community,

heute möchte ich euch gerne das anzeigen eines Wertes via Pointer in Autoit näher bringen.

Vorwort:

Bitte bedenkt das dies hier mein erstes Tutorial ist und ich es mitten in der Nacht schreibe. Ich werde jeden Teil dieses Tutorials auch nocheinmal als Video verfilmen und hochladen und das Script posten damit ihr euch alles nochmal in Ruhe anschauen könnt.
Als Beispiel zum Pointer auslesen habe ich das Rollenspiel NosTale genommen.
Ihr könnt natürlich auch jedes andere nehmen.

Vorraussetzungen:

-AutoIT (DL: )
-Koda Formdesginer (DL: koda.darkhost.ru/dl.php?file=koda_1.7.3.0.zip)
-Grundkentnisse in AutoIT
-Cheat Engine (DL: members.upc.nl/cheatengine/d1/CheatEngine61.exe)
-Die Pointer.au3 die ich unten anhängen werde. (Muss in das Verzeichniss wo euer Script liegt oder in den Include Ordner von AutoIT)
-Wie Adroxxxx immer so schön schreibt: "Gesunder Menschenverstand".


Teil I : Die Gui erstellen.

Gibt es nicht viel zu sagen. Koda starten, 2 Labels und 2 Progressbars erstellen und das Script abspeichern.

Video:



Script:

PHP Code:
#include <GUIConstantsEx.au3>
#include <ProgressConstants.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 GUICreate("HP/MP"25095243147)
$Label1 GUICtrlCreateLabel("HP:"24162217)
$Label2 GUICtrlCreateLabel("MP:"24642317)
$Progress1 GUICtrlCreateProgress(641613416)
$Progress2 GUICtrlCreateProgress(646414216)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
    $nMsg 
GUIGetMsg()
    Switch 
$nMsg
        
Case $GUI_EVENT_CLOSE
            
Exit

    EndSwitch
WEnd 

Teil II : Den Pointer finden und den Wert auslesen.

Öffnet Cheat Engine und öffnet den NosTale Prozess.
Scannt eure momentanen HP. (Value Type: 4Byte)
Ändert eure momentanen HP indem ihr euch angreifen lässt oder was auch immer
und schreibt den veränderten Wert hin und drückt Next Scan.
Dies macht ihr solange bis Links nur noch eine Adresse zusehen ist.
Macht doppelklick auf die Adresse damit sie unten ist.
Macht Rechtsklick auf die Adresse und drückt auf: "Find out what writes to this Adress".
Verändert im Spiel jetzt eure momentanen HP erneut und es müsste etwas im Fenster stehen was ihr vorher mit "Find out what writes to this Adress" gefunden habt.
Macht DoppelKlick auf die Adresse und es sollte sich ein neues Fenster öffnen

4C ist das Offset das schreiben wir uns irgendwo hin oder wie merken es uns.
Die Adresse in der Mitte des Fensters ist der Hexadresse. (0xXXXXXXX)
Die ist nur wichtig wenn meine Methode im Video unten nicht funktioniert. Aber im
Moment ist sie unwichtig.

Dann machen wir einen Rechtsklick auf unsere Adresse von vorhin die unsere momentanen Hp beinhalten und drücken auf "Pointerscann for this adress".
Dann öffnet sich ein Fenster wo ihr eine Haken bei "Pointer must end with specific offsets" hinmacht und schreibt das Offset hin und klickt auf Add. Indem Fall wäre es 4C. Etwas weiter unten über Cancel steht eine 5 bei "max level", dass hier ist die Anzahl der MultiLevelpointer die ihr habt. Bei meiner Methode müsste ihr ausprobieren was das richtige ist. Bei mir wäre es 2 also ein Lvl 2 Pointer.
(Das ist die Anzahl der Offsets die wir brauchen um zu der Statischen Adresse zu gelangen) Wir schreiben hier eine 2 rein und drücken auf OK und erstellen uns noch eine Pointerliste. (Zu den Max Level: Die Anzahl der Offsets und die Offsets an sich können von Spiel zu Spiel anders sein. Ihr müsst einfach durchprobieren welchen MultiLevelPointer ihr habt.)
Wenn der PointerScann fertig ist sollten in der Regel 1-2 Pointer gefunden worden sein. Jetzt machen wir einen Doppelklick auf die Adresse und sie sollte in Cheat Engine unter der Adresse unserer momentanen HP erscheinen.
Wenn wir jetzt einen Doppelklick auf das Pointerscann ergebnis machen sollte sich ein Fenster. Dort stehen die 2 Offsets drin und die Statische Adresse. Kopiert die Adresse des Pointer und speichert sie irgendwo ab.


Video:


(Ich habe indem Video zuerst einen Level 5 Pointer gesucht da dort aber sehr viele Adressen kamen habe ich danach nach einem Level 2 Pointer gesucht.)


Teil III : Den Wert des Pointers auslesen und anzeigen lassen.

Hier am besten einfach das Video anschauen das es sich schlecht erklären lässt.

Video:


Script:
PHP Code:
das hier ist das script das uns den wert der HP anzeigt.
#RequireAdmin ; wird bei windows vista/7 benötigt.
#include <Pointer.au3> ; enthält _memorygetbaseadress
$PID ProcessExists("") ; hier den prozess der geöffnet werden soll hinschreiben.
$MemOpen _MemoryOpen($PID) ;öffnet den prozess

Global $Offset[3]; dazu gleich mehr.
$Offset[0] = immer bei 0 lassen´
$Offset
[1] = Dec("") ; hier offset 2 hinschreiben.
$Offset[2] = Dec(""); hier offset 1 hinschreiben.
$StaticOffset Dec("") ; hier die statischadresse hineinschreiben.

$BaseAddr _MemoryGetBaseAddress($MemOpen1
$Addr "0x" Hex($baseADDR $StaticOffset

$Value _MemoryPointerRead($Addr$MemOpen$Offset) ; liest den wert aus
;jetzt wollen wir uns doch den wert noch anzeigen lassen O:
;
das machen wir am besten mit einem tooltip.
while 
1
Tooltip 
($Value[1]) ;das [1zeigt uns den wert also dezimalzahl an.
WEnd
mit f5 das script starten.
am besten in eine while schleife packen damit man es besser sehen kann


Teil IV : Das zusammenfügen der Gui und der Pointer.


Gibt es wieder nicht viel zu schreiben. Einfach das Video wieder anschauen.


Video:



Script:

PHP Code:
als erster fügen wir die gui ein die wir erstellt haben.
dann fügen wir das Pointerscript ein
#RequireAdmin ; wird bei windows vista/7 benötigt.
#include <Pointer.au3> ; enthält _memorygetbaseadress
#include <GUIConstantsEx.au3>
#include <ProgressConstants.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 GUICreate("HP/MP"25095243147)
$Label1 GUICtrlCreateLabel("HP:"24162217)
$Label2 GUICtrlCreateLabel("MP:"24642317)
$Progress1 GUICtrlCreateProgress(641613416) ; und das hier ist unsere Progressbar die uns den wert anzeigen soll.
das machen wir so:
$Progress2 GUICtrlCreateProgress(646414216)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
while 1
$PID 
ProcessExists("NostaleX.dat") ; hier den prozess der geöffnet werden soll hinschreiben.
$MemOpen _MemoryOpen($PID) ;öffnet den prozess
Global $Offset[3]; dazu gleich mehr.
$Offset[0] = immer bei 0 lassen´
$Offset
[1] = Dec("AC") ; hier offset 2 hinschreiben.
$Offset[2] = Dec("4C"); hier offset 1 hinschreiben.
$StaticOffset Dec("003D240C") ; hier die statischadresse hineinschreiben.
$BaseAddr _MemoryGetBaseAddress($MemOpen1
$Addr "0x" Hex($baseADDR $StaticOffset
$Value _MemoryPointerRead($Addr$MemOpen$Offset) ; liest den wert aus
;und das hier ist unser momentaner wert
$PID1 
WinGetProcess ("NosTale")
$MemOpen1 _MemoryOpen($PID1)
Global 
$Offset1[3
$Offset1[0] = 
$Offset1
[1] = Dec("AC"
$Offset1[2] = Dec("48")
$StaticOffset1 Dec("003D240C"
$BaseAddr1 _MemoryGetBaseAddress($MemOpen11)
$Addr1 "0x" Hex($baseADDR1 $StaticOffset1
$Value1 _MemoryPointerRead($Addr1$MemOpen1$Offset1) ; das ist unser maximalwert
;jetzt noch an die richtige stell packen.
GUICtrlSetData ($Progress1$Value[1]*100/$Value1[1])
am besten wieder in eine while schleife packen damit sich die progressbar auch immer aktualisiert.
WEnd

While 1
    $nMsg 
GUIGetMsg()
    Switch 
$nMsg
        
Case $GUI_EVENT_CLOSE
            
Exit

    EndSwitch
WEnd 

Ende im Gelände:


Ich hoffe ich konnte ich mit diesem Tutorial weiterhelfen.
Wie oben schon beschrieben ist dies mein ertes Tutorial in diesem Bereich.
Kritik ist gerne erwünscht. Ansonsten gilt für dieses Tutorial: Learning by Doing.
Sollte bei Teil 3 der Wert 0 ausgegeben werden dann liegt das an _MemorygetbaseAdress.
Dann sollte man das Script und den Prozess schließen. Dann zuerst den Prozess starten, einloggen bist die HP erscheinen und dann erst das Script starten.
Attached Files
File Type: rar Pointer.rar (3.9 KB, 306 views)
GsC RedRum is offline  
Thanks
11 Users
Old 01/02/2012, 23:29   #2
 
elite*gold: 224
Join Date: Dec 2010
Posts: 2,766
Received Thanks: 931
THX.
Ich glaube ich habs jetzt endlich verstanden
Havelock_Vetinari is offline  
Old 01/02/2012, 23:49   #3
 
Logtetsch's Avatar
 
elite*gold: 192
Join Date: May 2009
Posts: 2,227
Received Thanks: 3,262
Ich denke mal, dass das einigen Anfaengern helfen wird. Bekommst auch ein Thx von mir
Logtetsch is offline  
Old 08/05/2012, 00:55   #4
 
LikEaScripT's Avatar
 
elite*gold: 0
Join Date: Mar 2012
Posts: 41
Received Thanks: 1
Geht bei mir nicht ? o.O
LikEaScripT is offline  
Old 07/14/2013, 15:04   #5
 
VenomXaner's Avatar
 
elite*gold: 5
Join Date: Jul 2013
Posts: 8
Received Thanks: 0
Leider Funktioniert keins der Videos mehr,
VenomXaner is offline  
Old 07/14/2013, 16:21   #6
 
SpieleHacksInfo's Avatar
 
elite*gold: 0
Join Date: Dec 2012
Posts: 448
Received Thanks: 278
Bitte nicht pushen
SpieleHacksInfo is offline  
Reply


Similar Threads Similar Threads
[Autoit]Pointer auslesen/schreiben
02/22/2011 - AutoIt - 8 Replies
hallo ich versuch derzeit es hinzubekommen mit au3 pointer auszulesen. dazu benutzt ich die Improved _Mem() UDF's - AutoIt Forums und dementsprechend _MemoryPointerWrite das beispiel an dem ich es versuche is der 8te abschnitt des offieziellen ce tuts, ich hab den static pointer und entsprechend die offsets das pw dafür ist
WoW Pointer mit Autoit auslesen
12/08/2010 - AutoIt - 9 Replies
Ich habe den 4byte wert von der z position von meinem eigenen Chara herausgefunden. Ich weiß das 4 Byte falsch sind aber das ist egal. Mir reicht auch ein 4 byte wert. Danach habe ich rechtsklick auf den Wert gemacht und Pointer Scan for this adress. Alles So gelassen und OK geklickt. Ich habe eine Liste mit offsets und allem möglichen gefunden. Wenn ich diesen Pointer mit offsets aber in Autoit einbinde und mit memorypointerread auslese bekomme ich 0x00000017 als rückgabewert. ...
WoW Pointer mit Autoit auslesen
12/05/2010 - World of Warcraft - 0 Replies
Ich habe mit Cheat Engine 5.6 die werte von der Z position des eigenen Spielers herausgefunden. Anschließend habe ich rechtsklick auf den Wert gemacht und Pointer Scan for this Adress gemacht. Ich bekam eine Liste mit den Offsets und den Werten. Meine Werte sind alle 4 byte weil ich nicht weiß welche ich sonst nehmen soll. Das ist aber egal. Mit Cheat Engine klappt alles auch wenn es 4 byte sind. Nun meine Frage. Ich binde die Offsets mit der Nomadmemory in Autoit ein. Wenn ich den Wert...
(Autoit) Wie Pointer auslesen ?
10/13/2009 - General Coding - 6 Replies
Hiho... Ich progge gerade an einem bot und habe nur ein problem... Ich hab mit CE nen pointer für die HP gefunden... In diesem fall: game.dat+0037CC28 offset: 13C Hab aber bis jetzt keine funktionierende möglichkeit gefunden das in Autoit auszulesen... Kann mir pls einer verraten wie das geht ?



All times are GMT +1. The time now is 03:08.


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.