Register for your free account! | Forgot your password?

You last visited: Today at 19:42

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

Advertisement



[AutoIt] Gamehacking

Discussion on [AutoIt] Gamehacking within the Coding Tutorials forum part of the General Coding category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Jan 2008
Posts: 645
Received Thanks: 235
[AutoIt] Gamehacking

Inspiriert von diesem TuT

werd ich hier schreiben, wie man das in AutoIt realisiert.


Was wir brauchen:

-Grundlegende AutoIt Kenntnisse

-Einen Script Editor (ich benutze Scite)

-Die "NomadMemory.au3" -siehe Anhang

-Solitär - zumindest werde ich es an Solitär erklären, ist aber auch auf jedes andere spiel übertragbar


Was wir machen:

Wir werden den Spielstand in solitär durch eine Änderung in der Memory ändern.

Als erstes suchen wir die Speicheradresse mit unsere CheatEngine, was eigentlich kein Problem darstellen sollte.
Bei mir ist es "077DC9D8".
Wenn wir die Adresse haben können wir mit der Umsetzung in AutoIt starten.


Hack:
Erstellt eine neue .au3 Datei und öffnet sie mit eurem Script Editor

Um auch unter Vista mit der Memory zu arbeiten brauchen wir Administratorrechte, deshalb starten wir mit
PHP Code:
#RequireAdmin ;Unter Vista brauch das Program Administrator rechte! 
um mit den Memory Funktionen arbeiten zu können fügen wir die "NomadMemory.au3" datei in unser Skript ein. (siehe Anhang).
Diese Datei kopiert ihr einfach in den "Includes" Ordner in eurem AutoIt Verzeichnis.
PHP Code:
#include <NomadMemory.au3> ;brauchen wir, um die Memory Funktionen nutzen können.
;(Geht zwar auch per Hand ist aber so viel einfacher.)

SetPrivilege("SeDebugPrivilege"1) ;ist nicht nötigsollte aber verwendet werden 
Damit das Script nur ausgeführt wird, wenn Solitär gestarte ist, erstellen wir eine Schleife, die solange läuft bis AutoIt Solitär findet
PHP Code:
While Not ProcessExists("Solitaire.exe");Läuft so langebist Solitär gestartet ist.

Sleep(200)

WEnd
;Der Quellcodeder nach der While Schleife steht wird erst beachtetwenn Solitär gestarte ist
als nächstes öffnen wir die Memory
PHP Code:
$ProcessID ProcessExists("Solitaire.exe");gibt die PID zurück welche wir für _memoryopen brauchen

$Open 
_memoryopen($ProcessID) ;Sagt AutoIt mit welcher Memory es arbeiten soll 
nun kommen wir zu der eigentlichen veränderung der Memory
PHP Code:
$Adresse 0x077DC9D8 ;um in AutoIt eine Hex angabe zu machen setzt ihr einfach ein 0x davor(Die Adresse kann bei euch anders sein)

$Punkte =InputBox("Punkte","Wieviel Punkte möchten sie?");eine einfache InputBox um die Punkte zu speichern.(ähnlich Cin aus C++)

