[How To]Gamehacking für anfänger(AutoIT)

08/13/2010 14:35 Mr.[Tut]#1
Hi,
Ich dacht mir ich stelle mal ein kleinen Tutorial hier rein für anfänger die einen Hack erstellen wollen.

Was braucht man:

-AutoIT
-die Normad Memory
-Cheat Engine 5.6
-Ein zu hackendes Spiel
(in diesem fall Solitaire)

Was ist das Ziel:
Wir wollen einen Hack schreiben in dem Man die Zahl in eine Inputbox schreibt und dann sich der zu Hackende Wert in diese Zahl verendert.

Das Tutorial ist in 3 Kapitel unterteilt ihr könnt wenn ihr eins könnt auslassen.
-Kapitel 1: Values Finden
-Kapitel 2: Hack schreiben
-Kapitel 3: Eine GUI dazu


Values Finden


Wir Starten Cheat Engine und Solitaire (bei mir) dann gehen wir auf den "Computer" obenlinks in Cheat Engine und öffnen den Process Solitaire.exe (bei mir).Dann geben wir in CE unsere Punktezahl ein und gehen auf First Scan.Nun machen wir paar Punkte schreiben diese in CE rein und gehen auf Next Scan.Das machen wir solange bis nur noch eine Adresse übrig bleibt.
Dann Makieren wir diese Adresse und gehen auf den Roten Pfeil.Nun können wir die Adresse sehen,diese Schreiben wir uns in Notepad auf.

Hack schreiben

Jetzt downloaden wir uns die Normad Memory (Link ganzunten)
Und fügen diese in unserem AutoIT Ordner in den Include Ordner ein
also bei mir in C://Programme/AutoTIv3/Include danach können wir AutoIT öffnen.Kopiert dies:
Code:
equireAdmin 
#include <NomadMemory.au3> 

SetPrivilege("SeDebugPrivilege", 1)


While Not ProcessExists("hier den Namen")
Sleep(200)
WEnd

$Open = _memoryopen(ProcessExists("hier den Prozess Name"))



$Adresse = 0x
$Read = _MemoryRead($Adresse , $Open, 'dword')

$write = _MemoryWrite($Adresse, $Open, "hier der neue Wert", 'dword')
Kurze Erklärung:
-equireAdmin = gibt dem Programm Admin rechte

-#include <NomadMemory.au3> = Holt zusatzt daten aus der zufor
gedownloadeten datei

-While Not ProcessExists("hier den Namen")
Sleep(200)
WEnd = Wartet Solange bis Prozesss exestiert

- Der Rest dient zur änderung der Adresse

So nun geben wir bei
Code:
"hier den Namen"
und
Code:
"hier den Prozess Name"
Unseren Process Namen ein bei mir Solitaire.exe
Bei
Code:
$Adresse = 0x
geben wir nach dem x die zufor mit CE gesuchte Adresse ein
und zum schluss bei
Code:
hier der neue Wert
unseren endwert ein also der wert auf was die Adresse "gehackt" werden soll.

Eine GUI Hinzufügen

So bis jetzt haben wir zwar den hack nur wir müssten jedesmal den Endwert ändern und das Nervt (mich nervt das jedenfalls) also machen wir daraus ein Programm mit Button und einer Inputbox.Dafür gehen wir in Koda und machen dies:
-eine Inputbox egal wo
-ein Butten egal wo (er sollte am besten Go oder so heisen)
-Die Form umbenennen

Dann Fügen wir das ganze an das ende unseres Scriptes von vorher das ganze siet dann so aus:
Code:
#RequireAdmin
#include <NomadMemory.au3>

SetPrivilege("SeDebugPrivilege", 1)
While Not ProcessExists("Solitaire.exe")
Sleep(200)
WEnd
$Open = _memoryopen(ProcessExists("Solitaire.exe"))
$Adresse = 0x006FA3F4
$Read = _MemoryRead($Adresse , $Open, 'dword')
$write = _MemoryWrite($Adresse, $Open,"123", 'dword')


#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Soitäre Hack", 226, 39, 192, 154)
$Input1 = GUICtrlCreateInput("", 8, 8, 121, 21)
$Button1 = GUICtrlCreateButton("Hack", 136, 8, 75, 25, $WS_GROUP)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

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

EndSwitch
WEnd
So nun machen wir eine Variable
Code:
$Value = GuiCtrlRead($Inputbox)
Und ändern das
Code:
$write = _MemoryWrite($Adresse, $Open,"123", 'dword')
zu
Code:
$write = _MemoryWrite($Adresse, $Open,$Value, 'dword')
Jetzt fügen wir ales zusammen dan sieht der Ganze hack so aus:
Code:
#RequireAdmin
#include <NomadMemory.au3>


#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Soitäre Hack", 226, 39, 192, 154)
$Input1 = GUICtrlCreateInput("", 8, 8, 121, 21)
$Button1 = GUICtrlCreateButton("Hack", 136, 8, 75, 25, $WS_GROUP)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
		Case $Button1
$Value = GUICtrlRead($Input1)
SetPrivilege("SeDebugPrivilege", 1)
While Not ProcessExists("Solitaire.exe")
Sleep(200)
WEnd
$Open = _memoryopen(ProcessExists("Solitaire.exe"))
$Adresse = 0x006FA3F4
$Read = _MemoryRead($Adresse , $Open, 'dword')
$write = _MemoryWrite($Adresse, $Open,$value, 'dword')

			Exit

EndSwitch
WEnd
So das wars wenn ihr alles richtig gemacht habt dann sollte es gehen.
:) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :)
Link füt Normad Memory :
[Only registered and activated users can see links. Click Here To Register...]

Link zum Video sobald ich es fertig habe:
08/13/2010 14:49 omer36#2
schön, wenn du was "neues" gelernt hast, aber das muss tdu dann nicht doppel und dreifach posten und dann auch noch im falschen bereich....
[Only registered and activated users can see links. Click Here To Register...] ....

willst du überall einpar thx abstauben oder was soll das..?


wenn schon gehöhrt das hierhin [Only registered and activated users can see links. Click Here To Register...] ......
08/13/2010 16:34 Mr.[Tut]#3
Deshalb habe ich das andre geöscht und der bereich hier heist Tutorials also ....
08/13/2010 16:55 Lidan#4
Es gehört trozdem dahin: [Only registered and activated users can see links. Click Here To Register...]
08/22/2010 21:15 lolkop#5
die nutzung von SeDebugPrivilege ist hier absoluter schwachsinn...
ausserdem hast du nach dem OpenProcess kein Closehandle eingebaut.

es ist auch nicht nötig dword als typ mit anzugeben, da dieser als standard festgelegt ist. und auch die schleife in der du auf die existenz eines prozesses wartest ist nicht wirklich sinnvoll. viel besser wäre hier einfach ProcessWait zu nutzen.