Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > General Coding
You last visited: Today at 13:50

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

Advertisement



Speedhack programmieren

Discussion on Speedhack programmieren within the General Coding forum part of the Coders Den category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Jan 2011
Posts: 5
Received Thanks: 1
Speedhack programmieren

Hallo wie wird generell vorgegangen wenn man einen Speedhack programmieren will ?

Sucht man sich mit einem Debugger die Stelle raus wo im Programm festgellegt wird wie schnell die Spielfigur laufen soll und verändert dann einfach den Wert ?

Pseudocode:
set_speed ( 200 );


Oder wie läuft das würde mich echt mal interessieren.

Ich würde so etwas mal gerne für einen alten Einzelspieler Shooter programmieren.

Programmierkenntnisse hab ich in: C , C++ und Assembler naja und etwas Reverse Engineering Erfahrung.
0rc is offline  
Old 01/15/2011, 20:20   #2
 
black'coockie's Avatar
 
elite*gold: 0
Join Date: Nov 2009
Posts: 664
Received Thanks: 47
Nein! Der weis ja nnicht bei welchen Prozess bzw bei welchen Fenster oder so er den Speed hoch machen sollte ich möchte es auch habe habe den code auch schon probiert aber dann ist mir aufgefallen der weis ja nicht bei welchen er den speed erhöht habe schon set_speed(1800) on Process ("Metin2") probiert aber ging auch net :P Also der geht sicher nicht!
black'coockie is offline  
Old 01/15/2011, 20:30   #3
 
elite*gold: 0
Join Date: Jan 2011
Posts: 5
Received Thanks: 1
O_o

Ehm ich hab geschrieben Pseudocode das dass z.b. im Programm steht und man einfach den Funktionsparameter verändert.

Naja hier hab ich gerade noch was zu dem Thema gefunden.




QueryPerformanceCounter


Ich experimentier mal etwas rum.



Auf einen bestimmten Prozess zu zugreifen ist nicht das Problem.^^

FindWindow
OpenProcess

da gibts genug möglichkeiten ...
0rc is offline  
Thanks
1 User
Old 01/15/2011, 20:34   #4
 
black'coockie's Avatar
 
elite*gold: 0
Join Date: Nov 2009
Posts: 664
Received Thanks: 47
Ok wenn du was hast sags bescheid wie du es gemacht hast :P und wenn ich was finde sage ich bescheid
black'coockie is offline  
Old 01/16/2011, 12:37   #5
 
.BritainAndy's Avatar
 
elite*gold: 0
Join Date: Jan 2010
Posts: 1,385
Received Thanks: 1,006
Quote:
Originally Posted by xxxcuneytxxx View Post
Nein! Der weis ja nnicht bei welchen Prozess bzw bei welchen Fenster oder so er den Speed hoch machen sollte ich möchte es auch habe habe den code auch schon probiert aber dann ist mir aufgefallen der weis ja nicht bei welchen er den speed erhöht habe schon set_speed(1800) on Process ("Metin2") probiert aber ging auch net :P Also der geht sicher nicht!
In metin2 einen Speedhack zu erstellen ist das simpleste was es gibt.

Es geht TAUSEND tutorials wie man die Bewegungsmemoryaddress findet mit CheatEngine auf Youtube.
Schuhe ausziehen, den Wert (weiß ihn nicht mehr ausm kopf, 16256 oder so) scannen. Schuhe anziehen, da der bew. speed erhöht worden ist "has increased" einstellen und wieder nach 16256 suchen. Bis du nurnoch eine oder ich sage imme rmaximal 3 addressen hast. Dann suchst du den pointer für eine Addresse, und legst in deinem Source eine Variable für die addresse an (kp welche sprache du benutzt), und dann schreibst du halt in den Pointer und ersetzt die alte addresse 16256 mit ner neuen 16456 , schon ist dein speed höher.

Autoit Codeschnippsel von mir damals:

PHP Code:
Dim $Offset[3] = [00x1280x5B6]
SetPrivilege("SeDebugPrivilege"1)
$openmem _MemoryOpen(WinGetProcess("METIN2"))
$baseadress _MemoryModuleGetBaseAddress(WinGetProcess("METIN2"), "immortal2.bin")

Dim $zustand

