Home of Gamehacking - Archiv

Normale Version: Crysis Trainer +4 - Sourcecode
Sie sehen gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hi,
ich habe mich diese Woche einwenig mit Gamehacking beschäftigt und einen kleinen Trainer in Autoit geschrieben. Den Sourcecode möchte ich euch nicht vorenthalten.

PHP-Code:
#cs
	Crysis v1.1.1687 by 07c0

	Numeric keypad 1 key - freeze energy
	Numeric keypad 2 key - freeze shield
	Numeric keypad 3 key - freeze ammo
	Numeric keypad 4 key - freeze grenades
	Numeric keypad 5 key - unfreeze all
	Numeric keypad 6 key - exit trainer
#ce


#include <Misc.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>


$frmMain = GUICreate("Crysis v1.1.1687 Trainer", 300, 169, 192, 124)
$Edit1 = GUICtrlCreateEdit("", 0, 0, 297, 168, BitOR($ES_CENTER, $ES_WANTRETURN))
GUICtrlSetState(-1, $GUI_DISABLE)
GUICtrlSetData(-1, StringFormat("\r\nNumeric keypad 1 key - freeze energy\r\nNumeric keypad 2 key - freeze shield\r\nNumeric keypad 3 key - freeze ammo\r\nNumeric keypad 4 key - freeze grenades\r\nNumeric keypad 5 key - unfreeze all\r\nNumeric keypad 6 key - exit trainer"))
GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")
GUISetState(@SW_SHOW)


While 1
	Select
		Case _IsPressed("61", DllOpen("user32.dll"))
			energie()
		Case _IsPressed("62", DllOpen("user32.dll"))
			schild()
		Case _IsPressed("63", DllOpen("user32.dll"))
			munition()
		Case _IsPressed("64", DllOpen("user32.dll"))
			granaten()
		Case _IsPressed("65", DllOpen("user32.dll"))
			zurueck()
		Case _IsPressed("66", DllOpen("user32.dll"))
			Exit
	EndSelect

	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit
	EndSwitch
WEnd



Func energie()
	Dim $hid = ProcessExists("Crysis.exe")

	Dim $hhid = memopen($hid)
	memwrite($hhid, 0x372540a7, "9090909090")
EndFunc   ;==>energie

Func schild()
	Dim $hid = ProcessExists("Crysis.exe")

	Dim $hhid = memopen($hid)
	memwrite($hhid, 0x37270dd8, "9090909090")
EndFunc   ;==>schild

Func munition()
	Dim $hid = ProcessExists("Crysis.exe")

	Dim $hhid = memopen($hid)
	memwrite($hhid, 0x10ADF, "BA63000000895014E9803C")
	memwrite($hhid, 0x10AEA, "3937")
	memwrite($hhid, 0x373A4767, "E973C3C6C8")
EndFunc   ;==>munition

Func granaten()
	Dim $hid = ProcessExists("Crysis.exe")

	Dim $hhid = memopen($hid)
	memwrite($hhid, 0x10ABF, "BF0900000089385F5EC20800")
	memwrite($hhid, 0x10ACB, "FBD21637")
	memwrite($hhid, 0x3717DDC2, "E9F82CE9C8")
EndFunc   ;==>granaten

Func zurueck()
	Dim $hid = ProcessExists("Crysis.exe")

	Dim $hhid = memopen($hid)
	memwrite($hhid, 0x3717DDC2, "89385F5EC3") ;granaten
	memwrite($hhid, 0x372540a7, "F30F114640") ;energie
	memwrite($hhid, 0x37270dd8, "F30F114634") ;schild
	memwrite($hhid, 0x373a4767, "895014") ;muni
EndFunc   ;==>zurueck



Func memopen($ppid)
	Local $id = DllCall("kernel32.dll", 'int', 'OpenProcess', 'int', 0x1F0FFF, 'int', 1, 'int', $ppid)
	Return $id[0]
EndFunc   ;==>memopen

Func memwrite($id, $adress, $hex)
	Local $struct = DllStructCreate('byte[' & BinaryLen('0x' & $hex) & ']')

	For $i = DllStructGetSize($struct) To 1 Step -1
		DllStructSetData($struct, 1, BinaryMid('0x' & $hex, $i, 1), $i)
	Next

	Local $x = DllCall("kernel32.dll", 'int', 'VirtualProtectEx', 'int', $id, 'ptr', $adress, 'int', DllStructGetSize($struct), 'dword', 0x40, 'dword*', 0)
	DllCall("kernel32.dll", 'int', 'WriteProcessMemory', 'int', $id, 'int', $adress, 'ptr', DllStructGetPtr($struct), 'int', DllStructGetSize($struct), 'int', 0)
	DllCall("kernel32.dll", 'int', 'VirtualProtectEx', 'int', $id, 'ptr', $adress, 'int', DllStructGetSize($struct), 'dword', $x[5], 'dword*', 0)
EndFunc   ;==>memwrite

Hey,
danke für den Sourcecode. Gibt es einen bestimmten Grund warum du nicht die NomadMemory.au3 benutzt hast? Ich finde das die NomadMemory.au3 ziemlich viel erleichtert wenn du eben mit dem Speicher arbeitest.
Hi,
ich habe mir die UDF mal runtergeladen.
Danke für den Tip.
Die Pointer.au3 ist eine neuere Version der NomadMemory.au3, ist vom selben Autor und enthält ein paar mehr Befehle. Darum würde ich die empfehlen.