Heyho ich habe einen Multilevelpointer von dem Spiel Aion zwar in CE gefunden aber ich bekomm ihn einfach nicht in Autoit eingebunden, hab schon wie verrückt gegoogelt aber ich bekomms nicht hin
hoffe ihr könnt mir da weiterhelfen
Versuch mal zu vermeiden:
1. In der Array ( Platz 0 ) eine 0 rein zu schreiben weil das ändert nichts.
2. warum so umständlich : "0x" & Hex($Module + (Dec("Addresse"))
3. Deklarier die Variablen lieber weiter oben.
4. Du musst nur einmal den PID deklarieren.
Das Script von BladeTiger12 ist unbrauchbar. Schon allein aus dem Grund da das Spiel vor dem Script gestartet werden muss. Ist das nicht der Fall beendet es sich einfach.
Es fehlt jede Art von Fehlererkennung, es wird nur überprüft, ob das Spiel zu Beginn des Scripts läuft. Beendet man das Spiel vor dem Script stürzt es ab.
Es wird eine komplett sinnlose Funktion hinzugefügt (_ReadPtr()), welcher wiederum jegliche Art von Fehlererkennung fehlt.
Quote:
Originally Posted by BladeTiger12
1. In der Array ( Platz 0 ) eine 0 rein zu schreiben weil das ändert nichts.
Unabhängig davon, ob man jetzt "deine" Funktion verwendet oder nicht, diese Aussage ist einfach nur falsch. Ein 0er Offset hat wie jeder andere Wert eines Offsets einen Nutzen.
Quote:
Originally Posted by BladeTiger12
3. Deklarier die Variablen lieber weiter oben.
Das ist eigentlich egal, solange sie nicht global verwendet werden.
Dieses Script ist lange nicht perfekt, aber dennoch besser:
Code:
#RequireAdmin
#include <Pointer.au3>
HotKeySet("{F1}", "_Read")
Dim $szProcessName = "Aion.bin", $szModuleName = "Game.dll"
Dim $dwOffsets[6] = [0, 0x5D4, 0, 0x248, 0x208, 0x264]
While Sleep(10)
WEnd
Func _Read()
$dwProcessId = ProcessExists($szProcessName)
If $dwProcessId > 0 Then
$hProcess = _MemoryOpen($ProcessId)
If Not @error Then
$dwModuleAddress = _MemoryModuleGetBaseAddress($dwProcessId, $szModuleName)
If Not @error Then
$dwBaseAddress = $dwModuleAddress + 0xFB22BC
$rValue = _MemoryPointerRead($dwBaseAddress, $hProcess, $dwOffsets, "float")
If Not @error Then MsgBox(64, "Info", "Adresse: " & $rValue[0] & @CRLF & "Wert: " & $rValue[1])
EndIf
EndIf
_MemoryClose($hProcess)
EndIf
EndFunc
Ja ok, ich erwähnte nie das es brauchbar ist.
Und das mit der 0 In der Offset-Array finde ich trotz allem unnötig.
Und das man das Script noch verbessern kann ist schon klar.
Aber dafür das es unbrauchbar ist funktioniert es.
Und die Funktion _MemoryPointerRead habe ich schon immer gehasst :P.
Fehlerbeachtung nicht zu mögen weil es mehr Code benötigt ist schlecht. Ich hab die ganzen UDFs gar nicht und kenne die Funktionsrückgaben nicht, evtl. gibt eine Funktionen kein @error zurück. Getestet habe ich das Script natürlich nicht.
Der Fehler dürfte aber _MemoryClose() sein, dieser Funktionsaufruf muss in den "If Not @error Then" Block.
Code:
#RequireAdmin
#include <Pointer.au3>
HotKeySet("{F1}", "_Read")
Dim $szProcessName = "Aion.bin", $szModuleName = "Game.dll"
Dim $dwOffsets[6] = [0, 0x5D4, 0, 0x248, 0x208, 0x264]
While Sleep(10)
WEnd
Func _Read()
$dwProcessId = ProcessExists($szProcessName)
If $dwProcessId > 0 Then
$hProcess = _MemoryOpen($ProcessId)
If Not @error Then
$dwModuleAddress = _MemoryModuleGetBaseAddress($dwProcessId, $szModuleName)
If Not @error Then
$dwBaseAddress = $dwModuleAddress + 0xFB22BC
$rValue = _MemoryPointerRead($dwBaseAddress, $hProcess, $dwOffsets, "float")
If Not @error Then MsgBox(64, "Info", "Adresse: " & $rValue[0] & @CRLF & "Wert: " & $rValue[1])
EndIf
_MemoryClose($hProcess)
EndIf
EndIf
EndFunc
sorry das ich den thread nochmal auspack aber ich bräuchte eben kurz hilfe ich möchte an die gleiche value einen wert schreiben aber irgendwas funktioniert nicht so ganz bzw. das skript stürtzt nicht ab oder so nur es schreibt nicht.
hab das mit float schonmal angepasst und auch die 0 bei den offsets hinzugefügt aber es funktioniert immernoch nicht, in dem ersten skript von bladetiger12 hat er ja auch keine 0 am anfang deklariert bei den offsets und trotzdem funktioniert sein skript
so sieht der code jetzt aus
Code:
#RequireAdmin
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <Pointer.au3>
$Form1 = GUICreate("Aion FoV", 318, 131, 192, 124)
$Button1 = GUICtrlCreateButton("Write", 208, 32, 75, 25, $WS_GROUP)
$Button2 = GUICtrlCreateButton("Reset", 208, 72, 75, 25, $WS_GROUP)
$Label1 = guictrlcreatelabel("Wert zwischen 60-140",48,30)
$Input1 = GUICtrlCreateInput("60", 48, 48, 121, 21)
GUISetState(@SW_SHOW)
global $PID = ProcessExists("aion.bin")
If $PID > 0 Then
global $open = _MemoryOpen($PID)
Global $base = _MemoryModuleGetBaseAddress($PID, "Game.dll")
Global $base = $base + 0x00FB22BC
Global $offis[5] = [ 0x5d4, 0x0, 0x248, 0x208, 0x264]
Else
msgbox(0,"ERROR","Aion nicht gefunden")
exit
endif
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
_MemoryPointerWrite($base,$open,$offis,GUICtrlRead($Input1),"float")
Case $Button2
_MemoryPointerWrite($base,$open,$offis,"60","float")
EndSwitch
WEnd
kann es daran liegen das ich ein 64-bit system habe, hab mal irgendwo gelesen das man dann die pointer.au3 anpassen müsse?
Wow endlich nach langem ausprobieren und versuchen jeden einzelnen schritt nochmal genau zu analysieren von bladetiger12 skript hab ich jetzt endlich alles verstanden
Pointer in AutoIt verwenden 07/07/2013 - AutoIt - 2 Replies Hallo,
ich habe einige Probleme bei der Verwendung eines Pointers in Autoit.
Den Pointer mittels CheatEngien gefunden und soweit funktioniert alles problemlos. Erst in Autoit gibt es Probleme da der ausgegebene Wert bzw. die ausgegebene Addresse nicht stimmen, Ich hoffe jemand hat eine idee woran es liegen kann:
#include <Pointer.au3>
SetPrivilege("SeDebugPrivilege", 1)
$pid = ProcessExists("StrongholdKingdoms.exe")
Cheat engine pointer finden und in autoit verwenden 03/05/2013 - AutoIt - 12 Replies Würde gern die Punktzahl in einem Spiel verändern, Wert finden und über CE ändern kein Problem, die Adresse ändert sich jedoch bei Neustart des Spiels...
ich weiß, das ich jetzt einen Pointer und dessen Offset benötige, ich habe auch schon gegoogelt und viel ausprobiert, jedoch finde ich den Pointer nicht?
Ich habe probiert: Rechtsklick auf die Adresse, find out what writes to this adress, dann bekomm ich auch werte raus, wenn ich dann auf mehr anzeigen klicke ist eins rot unterlegt: 0042B727...
[AutoIT]Php und Mysql verwenden 07/22/2011 - Coding Tutorials - 2 Replies Hi zusammen,
In diesem Tutorial will ich euch zeigen wie man in AutoIT mit php und dadurch mit mysql verknüpfen kann.
Let's go!
Was benötigt ihr?:
-AutoIT ;)
-(Optional)Einen PHP Editor
-Einen FTP Server (funpic.de)
-Einen MySql Server
-Filezilla(Download)
AutoIt-Pointer verwenden 06/01/2010 - General Coding - 0 Replies *geklärt* Kann gelöscht werden...