case $Button1
$zustand 
True

case $Button2
$zustand 
False


If $zustand Then
    $Awert 
=_MemoryPointerRead($baseadress+0x21C4A4$openmem$Offset"short")
        
_MemoryPointerWrite($baseadress 0x21C4A4$openmem$Offset"16656""dword")

Else
    
$Awert =_MemoryPointerRead($baseadress+0x21C4A4$openmem$Offset"short")
        
_MemoryPointerWrite($baseadress 0x21C4A4$openmem$Offset"16256""dword")
EndIf 
.BritainAndy is offline  
Old 01/16/2011, 13:43   #6
 
black'coockie's Avatar
 
elite*gold: 0
Join Date: Nov 2009
Posts: 664
Received Thanks: 47
Quote:
Originally Posted by .BritainAndy View Post
In metin2 einen Speedhack zu erstellen ist das simpleste was es gibt.

Es geht TAUSEND tutorials wie man die Bewegungsmemoryaddress findet mit CheatEngine auf Youtube.
Schuhe ausziehen, den Wert (weiß ihn nicht mehr ausm kopf, 16256 oder so) scannen. Schuhe anziehen, da der bew. speed erhöht worden ist "has increased" einstellen und wieder nach 16256 suchen. Bis du nurnoch eine oder ich sage imme rmaximal 3 addressen hast. Dann suchst du den pointer für eine Addresse, und legst in deinem Source eine Variable für die addresse an (kp welche sprache du benutzt), und dann schreibst du halt in den Pointer und ersetzt die alte addresse 16256 mit ner neuen 16456 , schon ist dein speed höher.

Autoit Codeschnippsel von mir damals:

PHP Code:
Dim $Offset[3] = [00x1280x5B6]
SetPrivilege("SeDebugPrivilege"1)
$openmem _MemoryOpen(WinGetProcess("METIN2"))
$baseadress _MemoryModuleGetBaseAddress(WinGetProcess("METIN2"), "immortal2.bin")

Dim $zustand

case $Button1
$zustand 
True

case $Button2
$zustand 
False


If $zustand Then
    $Awert 
=_MemoryPointerRead($baseadress+0x21C4A4$openmem$Offset"short")
        
_MemoryPointerWrite($baseadress 0x21C4A4$openmem$Offset"16656""dword")

Else
    
$Awert =_MemoryPointerRead($baseadress+0x21C4A4$openmem$Offset"short")
        
_MemoryPointerWrite($baseadress 0x21C4A4$openmem$Offset"16256""dword")
EndIf 
Bei mir kommt bei Case ein Fehler!
black'coockie is offline  
Old 01/16/2011, 13:55   #7
 
omer36's Avatar
 
elite*gold: 0
Join Date: Mar 2009
Posts: 2,317
Received Thanks: 1,255
Quote:
Originally Posted by xxxcuneytxxx View Post
Bei mir kommt bei Case ein Fehler!
Quote:
Autoit Codeschnippsel
durch C&P kommste nicht weit
omer36 is offline  
Thanks
2 Users
Old 01/16/2011, 18:07   #8
 
elite*gold: 0
Join Date: Jan 2011
Posts: 5
Received Thanks: 1
Naja aber so einfach geht das ja nicht bei jedem Spiel.

Wie kann man den z.b. bei einem anderen Spiel die "Speed Variable" finden ?

Dadurch das man bei Meltin 2 die Schuhe ausziehen kann und in Zahlen sehen kann wie sich die Laufgeschwindkeit verändert ist das ganze ja recht simpel.
0rc is offline  
Old 01/16/2011, 21:17   #9
 
elite*gold: 0
Join Date: May 2010
Posts: 34
Received Thanks: 12
Dieses Thema kann man leider nicht verallgemeinern...
Bei einigen Spielen geht es relativ einfach, bei anderen wiederum nicht.

Bei Spielen mit der Unreal Engine ist es "oft" die gleiche vorgehensweise...
Man finde die Koordinaten der Spielfigur und schaut sich die Memory Region an.
In der Nähe der Koordinaten steht der "Speed Modifier", meistens FLOAT 1.
Wenn man den erhöht, erhöht sich auch die Geschwindigkeit