$write _MemoryWrite($Adresse$Open$Punkte'dword');die Funktion, die die Punkte verändert.
;
am ende der Funktion muss noch der Memory Typ geschrieben werden ('dword' 4Byte
der komplette code sieht dann so aus:
PHP Code:
#RequireAdmin ;Unter Vista brauch das Program Administrator rechte!
#include <NomadMemory.au3> ;brauchen wir, um die Memory Funktionen nutzen können.(Geht zwar auch per Hand ist aber so viel einfacher.)
SetPrivilege("SeDebugPrivilege"1) ;sollte beim arbeiten mit der Memory immer gesetzt werden

While Not ProcessExists("Solitaire.exe");Läuft so langebist Solitär gestartet ist.
Sleep(200)
WEnd
;Der Quellcodeder nach der While Schleife steht wird erst beachtetwenn Solitär gestarte ist.

$ProcessID ProcessExists("Solitaire.exe");gibt die PID zurück welche wir für _memoryopen brauchen
$Open 
_memoryopen($ProcessID) ;Sagt AutoIt mit welcher Memory es arbeiten soll

$Adresse 
0x077DC9D8 ;um in AutoIt eine Hex angabe zu machen setzt ihr einfach ein 0x davor(Die Adresse kann bei euch anders sein)
$Punkte =InputBox("Punkte","Wieviel Punkte möchten sie?");eine einfache InputBox um die Punkte zu speichern.(ähnlich Cin aus C++)
_MemoryWrite($Adresse$Open$Punkte'dword');die Funktion, die die Punkte verändert.am ende muss noch die art
;am ende der Funktion muss noch der Memory Typ geschrieben werden ('dword' 4Byte

MfG
Timo264
Attached Files
File Type: rar NomadMemory.rar (2.7 KB, 231 views)
Timo264 is offline  
Thanks
15 Users
Old 01/13/2010, 15:16   #2
 
HardCore.1337's Avatar
 
elite*gold: 1
Join Date: Feb 2009
Posts: 1,726
Received Thanks: 729
_MemoryWrite braucht keine eigene Variable weil es keinen Wert (doch, True oder False) zurückgibt.
In dem Fall prüfst du aber nicht ob er erfolgreich in den RAM geschrieben hat.
Dann vlt. noch lieber PHP Tags nehmen.

mfg
HardCore.1337 is offline  
Thanks
1 User
Old 01/16/2010, 12:51   #3
 
Yakiyo's Avatar
 
elite*gold: 0
Join Date: Apr 2009
Posts: 1,897
Received Thanks: 303
Danke, hat mir geholfen =D
Yakiyo is offline  
Old 01/20/2010, 15:32   #4
 
elite*gold: 0
Join Date: Jan 2009
Posts: 148
Received Thanks: 85
#include <NomadMemory.au3>
SetPrivilege("SeDebugPrivilege", 1)
while Not ProcessExists ( "Солитер")
sleep (200)
WEnd
$ProcessID = ProcessExists("Солитер");gibt die PID zuruck welche wir fur _memoryopen brauchen

$Open = _memoryopen($ProcessID) ;Sagt AutoIt mit welcher Memory es arbeiten soll
$Adresse = 0x01007800 ;um in AutoIt eine Hex angabe zu machen setzt ihr einfach ein 0x davor(Die Adresse kann bei euch anders sein)

$Punkte =InputBox("Punkte","Wieviel Punkte mochten sie?");eine einfache InputBox um die Punkte zu speichern.(ahnlich Cin aus C++)

$write = _MemoryWrite($Adresse, $Open, $Punkte, 'dword');die Funktion, die die Punkte verandert.
;am ende der Funktion muss noch der Memory Typ geschrieben werden

hab windowns xp warum geht das nicht ??
ninjaprobe is offline  
Old 01/20/2010, 15:34   #5

 
Kazaaa's Avatar
 
elite*gold: 26
Join Date: Nov 2007
Posts: 32,809
Received Thanks: 12,142
$Adresse = 0x01007800 ;um in AutoIt eine Hex angabe zu machen setzt ihr einfach ein 0x davor(Die Adresse kann bei euch anders sein)


Villeicht die falsche Adresse ?
Kazaaa is offline  
Old 01/20/2010, 15:52   #6
 
elite*gold: 0
Join Date: Jan 2009
Posts: 148
Received Thanks: 85
nein das ist die richtige und 0x ist schon davor
ninjaprobe is offline  
Old 04/07/2010, 19:32   #7
 
Lukɑs's Avatar
 
elite*gold: 0
Join Date: Apr 2010
Posts: 244
Received Thanks: 24
wenn dword = 4byte ist, was sind dann 2 byte?
Lukɑs is offline  
Old 04/07/2010, 23:25   #8
 
Shadow992's Avatar
 
elite*gold: 77
Join Date: May 2008
Posts: 5,430
Received Thanks: 5,876
Quote:
Originally Posted by Lukɑs View Post
wenn dword = 4byte ist, was sind dann 2 byte?
2 Byte ist Word ,
8 Byte ist QuadWord ,
10 Byte ist TenByte bzw packed BCD .
Shadow992 is offline  
Thanks
2 Users
Old 04/08/2010, 00:31   #9
 
!NOTFALL!'s Avatar
 
elite*gold: 43
Join Date: Jan 2010
Posts: 506
Received Thanks: 113
Also wenn ich den script ausführ, sagt er mir:

Code:
Line 2 (File "C:\...\...\...\solitär.au3"):
#include<NomadMemory.au3>

Error: Error opening the file.

Habe den file gedownloaded, entpackt und in den include ordner verschoben oO
!NOTFALL! is offline  
Old 04/09/2010, 11:58   #10
 
HardCore.1337's Avatar
 
elite*gold: 1
Join Date: Feb 2009
Posts: 1,726
Received Thanks: 729
Also bei mir klappts. Vlt. doch nochmal überprüfen ob die Datei genau so heißt und wirklich im gleichen Pfad ist
HardCore.1337 is offline  
Old 04/24/2010, 21:59   #11
 
Chillex's Avatar
 
elite*gold: 15
Join Date: Apr 2010
Posts: 987
Received Thanks: 2,100
Huhu und thx fürs tutorial
Hats mir schon wieder ein Stück verständlicher gemacht.
Hatte nur das Problem dass es bei mir "sol.exe" hieß statt "solitaire.exe" und das geschriebene Programm nichts gemacht hat beim start^^.naja habs dann aber doch gemerkt.
Chillex is offline  
Old 06/02/2010, 13:01   #12
 
BestOfElite's Avatar
 
elite*gold: 33
Join Date: May 2010
Posts: 3,240
Received Thanks: 1,960
Hihi hättest vllt mehr erklären können was was bedeutet aber was ist float wenn 4byte dword ist?? PLZ help
BestOfElite is offline  
Old 06/03/2010, 09:23   #13
 
Jay Niize's Avatar
 
elite*gold: 0
Join Date: Oct 2009
Posts: 4,851
Received Thanks: 3,417
#Added to List

wenn du es dort nicht haben willst PN!!!

sonst sehr nice
Jay Niize is offline  
Old 06/06/2010, 08:21   #14
 
oO-D&S-Oo's Avatar
 
elite*gold: 0
Join Date: Sep 2009
Posts: 35
Received Thanks: 2
PHP Code:
#include <NomadMemory.au3>
SetPrivilege("SeDebugPrivilege"1)

While 
Not ProcessExists("Solitaire.exe")
Sleep(200)
WEnd

$ProcessID 
ProcessExists("Solitaire.exe")
$Open _MemoryOpen($ProcessID)
$Adresse 0x01012F60
$Punkte 
InputBox("Punkte","Wieviel Punkte möchten sie?")
_MemoryWrite($Adresse$Open$Punkte'dword'
habs etwas abgespeckt.... es funzt bei mir nicht.... selbst wenn ich es 1 zu 1 übernehme und die adresse ändere.....
oO-D&S-Oo is offline  
Old 06/06/2010, 08:25   #15
 
oO-D&S-Oo's Avatar
 
elite*gold: 0
Join Date: Sep 2009
Posts: 35
Received Thanks: 2
Quote:
Originally Posted by BestOfElite View Post
Hihi hättest vllt mehr erklären können was was bedeutet aber was ist float wenn 4byte dword ist?? PLZ help
Quote:
Der Datentyp float läßt Werte aus einem diskontinuierlichen Teilbereich der reellen Zahlen zu.
oO-D&S-Oo is offline  
Reply


Similar Threads Similar Threads
[How To]Gamehacking für anfänger(AutoIT)
08/22/2010 - Coding Tutorials - 4 Replies
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)
Bewerbung [Gamehacking/Coding, Tendenz AutoIt]
01/22/2010 - Joining e*pvp - 57 Replies
Hallo erstmal ;)! Wie ihr durch den Titel schon sehen könnt, bewerbe ich mich für die Sektion Gamehacking/Coding. Bisher hat es mir in dieser Sektion gefallen und ich möchte dort auch gerne weiterhelfen. Hier die Kontaktmöglichkeiten: · Meine Icq-Nummer lautet: 354563551 · Meine E-Mail lautet [email protected]



All times are GMT +2. The time now is 19:42.


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