[Hack]Cheat Engine mit AutoIT ,DONT WORK :)

07/30/2012 15:42 Samulau#1
Hallo leute arbeite gerade an nem kleinen Projekt ...
ALso hier mein Code :

Code:
HotKeySet("{F1}","Change_")
HotKeySet("{F11}","Close_")

If ProcessExists("xxx.exe") = false Then
   msgbox(0,"Error","Error : xxx isn´t running. Please start it !")
   Exit
EndIf


#RequireAdmin
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <NomadMemory.au3>

Global $open, $base ,$final, $value
Global $Offset[5]
Global $PID = ProcessExists("xxx.exe")
Global $wert = 0

$Offset[0] = 0
$Offset[1] = Dec("6C4")
$Offset[2] = Dec("4F0")
$Offset[3] = Dec("54")
$Offset[4] = Dec("110")
$Static = Dec("01BCA600")
$open = _MemoryOpen($PID)
$base = _MemoryGetBaseAddress($open, 1)
$final = "0x" & Hex($base + $Static)
$value = _MemoryPointerRead($final, $open, $Offset)

#Region ### START Koda GUI section ### Form=
$Gunadder = GUICreate("Test", 208, 31, 1687, 6, $WS_POPUP)
GUISetBkColor(0x000000)
$Label1 = GUICtrlCreateLabel("Number", 8, 8, 101, 17)
GUICtrlSetColor(-1, 0x00FF00)
$Gun = GUICtrlCreateInput("", 112, 5, 41, 21)
$Label2 = GUICtrlCreateLabel("xxx", 160, 8, 44, 17)
GUICtrlSetFont(-1, 8, 400, 4, "MS Sans Serif")
GUICtrlSetColor(-1, 0x3399FF)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While sleep(1)
_MemoryPointerWrite($final, $open, $Offset, $wert, "dword")
WEnd

Func Change_()
$Wert = GuiCtrlRead($Gun)
EndFunc

Func Close_()
   _MemoryClose($open)
   Exit
EndFunc
Was ist daran falsch ?
Also was seht ihr daran ?
07/30/2012 16:35 Logtetsch#2
Hab paar Sachen verändert.
Dieses ständige "Dec" ist sehr unnötig.

Hier mal ein paar kleine Veränderungen.
PHP Code:
HotKeySet("{F1}","Change_")
HotKeySet("{F11}","Close_")


If 
ProcessExists("xxx.exe") = false Then
   msgbox
(0,"Error","Error : xxx isn´t running. Please start it !")
   Exit
EndIf


#RequireAdmin
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <NomadMemory.au3>

Global $open$base $value
Const $Offset[5] = [00x6C40x4F00x540x110]
Global 
$Static 0x10BCA600
Global $PID ProcessExists("xxx.exe")
Global 
$wert 0

$open 
_MemoryOpen($PID)
While 
Sleep(10)
    if 
IsArray ($openThen
        $base 
_MemoryModuleGetBaseAddress($PID"xxx.exe") + $Static
        $value 
_MemoryPointerRead($base$open$Offset) ;Es ist immer vorteilhaft einen Datentypen mitzugebenFehler werden so vermieden.
        
ExitLoop
    
Else
        if 
MsgBox (52,"Error","Cannot open memory! Try again?") = 6 then Exit
    EndIf
WEnd


#Region ### START Koda GUI section ### Form=
$Gunadder GUICreate("Test"2083116876$WS_POPUP)
GUISetBkColor(0x000000)
$Label1 GUICtrlCreateLabel("Number"8810117)
GUICtrlSetColor(-10x00FF00)
$Gun GUICtrlCreateInput(""11254121)
$Label2 GUICtrlCreateLabel("xxx"16084417)
GUICtrlSetFont(-184004"MS Sans Serif")
GUICtrlSetColor(-10x3399FF)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While sleep(10)
    
_MemoryPointerWrite($base$open$Offset$wert"dword")
WEnd

Func Change_
()
$Wert GuiCtrlRead($Gun)
EndFunc

Func Close_
()
   
_MemoryClose($open)
   Exit
EndFunc 
Fallst du die _MemoryModuleGetBaseAddress Funktion nicht in deiner NomadMemory.au3 drinne haben solltest, dann packe diese ans ende deiner .au3

PHP Code:
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 
07/30/2012 18:49 Samulau#3
Danke habs mal ausprobiert klappt leider immer noch nicht :O
Woran kann das liegen ?
Am Hackshield vom Game ? Aber Cheat Engine ist ja auch nicht detected :O
07/30/2012 18:51 K1ramoX#4
Hast du es mit Debug Privilegien probiert?
07/30/2012 18:58 Samulau#5
Sagt mir gerade nicht viel .... Sorry :P
07/30/2012 19:07 Logtetsch#6
Dann hast du hier nichts verloren.

PHP Code:
SetPrivilege("SetDebugPrivilege",1
Google ist dein bester Freund.
07/30/2012 19:09 Samulau#7
Ja bin gerade eingestiegen mit Cheat Engine und AutoIT also beides zusammen machen ..
Edit: Damit klappts auch nicht .
Es klappt nicht
Quote:
SetPrivilege("SetDebugPrivilege",1)
Und auch nicht wie es manche meinen
Quote:
SetPrivilege("SeDebugPrivilege",1)
07/30/2012 19:24 K1ramoX#8
Das von Nomad hat bei mir nie richtig funktioniert. [Only registered and activated users can see links. Click Here To Register...] finde ich am besten ^^
07/30/2012 19:41 Samulau#9
Also die Func hinzufügen und wie die andere aufrufen ? hm
Also habe die Function nun aufgerufen hat nichts genützt o.o
07/30/2012 19:57 K1ramoX#10
Probiere es mal damit

Code:
#include "Pointer2.au3"

Local $prozessname = "xxx.exe"
$PID = ProcessExists($prozessname)
If $PID > 0 Then
	$Handle = _MemoryOpen($PID)
	$Address = _MemoryModuleGetBaseAddress("" & $PID & "", "" & $prozessname & "")
	$Address = "0x" & Hex($Address + Dec("10BCA600"))
	Dim $Offset1[5] = [0, 0x6C4, 0x4F0, 0x54, 0x110]
EndIf
_MemoryPointerWrite($Address, $Handle, $Offset1, $wert, "dword")
_MemoryClose($Handle)
Ich hab mal noch einen Anhang zusätzlich gemacht wo das alte AutoIt Setup drin ist (mit der neuen Version von AutoIt funktionieren _MemoryPointerWrite() bei mir nicht) und auch die Pointer2.au3 ;D

Für den VT Bericht hatte ich jetzt keine Lust nochmal 8 MB zu uploaden. Wer ein VT will soll sich einen selber machen oder es nicht downloaden ;O
07/30/2012 20:37 Samulau#11
Klappt auch nicht ...
Was mach ich falsch ?
07/30/2012 20:41 K1ramoX#12
Vielleicht liegt es an deinem Pointer?
07/30/2012 21:12 Samulau#13
Ne der stimmt soweit :O
Mit Cheat Engine kann ich ja im Shop "hacken" also waffen adden ^^
Der Pointer klappt in Cheat Engine aber so in AutoIT iwie nich ^^
07/30/2012 21:21 K1ramoX#14
Lass doch mal die Adresse und den Wert ausgeben und vergleich das O:
07/30/2012 21:34 Logtetsch#15
Kannst du uns mal ein Bild von deinem Pointer in CheatEngine zeigen?
Vermutlich hast du die Pointer falschrum aufgelistet.
Ein Bild sagt mehr als 1000 Worte.