Dabei ist aber auch auf einiges zu achten ... unter umständen teilen sich
der Gegner und die eigene Spielfigur den "Speed Modifier", was
bedeuten würde, dass der Gegner genauso schnell laufen kann, wie man
selbst.
Dann könnte man z.B. per codeinjection einen vergleich machen ob
die Spielfigur die Speedrutine durchläuft, oder der Gegner.

Mit so einem Vergleich kann man sogar 2 Fliegen mit einer Klappe schlagen...

Pseudocode
Wenn Spielfigur Dann
Speed * 2
OderWenn Gegner Dann
Speed = 0,1
Ende Wenn

Damit hätte man dann eine Super Speed und Slow Enemies Funktion in einem


~DNA
DNA-Trainer is offline  
Old 01/16/2011, 22:40   #10
 
elite*gold: 0
Join Date: Jan 2011
Posts: 5
Received Thanks: 1
Na gut mit den Infos von DNA-Trainer kann man ja schon etwas anfangen.
Nur wie krieg ich z.b. die Koordinaten einer Spielfigur ?

Ich denke mal nur durch aufwendiges Reverse Engineering oder ?

Aber eine andere Sache noch wie macht Cheat Engine so etwas?

Weil da kann man ja auch einen Speedhack einschalten.
0rc is offline  
Old 01/17/2011, 09:47   #11
 
-AmA-'s Avatar
 
elite*gold: 0
Join Date: Dec 2007
Posts: 728
Received Thanks: 460
Quote:
Originally Posted by 0rc View Post
Ich denke mal nur durch aufwendiges Reverse Engineering oder ?
Nein!
Die sind in Float oder Double abgespeichert und verändern sich immer beim laufen... Dadurch findest du sie mit den Einstellungen "Unknow Value","Increase", "Decrease"...

Auserdem findest du mit der fast gleichen Methode auch den Speed...
Den wenn du dich ingame bückst, verändert sich die Variable (wird kleiner)

Dies trifft überigens auf die meisten Shooter zu
-AmA- is offline  
Old 01/17/2011, 16:34   #12
 
elite*gold: 0
Join Date: May 2010
Posts: 34
Received Thanks: 12
Der Speedhack von CE erhöt die komplette Prozessgeschwindigkeit,
d.h. dass ALLES schneller läuft.

Die Koordinaten werden bei heutigen Spielen zu 99% als FLOAT gespeichert
(will ich jetzt einfach mal behaupten)


Kurzanleitung zum finden der richtigen KoordAddis bei Egoshootern:
1. Suche
Unknown initial Value
Type: FLOAT

2. Suche
Springen und in der Luft das Spiel pausieren
Increased Value

3. Suche
Zurück zum Spiel, den Spieler wieder auf den Boden kommen lassen
Decreased Value

Schritt 2 und 3 so oft wiederholen, bis nur noch wenige Adressen über bleiben (zwischendurch auch mal unchanged, wenn man sich nicht bewegt hat)

Danach heißt es rumprobieren und auf folgende Merkmale achten:

* Es kommen "eigentlich" nur adressen in frage, welche mit 0,4,8 oder C enden!
("eigentlich" heißt hier, dass man zu 99% davon ausgehen kann, dass die Addis mit 0,4,8 oder C enden. Dies ist aber nicht zu 100% gewährleistet!)
* Werte die sich ständig wiederholen
* Werte die am Ende ein Exx haben, können ignoriert werden! (xx steht hier für eine zahl)


Man holt sich also nach und nach immer so 10-20 addis in die Cheattabel, welche die oben genannten kriterien erfüllen.
Diese werden dann alle eingefroeren und man versucht dann im Spiel zu springen.
Das wiederholt man, bis man im Spiel nicht mehr springen kann und quasi am Boden fest klebt ^^

Damit hätte man dann die Z-Koordinate.
X und Y sind dann ein leichtes Spiel ... man zieht von der Z-Koordinaten Addi einfach 4 Bytes für die Y-Koord ab und
von der Y-Koord nochmal 4 Bytes für die X-Koord.

BEISPIEL
Z-Koord-Addi = 500008
Y-Koord-Addi = 500004
X-Koord-Addi = 500000
--------------------------------------------------------------------

