Pointer - Hilfe =)

08/27/2011 22:09 *scarface*#1
Hey Leute =)
versuche mich gerade mit AutoIt an einem ersten "Hack".
Habe mich gründlich das Tut von LordKill durchgeschaut und angelesen, hat mir auch schon sehr geholfen, alledings sind da noch einige Lücken bei mir. :(


Mein Code:
Code:
HotKeySet("{F1}","Stop")

#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <SliderConstants.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <Pointer.au3>
#Include <Misc.au3>

$Form1 = GUICreate("Metin2 Hack", 168, 109, 192, 124)
$Label1 = GUICtrlCreateLabel("Attackspeed", 56, 8, 64, 17)
$Slider1 = GUICtrlCreateSlider(8, 24, 150, 21)
GUICtrlSetLimit(-1,17000,16256)
$Button1 = GUICtrlCreateButton("On", 16, 72, 51, 25)
$Label2 = GUICtrlCreateLabel(GuiCtrlRead($Slider1), 56, 48, 31, 17)
$Button2 = GUICtrlCreateButton("Off", 96, 72, 51, 25,$WS_DISABLED)
GUISetState(@SW_SHOW)

$process = WinGetProcess("ExtremMT2")
$openmem = _MemoryOpen($process)
$baseadress = _MemoryModuleGetBaseAddress($process,"metin2.exe") ;metin2.exe, dass was vor dem Pointer steht

Global $AtteckSpeed = 1
$testoffset1 = "120" ; Untere Offset!
$testoffset2 = "5BA" ; Obere Offset!
$testoffset3 = "0021C4A4" ; Adresse [Hinter dem Pointer! ]
	

Global $AOffset[3]
$AOffset[0] = 0
$AOffset[1] = Dec($testoffset1) ; Wandelt Hex in Zahl um
$AOffset[2] = Dec($testoffset2)
$Aaddress = "0x" & Hex($baseadress + Dec($testoffset3))

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

		Case $Button1
			GUICtrlSetStyle($Button1,$WS_DISABLED)
			GUICtrlSetStyle($Button2,"")
			
			while $AtteckSpeed = 1
				_MemoryPointerWrite($Aaddress, $openmem, $AOffset, GuiCtrlRead($Slider1), "dword")
				$nMsg = GUIGetMsg()
			WEnd
			
		Case $Slider1
			GUICtrlSetData($Label2,GuiCtrlRead($Slider1))
	EndSwitch
WEnd



Func Stop()
	$AtteckSpeed = 2
	Exit
EndFunc

Es ist ein MEtin P-Server ohne Hack Shield. Mit CE hat alles wunderbar geklappt.
Offsets sind richtig sowie auch die Adresse.

Code:
Global $AOffset[3]
$AOffset[0] = 0
$AOffset[1] = Dec($testoffset1) ; Wandelt Hex in Zahl um
$AOffset[2] = Dec($testoffset2)
$Aaddress = "0x" & Hex($baseadress + Dec($testoffset3))
Wozu brauche ich das?
Den Teil von LordKill wo er gesagt hat
Quote:
memory read funktion welche wir nicht umbedingt brauchen trotzdem möchte ich euch zeigen wie diese angewandt wird
habe ich weggelassen.

Wäre lieb, wenn ihr mir helfen könntet.
Würde gerne wissen was Offesetz bringen hier in diesem Fall oder allgemein in dieser "Hack"/"Memory" Section.

Quote:
Eine Datei ist eine Folge von Bytes oder 8 Bit. Je 4 Bit entsprechen einer Hexadezimalziffer. Also läßt sich ein Byte durch ein Paar aus Hexadezimalziffern darstellen. Damit bestimmte Bytes angesprochen werden können, werden sie numeriert. Die Zählung beginnt mit 0, das erste Byte liegt also an Adresse oder Offset 0. Wenn in einer Datei das siebente Byte gefragt ist, meint man Offset 6, weil die Zählung mit 0 beginnt.

Ein Arbeitsspeicher von 256 Megabyte entspricht 268435456 Speicherzellen. Jede Speicherzelle hat eine Nummer (Adresse), über die sie angesprochen (adressiert) wird. Die erste Zelle hat die Adresse 0, die letzte Zelle die Adresse 268435455, oder, da man Speicheradressen für gewöhnlich hexadezimal angibt, FFFFFFF.
Hiermit konnte ich nicht sehr viel anfangen. :'(

Vielen Dank für eure Hilfe! =)

Liebe Grüße
*scarface*
08/31/2011 18:14 Benhero#2
Teste es so
Code:
HotKeySet("{F1}","Stop")

#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <SliderConstants.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <Pointer.au3>
#Include <Misc.au3>

$Form1 = GUICreate("Metin2 Hack", 168, 109, 192, 124)
$Label1 = GUICtrlCreateLabel("Attackspeed", 56, 8, 64, 17)
$Slider1 = GUICtrlCreateSlider(8, 24, 150, 21)
GUICtrlSetLimit(-1,17000,16256)
$Button1 = GUICtrlCreateButton("On", 16, 72, 51, 25)
$Label2 = GUICtrlCreateLabel(GuiCtrlRead($Slider1), 56, 48, 31, 17)
$Button2 = GUICtrlCreateButton("Off", 96, 72, 51, 25,$WS_DISABLED)
GUISetState(@SW_SHOW)

$process = WinGetProcess("ExtremMT2")
$openmem = _MemoryOpen($process)
$baseadress = _MemoryModuleGetBaseAddress($process,"metin2.exe") ;metin2.exe, dass was vor dem Pointer steht

Global $AtteckSpeed = 1
$AAdd = "0021C4A4" ; Adresse [Hinter dem Pointer! ]
	

Global $AOffset[3]
$AOffset[0] = 0
$AOffset[1] = Dec("120")
$AOffset[2] = Dec("5BA")

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

		Case $Button1
			GUICtrlSetStyle($Button1,$WS_DISABLED)
			GUICtrlSetStyle($Button2,"")
			
			while $AtteckSpeed = 1
				_MemoryPointerWrite($AAdd, $openmem, $AOffset, GuiCtrlRead($Slider1), "dword")
				$nMsg = GUIGetMsg()
			WEnd
			
		Case $Slider1
			GUICtrlSetData($Label2,GuiCtrlRead($Slider1))
	EndSwitch
WEnd



Func Stop()
	$AtteckSpeed = 2
	Exit
EndFunc
Mfg.