|
You last visited: Today at 23:02
Advertisement
Tool Problem
Discussion on Tool Problem within the AutoIt forum part of the Coders Den category.
10/10/2011, 15:36
|
#16
|
elite*gold: 0
Join Date: Oct 2010
Posts: 51
Received Thanks: 12
|
Das erste ist unsinnig, da $PointerRead ja kein GuiCtrl ist, somit kommt da immer 0 raus.
Das GUICtrlRead musst du nehmen um zb den Innhalt eines Edit Feldes zu bekommen.
Beim 2. sieht man dann ja wieder das iwas icht stimmt, was aber nicht sein kann, denn bei deinem Memorywrite teleportiert er dich ja immer - nur an den falschen Ort.
Langsam glaube ich doch, dass iwas mit den Pointern nicht stimmt.
Hast du einen Pointer mit festem Wert ohne MemoryModuleGetbaseAdress()?
Ach ja - den HotKeySet Rückgabewert musst du nun wirklick NICHT speichern - und das sind sicher nur Codeausschnitte, oder? Denn das Offset und die Basisaddresse sind ja nicht gesetzt.
€dit: stimmt, ist nen Array - daher ^ Schwachsinn
|
|
|
10/10/2011, 15:37
|
#17
|
elite*gold: 192
Join Date: May 2009
Posts: 2,227
Received Thanks: 3,262
|
Quote:
Originally Posted by omer36
$Open = _MemoryOpen ($PID)
$PointerRead = _MemoryPointerRead ($ModuleX, $Open, $OffsetX, "float")
MsgBox (0,"",$PointerRead[1])
|
Danke dir  hab das Array nach dem " $PointerRead " vergessen.
PHP Code:
$hotkey = HotKeySet ("4","_read")
Func _read ()
$Open = _MemoryOpen ($PID)
$PointerRead = _MemoryPointerRead ($ModuleX, $Open, $OffsetX, "float")
MsgBox (0,"",$PointerRead[1])
$end = _MemoryClose ($Open)
EndFunc
ERGEBNIS = 0
|
|
|
10/10/2011, 15:39
|
#18
|
elite*gold: 0
Join Date: Oct 2010
Posts: 51
Received Thanks: 12
|
bedeutet Fehler
guck dir mal @error an, was sagt der?
Aus NomadMemory:
; @Error - 0 = No error.
; 1 = $av_Offset is not an array.
; 2 = Invalid $ah_Handle.
; 3 = $sv_Type is not a string.
; 4 = $sv_Type is an unknown data type.
; 5 = Failed to allocate the memory needed for the DllStructure.
; 6 = Error allocating memory for $sv_Type.
; 7 = Failed to read from the specified process.
|
|
|
10/10/2011, 15:44
|
#19
|
elite*gold: 192
Join Date: May 2009
Posts: 2,227
Received Thanks: 3,262
|
hmmmm, aber wo kann der Fehler sein :/
Ich poste gleich mein ganzes Script und die Bilder der Pointer
PHP Code:
#RequireAdmin #include <NomadMemory.au3>
If ProcessExists ("TClient.exe") = False Then MsgBox (48,"Error","Tclient.exe konnte nicht gefunden werden!") Exit EndIf
If FileExists ("AGB.txt") = false Then IniWrite ("AGB.txt","Allgemeine Geschäfts Bedingung","AGB","Ich überneheme keinerlei Haftung!") MsgBox (48,"AGB","Bitte lese dir die AGB in dem Textdokument, was sich gerade erstellt hat, durch!") ShellExecute ("AGB.txt") EndIf
#include <ButtonConstants.au3> #include <EditConstants.au3> #include <GUIConstantsEx.au3> #include <StaticConstants.au3> #include <WindowsConstants.au3> #Region ### START Koda GUI section ### Form= $Porter = GUICreate("Porter", 337, 140, 192, 124) $Porter = GUICtrlCreateGroup("Porter", 24, 16, 289, 73) $X = GUICtrlCreateLabel("X", 40, 40, 11, 17) $Y = GUICtrlCreateLabel("Y", 40, 64, 11, 17) $Input1 = GUICtrlCreateInput("", 64, 32, 121, 21) $Input2 = GUICtrlCreateInput("", 64, 56, 121, 21) $Port = GUICtrlCreateButton("Port", 208, 32, 81, 41, $WS_GROUP) GUICtrlCreateGroup("", -99, -99, 1, 1) $AFK = GUICtrlCreateButton("AFK", 24, 104, 67, 25, $WS_GROUP) $Farm = GUICtrlCreateButton("Farm", 104, 104, 75, 25, $WS_GROUP) $Exit = GUICtrlCreateButton("Exit", 240, 104, 75, 25, $WS_GROUP) GUISetState(@SW_SHOW) #EndRegion ### END Koda GUI section ###
Global $Pid = ProcessExists ("TClient.exe") Global $Open = _MemoryOpen ($PID) Global $end = _MemoryClose ($Open)
Global $ModuleX = _MemoryModuleGetBaseAddress ($PID, "TClient.exe") + 0x00315AA8 Global $OffsetX[5] $OffsetX[0] = 0 $OffsetX[1] = 0xC8 $OffsetX[2] = 0x338 $OffsetX[3] = 0x6B0 $OffsetX[4] = 0x84
Global $ModuleY = _MemoryModuleGetBaseAddress ($PID, "TClient.exe") + 0x00315224 Global $OffsetY[4] $OffsetY[0] = 0 $OffsetY[1] = 0x338 $OffsetY[2] = 0x6B0 $OffsetY[3] = 0x84
$hotkey = HotKeySet ("4","_read")
Func _read ()
$Open = _MemoryOpen ($PID) $PointerRead = _MemoryPointerRead ($ModuleX, $Open, $OffsetX, "float") MsgBox (0,"",$PointerRead[1]) $end = _MemoryClose ($Open)
EndFunc
While 1 $nMsg = GUIGetMsg()
If ProcessExists ("TClient.exe") = False Then MsgBox (48,"Error","Tclient.exe konnte nicht gefunden werden!") Exit EndIf
Switch $nMsg Case $GUI_EVENT_CLOSE Exit
Case $AFK $Open = _MemoryOpen ($PID) $Write = _MemoryPointerWrite ($ModuleX, $Open, $OffsetX, "811", "float") $Write2 = _MemoryPointerWrite ($ModuleY, $Open, $OffsetY, "117", "float") $Close = _MemoryClose ($Open)
Case $Exit Exit
Case $Port $Open = _MemoryOpen ($PID) $Write = _MemoryPointerWrite ($ModuleX, $Open, $OffsetX, GUICtrlRead ($Input1), "float") $Write2 = _MemoryPointerWrite ($ModuleY, $Open, $OffsetY, GUICtrlRead ($Input2), "float") $Close = _MemoryClose ($Open)
EndSwitch WEnd
Bilder : X-Koord
Bilder : Y-Koord
|
|
|
10/10/2011, 15:45
|
#20
|
elite*gold: 0
Join Date: Oct 2010
Posts: 51
Received Thanks: 12
|
sag doch mal den wert von @error!
MsgBox(0,"",@error)
und wenn du In AutoIT das $ModuleX + Y ausgeben lässt, sind die dann beide:
031003A8?
03101D28?
|
|
|
10/10/2011, 15:53
|
#21
|
elite*gold: 192
Join Date: May 2009
Posts: 2,227
Received Thanks: 3,262
|
Quote:
Originally Posted by klavier22
sag doch mal den wert von @error!
MsgBox(0,"",@error)
Was ich immernochnicht verstehe, ist, warum du keinen feste Pointer hast und warum du mehrere Offsets brauchst - musst du denn mehrere Adressen setzen?
|
Bei diesem Spiel kann man in CheatEngine nur "Pointer Scan for this Address" auswählen.
Bei
PHP Code:
MsgBox (0,"",@error)
kommt "0" raus
|
|
|
10/10/2011, 16:04
|
#22
|
elite*gold: 0
Join Date: Oct 2010
Posts: 51
Received Thanks: 12
|
HÄ? Wenn dir MemoryPointerWrite 0 zurück gibt, heißt das Fehler
Wenn du dann @error abfragst muss er zwischen 1 und 8 sein ??? weil 0 kein Fehler heißt.
Ich lad mir jetzt das Spiel runter und schaus mir mal an.
Hast du zufällig nen TestAcc oder so?
|
|
|
10/10/2011, 16:08
|
#23
|
elite*gold: 192
Join Date: May 2009
Posts: 2,227
Received Thanks: 3,262
|
Quote:
Originally Posted by klavier22
HÄ? Wenn dir MemoryPointerWrite 0 zurück gibt, heißt das Fehler
Wenn du dann @error abfragst muss er zwischen 1 und 8 sein ??? weil 0 kein Fehler heißt.
Ich lad mir jetzt das Spiel runter und schaus mir mal an.
Hast du zufällig nen TestAcc oder so?
|
Warte.. Ich spiele auf Global.
Quote:
Originally Posted by klavier22
HÄ? Wenn dir MemoryPointerWrite 0 zurück gibt, heißt das Fehler
Wenn du dann @error abfragst muss er zwischen 1 und 8 sein ??? weil 0 kein Fehler heißt.
Ich lad mir jetzt das Spiel runter und schaus mir mal an.
Hast du zufällig nen TestAcc oder so?
|
Wie soll ich das den abfragen :/
|
|
|
10/10/2011, 16:17
|
#24
|
elite*gold: 0
Join Date: Oct 2010
Posts: 51
Received Thanks: 12
|
naja, du machst einfach:
$writeX = _MemoryPointerWrite(für X)
MsgBox(0,"",$writeX[1])
MsgBox(0,"",@error)
$writeY = _MemoryPointerWrite(für Y)
MsgBox(0,"",$writeY[1])
MsgBox(0,"",@error)
Wenn bei der ersten UND der 2. 0 raus kommt, ist evtl deine NomadMemory beschädigt, denn Rückgabe 0 bedeutet Fehler und genaueres kann man dann in @error finden - dieser allerdings besagt für 0 keinen Fehler...
|
|
|
10/10/2011, 16:24
|
#25
|
elite*gold: 192
Join Date: May 2009
Posts: 2,227
Received Thanks: 3,262
|
Geht nicht
Sobald ich es verscuhe schließt sich das Programm :/ und Autoit spruckt mir das raus :
MsgBox (0,"",$Write[1])
MsgBox (0,"",$Write^ ERROR
->16:23:09 AutoIT3.exe ended.rc:1
>Exit code: 1 Time: 4.152
|
|
|
10/10/2011, 16:43
|
#26
|
elite*gold: 0
Join Date: Oct 2010
Posts: 51
Received Thanks: 12
|
joa, in meinem Beispiel hatte ich ja auch WriteX genommen.
Ist ja im Prinzip nichts aderes als das, was du schon geschrieben hattest wo das Ergebnis 0 war.
Hier:
Code:
Func _read ()
$Open = _MemoryOpen ($PID)
$PointerRead = _MemoryPointerRead ($ModuleX, $Open, $OffsetX, "float")
MsgBox (0,"",$PointerRead[1])
$end = _MemoryClose ($Open)
EndFunc
noch die MsgBox mit @error einfügen und sagen, was rauskommt
Also bei mir ist genau das gleiche - bei debugger attach kommt ne anti hacking meldung und das spiel beendet sich, aber mein Pointer Scan findet nichts
Wenn ich davon ausgehe, dass deine Pointer und Offsets stimmen, dann ist bei dir glaube ich alles richtig und ich weiß nicht warum es nicht geht.
Was ich jetzt noch machen würde(wenn ich das spiel auch spielen würde):
OllyDBG - anti hack Warnung NOPen und dann mit find out what accesses den Pointer suchen - da müsste man dann aber evtl auch noch den Patcher fixen und Pakete simulieren. Ist mir jetzt erstmal zu viel - tut mir leid
|
|
|
10/10/2011, 20:52
|
#27
|
elite*gold: 0
Join Date: Mar 2009
Posts: 2,317
Received Thanks: 1,255
|
ich weiß zwar nicht wo bei dir der fehler war, aber ich habs hier mal gemacht...
vllt brauchtest du auch einfach nur die "SetPrivilege("SeDebugPrivilege", 1)" zu setzten...
PHP Code:
#include "Pointer.au3"
SetPrivilege("SeDebugPrivilege", 1)
$pid = ProcessExists("TClient.exe")
$open = _MemoryOpen ($pid)
$Address = _MemoryModuleGetBaseAddress($pid, "TClient.exe") + 0x315224
Local $OffsetX[4]
$OffsetX[0]=0
$OffsetX[1]=0x338
$OffsetX[2]=0x6B0
$OffsetX[3]=0x84
Local $OffsetY[4]
$OffsetY[0]=0
$OffsetY[1]=0x338
$OffsetY[2]=0x6B0
$OffsetY[3]=0x8C
Local $OffsetZ[4]
$OffsetZ[0]=0
$OffsetZ[1]=0x338
$OffsetZ[2]=0x6B0
$OffsetZ[3]=0x88
AdlibRegister(_MemoryPointerWrite($Address, $open, $OffsetX, 3661.470459, 'FLOAT'))
AdlibRegister(_MemoryPointerWrite($Address, $open, $OffsetY, 558.9066162, 'FLOAT'))
AdlibRegister(_MemoryPointerWrite($Address, $open, $OffsetZ, 86.18725586, 'FLOAT'))
Func _MemoryModuleGetBaseAddress($iPID, $sModule)
If Not ProcessExists($iPID) Then Return SetError(1, 0, 0)
If Not IsString($sModule) Then Return SetError(2, 0, 0)
Local $PSAPI = DllOpen("psapi.dll")
;Get Process Handle
Local $hProcess
Local $PERMISSION = BitOR(0x0002, 0x0400, 0x0008, 0x0010, 0x0020) ; CREATE_THREAD, QUERY_INFORMATION, VM_OPERATION, VM_READ, VM_WRITE
If $iPID > 0 Then
Local $hProcess = DllCall("kernel32.dll", "ptr", "OpenProcess", "dword", $PERMISSION, "int", 0, "dword", $iPID)
If $hProcess[0] Then
$hProcess = $hProcess[0]
EndIf
EndIf
;EnumProcessModules
Local $Modules = DllStructCreate("ptr[1024]")
Local $aCall = DllCall($PSAPI, "int", "EnumProcessModules", "ptr", $hProcess, "ptr", DllStructGetPtr($Modules), "dword", DllStructGetSize($Modules), "dword*", 0)
If $aCall[4] > 0 Then
Local $iModnum = $aCall[4] / 4
Local $aTemp
For $i = 1 To $iModnum
$aTemp = DllCall($PSAPI, "dword", "GetModuleBaseNameW", "ptr", $hProcess, "ptr", Ptr(DllStructGetData($Modules, 1, $i)), "wstr", "", "dword", 260)
If $aTemp[3] = $sModule Then
DllClose($PSAPI)
Return Ptr(DllStructGetData($Modules, 1, $i))
EndIf
Next
EndIf
DllClose($PSAPI)
Return SetError(-1, 0, 0)
EndFunc
|
|
|
10/10/2011, 20:57
|
#28
|
elite*gold: 0
Join Date: Oct 2010
Posts: 51
Received Thanks: 12
|
Und wie bist du an die Adressen / Offsets gekommen?
Bei mir beendet sich das Spiel wenn ich den Debugger von CE attache und der Pointerscan findet nichts...
Was genau bewirkt eig. das SetPrivilege(...)?
|
|
|
10/10/2011, 21:14
|
#29
|
elite*gold: 0
Join Date: Mar 2009
Posts: 2,317
Received Thanks: 1,255
|
hier sieht man es eig recht gut:
ab 2:55
bei mir dauerte das auch eine ganze weile, wenn ich die "pointer scan" funktion aufgerufen hatte...und da ich bei solchen sachen nicht grade der geduldigste bin, nahm ich als start wert einfach mal das:
Quote:
Originally Posted by Logtetsch
PHP Code:
Global $ModuleY = _MemoryModuleGetBaseAddress ($PID, "TClient.exe") + 0x00315224
Global $OffsetY[4]
$OffsetY[0] = 0
$OffsetY[1] = 0x338
$OffsetY[2] = 0x6B0
$OffsetY[3] = 0x84
Bilder : Y-Koord

|
|
|
|
10/10/2011, 22:49
|
#30
|
elite*gold: 0
Join Date: Oct 2010
Posts: 51
Received Thanks: 12
|
ich hab den Pointer Scan komplett durchlaufen lassen (2x) und er hat nichts gefunden - wollte die Werte selber finden
Mich interessiert jetzt aber trotzdem noch, wie man an die Adressen kommt - ist ja in dem Video anders, dort kann er ja "find out what...", aber bei mir geht das ja nicht und der Pointer Scan streikt auch.
|
|
|
Similar Threads
|
problem bei Api Tool fix
01/09/2011 - Metin2 Private Server - 5 Replies
Halöle liebe Forum schnüffler,
Ich hab ein problem mit dem api tool fix. Ich wollte den Api Tool fixen so wie es in dem tutorial beschrieben wurde. Hab rebootet aber als ich mich eingeloggt hab kam der corefehler. Ich glaub mein fehler war das ich als ich den P2P port geändert habe einfach die CONFIG datei einfach aus dem game1_1 in alle anderen rein kopiert habe und keine backups gemacht hab. Deshalb wollt ich mal fragen ob mir jemand die CONFIG dateien usr/rain/auth/CONFIG ...
|
[PROBLEM]API-tool fixx problem
01/01/2011 - Metin2 Private Server - 1 Replies
hallo ich war grade dabei api-tool zu fixxen dann sollte ich auf cmd
dann UPX.exe game eingeben
das hatte ich getan doch dann kam
der befehl ''Upx.exe ist entweder falsch geschrieben oder konnte nicht gefunden werden.
BITTE hilfe übrigens das video mit der upx.exe game ist von youtube link:YouTube - How to Fix Api Tool
|
All times are GMT +1. The time now is 23:02.
|
|