Im übrigen gibt es ein ausführliche VideoTut zum finden
der KoordAddis mit einer anderen Methode, als die oben genannte.
DNA-Trainer is offline  
Old 01/17/2011, 16:50   #13
 
-AmA-'s Avatar
 
elite*gold: 0
Join Date: Dec 2007
Posts: 728
Received Thanks: 460
Quote:
Originally Posted by DNA-Trainer View Post
Der Speedhack von CE erhöt die komplette Prozessgeschwindigkeit,

d.h. dass ALLES schneller läuft.
krass... damit beschleunige ich in Zukunft den Systemprozess
so nach dem moto: 4 Kernen x 2,2 GHz x CE Speedhack 500

Quote:
Originally Posted by DNA-Trainer View Post
("eigentlich" heißt hier, dass man zu 99% davon ausgehen kann, dass die Addis mit 0,4,8 oder C enden. Dies ist aber nicht zu 100% gewährleistet!)
Erklär mir warum 4 bytes Variablen nicht mit 0,4,8,C enden...

Sonst ists n nice Tut
-AmA- is offline  
Old 01/17/2011, 16:59   #14
 
elite*gold: 0
Join Date: May 2010
Posts: 34
Received Thanks: 12
Quote:
Originally Posted by -AmA- View Post
Erklär mir warum 4 bytes Variablen nicht mit 0,4,8,C enden...
Diese Frage müsstest du mir bitte genauer erklären
DNA-Trainer is offline  
Old 01/17/2011, 17:12   #15
 
.BritainAndy's Avatar
 
elite*gold: 0
Join Date: Jan 2010
Posts: 1,385
Received Thanks: 1,006
du sagtest das FLOAT variablen mit 0,4,8,C enden.

Aber 4Byte Variablen (DWORD) können auch mit 0,4,8,C enden, oder?


So ähnlich meint es -AmA-
.BritainAndy is offline  
Reply


Similar Threads Similar Threads
bot programmieren
07/23/2011 - General Coding - 35 Replies
hi leute ich hab mal ne frage: ich möchte lernen bot`s zu programmieren, jedoch weiss ich nicht welches programm/sprache am besten ist für anfänger. mein erster bot wäre für ogame, ich spiele es zwar nicht aber trotzdem :) am liebsten würde ich mir eine art baubot oder ne bauliste die sich selber abarbeitet (man kann im bot eingeben was er bauen soll und baut das alles nacheinander ab) zu programmieren.
speedhack programmieren mit vb
07/25/2010 - .NET Languages - 1 Replies
Hallo, ich wollte mir mal selbst nen speedhack programmieren am besten in visual basic 2008 wie gehe ich da am besten vor? habe noch keine ahnung wie...ich hoffe ihr könnt mir da helfen ^^
Bot Programmieren^^
06/16/2010 - General Coding - 9 Replies
Server leider hab ich 0 Plan was man wissen muss oder was für ein aufwand es darstellen würde^^ Ich suche einen Bot mit dem man Pm´s verschicken kann sprich ein Script zum einem könnte ich mir vorstellen das man zuerst alle User namen sammelt sprich über den link alle user id´s durchgeht die namen von der hp in ein Liste steckt und mit der Liste eine vorgefertigte Pm verschickt ka wie groß der Aufwand ist und ka ob ich überhaupt in der richtigen rubrik bin xD sry Rechtschreibung...
PROGRAMMIEREN
03/03/2009 - General Coding - 28 Replies
hey, ich weiß zwar nicht ob das hierhin kommt aber ich habe eine frage: kann mir jemand ein programm geben womit ich auch solche hacks programmieren kann? also jetzt nicht so komplizierte sondern vll nur so sppedhack und so. Will auch was programmieren ich weiß das mand arfür c++ lernen muss aber das kan ich ja noch machen. Bitte eine internett seite oder so geben Thx
Programmieren
11/17/2007 - Off Topic - 5 Replies
Moin, Suche jemanden/eine person die mir eventuell ein bisschen programmieren beibringen könnte sprich c++.Wäre sehr nett ich hinterlass euch mal meine icq 203-149-574 Ps: Meine erfahrung bis jetzt (html/bisl php) möchte jetzt mit c++ anfangen thx Mfg Millenium



All times are GMT +1. The time now is 13:50.


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