Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > AutoIt
You last visited: Today at 23:02

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

Advertisement



Tool Problem

Discussion on Tool Problem within the AutoIt forum part of the Coders Den category.

Closed Thread
 
Old 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
klavier22 is offline  
Old 10/10/2011, 15:37   #17
 
Logtetsch's Avatar
 
elite*gold: 192
Join Date: May 2009
Posts: 2,227
Received Thanks: 3,262
Quote:
Originally Posted by omer36 View Post
$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
Logtetsch is offline  
Old 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.
klavier22 is offline  
Old 10/10/2011, 15:44   #19
 
Logtetsch's Avatar
 
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"337140192124)
$Porter GUICtrlCreateGroup("Porter"241628973)
$X GUICtrlCreateLabel("X"40401117)
$Y GUICtrlCreateLabel("Y"40641117)
$Input1 GUICtrlCreateInput(""643212121)
$Input2 GUICtrlCreateInput(""645612121)
$Port GUICtrlCreateButton("Port"208328141$WS_GROUP)
GUICtrlCreateGroup("", -99, -9911)
$AFK GUICtrlCreateButton("AFK"241046725$WS_GROUP)
$Farm GUICtrlCreateButton("Farm"1041047525$WS_GROUP)
$Exit GUICtrlCreateButton("Exit"2401047525$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$OffsetXGUICtrlRead ($Input1), "float")
            
$Write2 _MemoryPointerWrite ($ModuleY$Open$OffsetYGUICtrlRead ($Input2), "float")
            
$Close _MemoryClose ($Open)

    EndSwitch
WEnd 
Bilder : X-Koord




Bilder : Y-Koord


Logtetsch is offline  
Old 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?
klavier22 is offline  
Old 10/10/2011, 15:53   #21
 
Logtetsch's Avatar
 
elite*gold: 192
Join Date: May 2009
Posts: 2,227
Received Thanks: 3,262
Quote:
Originally Posted by klavier22 View Post
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
Logtetsch is offline  
Old 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?
klavier22 is offline  
Old 10/10/2011, 16:08   #23
 
Logtetsch's Avatar
 
elite*gold: 192
Join Date: May 2009
Posts: 2,227
Received Thanks: 3,262
Quote:
Originally Posted by klavier22 View Post
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 View Post
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 :/
Logtetsch is offline  
Old 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...
klavier22 is offline  
Old 10/10/2011, 16:24   #25
 
Logtetsch's Avatar
 
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
Logtetsch is offline  
Old 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
klavier22 is offline  
Old 10/10/2011, 20:52   #27
 
omer36's Avatar
 
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$OffsetX3661.470459'FLOAT'))
AdlibRegister(_MemoryPointerWrite($Address$open$OffsetY558.9066162'FLOAT'))
AdlibRegister(_MemoryPointerWrite($Address$open$OffsetZ86.18725586'FLOAT'))


Func _MemoryModuleGetBaseAddress($iPID$sModule)
    If 
Not ProcessExists($iPIDThen Return SetError(100)

    If 
Not IsString($sModuleThen Return SetError(200)

    
Local   $PSAPI DllOpen("psapi.dll")

    ;
Get Process Handle
    Local   $hProcess
    Local   $PERMISSION 
BitOR(0x00020x04000x00080x00100x0020) ; CREATE_THREADQUERY_INFORMATIONVM_OPERATIONVM_READVM_WRITE

    
If $iPID 0 Then
        Local $hProcess 
DllCall("kernel32.dll""ptr""OpenProcess""dword"$PERMISSION"int"0"dword"$iPID)
        If 
$hProcess[0Then
            $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($Modules1$i)), "wstr""""dword"260)
            If 
$aTemp[3] = $sModule Then
                DllClose
($PSAPI)
                Return 
Ptr(DllStructGetData($Modules1$i))
            EndIf
        
Next
    
EndIf

    
DllClose($PSAPI)
    Return 
SetError(-100)

EndFunc 
omer36 is offline  
Thanks
1 User
Old 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(...)?
klavier22 is offline  
Thanks
1 User
Old 10/10/2011, 21:14   #29
 
omer36's Avatar
 
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:
omer36 is offline  
Thanks
1 User
Old 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.
klavier22 is offline  
Closed Thread


Similar Threads 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.


Powered by vBulletin®
Copyright ©2000 - 2025, 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 ©2025 elitepvpers All Rights Reserved.