Register for your free account! | Forgot your password?

Go Back   elitepvpers > Shooter > WarRock > WarRock Guides, Tutorials & Modifications
You last visited: Today at 08:46

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

Advertisement



[HowTo] NoMenü Hack Coden [Kleine Einführung - Vorkenntnisse sind hilfreich]

Discussion on [HowTo] NoMenü Hack Coden [Kleine Einführung - Vorkenntnisse sind hilfreich] within the WarRock Guides, Tutorials & Modifications forum part of the WarRock category.

Reply
 
Old   #1
 
elite*gold: 0
The Black Market: 195/0/2
Join Date: Jul 2011
Posts: 7,449
Received Thanks: 1,308
Post [HowTo] NoMenü Hack Coden [Kleine Einführung - Vorkenntnisse sind hilfreich]

Hallo,
ich will euch heute einen ersten Einblick verschaffen. Wir fangen mit einem simplen NoMenü Hack an. Ich werde euch kleine Sachen aus C++ zeigen und eklären.



Lets go!

Ihr braucht ersteinmal , ich finde 2008 halt besser als 2010 , weil es komfortabel ist.
Das kann etwas dauern, kommt drauf an welche Schnelligkeit euer Internet hat.
Es ist nicht schlimm, wenn ihr schon 2010 installiert hab, ich mach den Tutorial aber mit 2008.

Installiert? Dann fangen wir an.



Bild 1:

-> Startet Microsoft Visual C++ 2008/10.
->Ganz oben drückt auf Datei.
-> Drückt auf Neu.
-> Dann auf Projekt.


Bild 2:
-> Gibt jetzt irgentein Namen ein, z.b. euer Nickname etc.
-> Drückt auf weiter , anschließend auf OK.

Bild 3:


-> Wählt DLL & Leeres Projekt.
-> Drückt auf "Fertig stellen".

Bild 4:

Wir brauchen erstmal eine .cpp Datei.
-> Macht einen Rechtsklick auf Ressourcendateien
> Dann auf Hinzufügen und anschließend auf Neues Element.
-> Wählt dort C++-Datein(.cpp)
-> Schreibt dort "main" hin, ist eigentlich egal was ihr schreibt.


So jetzt fangen mit "coden" an.

Zu erst müssen wir die Sachen "includen" .

PHP Code:
 #include <windows.h>
 #include <stdio.h>
 #include <stdlib.h> 
Dannach müssen wir die Addys einfügen, Addys sind Adressen. Wobei Playerpointer und Serverpointer die wichtigsten Addys sind. Playerpointer ist auf den Player gezogen und Serverpointer auf den Server. Kann man auch an den Namen erkennen. Viel geredet nichts gemacht ^^. Fangen wir mal an.

PHP Code:
#define ADR_PLAYERPOINTER  0x00D4A730
#define ADR_SERVERPOINTER  0x00C46960 

Wenn die Addys sich durch einem Update ändern, dürft ihr nicht die Variablen ändern. In jedem Programm werden Informationen verarbeitet. Diese Informationen liegen im Speicher. Höhere Programmiersprachen greifen nicht direkt auf den Speicher zu, sondern verwenden Variablen. Variablen sind also die Behälter, in denen das Programm Zahlen und Texte ablegt.

Jetzt kommen paar andere Addys dazu:

PHP Code:
#define OFS_X 0x000102E4
#define OFS_Y 0x000102F4
#define OFS_Z 0x00102E8 
Das sind Offsets. So sehen die Addys jetzt aus:
PHP Code:
#define ADR_PLAYERPOINTER  0x00D4A730
#define ADR_SERVERPOINTER  0x00C46960
#define OFS_X 0x000102E4
#define OFS_Y 0x000102F4
#define OFS_Z 0x00102E8 
Wir verkürzen jetzt erstmal Playerpointer und Serverpointer.

PHP Code:
DWORD dwPlayerPtr = *(DWORD*)ADR_PLAYERPOINTER;
DWORD dwServerPtr = *(DWORD*)ADR_SERVERPOINTER

So sieht das ganze jetzt aus:

#include <windows.h>
#include <stdio.h>
#include <stdlib.h>

PHP Code:
#define ADR_PLAYERPOINTER  0x00D4A730
#define ADR_SERVERPOINTER  0x00C46960
#define OFS_X 0x000102E4
#define OFS_Y 0x000102F4
#define OFS_Z 0x00102E8
DWORD dwPlayerPtr = *(DWORD*)ADR_PLAYERPOINTER;
DWORD dwServerPtr = *(DWORD*)ADR_SERVERPOINTER
Fangen wir mit den Funktionen an.

PHP Code:
void PlayerHacks()
{
    
DWORD dwPlayerPtr = *(DWORD*)ADR_PLAYERPOINTER;
    if(
dwPlayerPtr != 0)
    { 
"PlayerHacks" , hier kommen jetzt die Ingame Funktionen bzw. Player Funktionen rein.

Ich zeige euch wie SuperJump funktioniert. "if(GetAsyncKeystate(VK_CONTROL) &1)"
Mit diesem Befehl setzt ihr einen Hotkey ein. Der Hotkey ist hier VK_CONTROL. VK_CONTROL ist nichts anderes als STRG. Float ist ein 'Typ'. Die größe beträgt 4 Bytes. Er wird für Analog ermittelte Werte mit Nachkommastellen verwendet.
Diese Zeichen "{ } " nennt man "Blöcke". Mehrere Anweisungen können zu einem Block zusammengefasst werden. Ein Block wird durch geschweifte Klammern eingefasst.

PHP Code:
//Das ist jetzt Superjump . Das 3000 ist die Höhe und (VK_CONTROL) ist STRG.
        
{
            if(
GetAsyncKeyState(VK_CONTROL) &1)
            {
                *(
float*)(dwPlayerPtr+OFS_Z) = 3000;
            }
        } 
if(GetAsyncKeyState(VK_CONTROL) &1) , gibt den Hotkey an, wenn ihr den Hotkey verändern wollt nimmt etwas anderes als VK_CONTROL , die ganzen Hotkeys stehen unten aufgelistet!

PHP Code:
void PlayerHacks()
{
    
DWORD dwPlayerPtr = *(DWORD*)ADR_PLAYERPOINTER;
    if(
dwPlayerPtr != 0)
    { 
     {
            if(
GetAsyncKeyState(VK_CONTROL) &1)
            {
                *(
float*)(dwPlayerPtr+OFS_Z) = 3000;
            }
        } 
So sieht unsere Funktion jetzt erstmal aus.

Jetzt kommen wir zum Ende. Wir bauen den Hackthread ein. Ohne den Hackthread geht erstmal garnichts.

PHP Code:
void HackThread() 
 {
 for(; ;)
 {
 
PlayerHacks();
 
Sleep(200); 
 }
 }


 
BOOL WINAPI DllMain(HINSTANCE modDWORD DWORD_GRUNDLPVOID res)
 {
 switch(
DWORD_GRUND)
 {
 case 
1:
 
CreateThread(00, (LPTHREAD_START_ROUTINE)HackThread 000); 
 break;
 case 
2:
 break;
 }
 return 
TRUE;
 } 

Andere Funktionen könnt ihr selber adden, ich hab euch einen ersten Einblick gegeben. Ich gebe euch jetzt Paar Hotkeys, Sources(Link) & Addys(Link).


Hotkeys:
Quote:
VK_LBUTTON - Left mouse button
VK_RBUTTON - Right mouse button
VK_CANCEL - Control-break processing
VK_MBUTTON - Middle mouse button (three-button mouse)
VK_BACK - BACKSPACE key
VK_TAB - TAB key
VK_CLEAR - CLEAR key
VK_RETURN - ENTER key
VK_SHIFT - SHIFT key
VK_CONTROL - CTRL key
VK_MENU - ALT key
VK_PAUSE - PAUSE key
VK_CAPITAL - CAPS LOCK key
VK_ESCAPE - ESC key
VK_SPACE - SPACEBAR
VK_PRIOR - PAGE UP key
VK_NEXT - PAGE DOWN key
VK_END - END key
VK_HOME - HOME key
VK_LEFT - LEFT ARROW key
VK_UP - UP ARROW key
VK_RIGHT - RIGHT ARROW key
VK_DOWN - DOWN ARROW key
VK_SELECT - SELECT key
VK_PRINT - PRINT key
VK_EXECUTE - EXECUTE key
VK_SNAPSHOT - PRINT SCREEN key
VK_INSERT - INS key
VK_DELETE - DEL key
VK_HELP - HELP key

Sources könnt ihr hier finden:



Addys könnt ihr hier finden:
(Die neusten Addys sind immer auf der letzten oder vorletzten Seite, einfach mal suchen)



Ich habe mich bemüht möglich alles kurz und knapp zu eklären. Wenn es irgentwelche Probleme oder Fehler gibt die ich ausversehen eingebaut habe, sagt es mir per PN bitte bescheid.


mfg,
Semikolon

Das Tutorial ist ein altes von mir. Die Möglichkeit, dass es nicht funktioniert besteht, da das Tutorial vor knapp 1 Jahr erstellt wurde. Wollte es nur noch einmal mit euch teilen.

(Copyright by Semikolon. Einige Sachen wurden aus dem Buch "Einstieg in C++" rausgenommen.)
Semikоlоn is offline  
Thanks
3 Users
Old 10/07/2012, 17:27   #2
 
elite*gold: 1
Join Date: Sep 2012
Posts: 1,853
Received Thanks: 158
Von den How To´s gibt es hier in epvp schon massen von.
Und es Bringt es nicht immer mehr zu machen !
Gameerish is offline  
Old 10/07/2012, 18:45   #3
 
elite*gold: 0
The Black Market: 195/0/2
Join Date: Jul 2011
Posts: 7,449
Received Thanks: 1,308
Ich habe lediglich meine Version gepostet.
Semikоlоn is offline  
Thanks
1 User
Old 10/07/2012, 21:32   #4
 
elite*gold: 0
Join Date: Oct 2012
Posts: 84
Received Thanks: 91
Geiles copy and paste tut.
Bringts auch
.FamousBrothers is offline  
Old 10/07/2012, 22:14   #5
 
elite*gold: 0
The Black Market: 195/0/2
Join Date: Jul 2011
Posts: 7,449
Received Thanks: 1,308
Quote:
Originally Posted by .FamousBrothers View Post
Geiles copy and paste tut.
Bringts auch
Du kommst darauf, weil...?
Semikоlоn is offline  
Old 10/08/2012, 01:36   #6
 
NikM's Avatar
 
elite*gold: 0
Join Date: Aug 2010
Posts: 972
Received Thanks: 1,583
wahrscheinlich weil jeder den selben source code postet.
NikM is offline  
Thanks
3 Users
Old 10/08/2012, 13:21   #7
 
elite*gold: 0
The Black Market: 195/0/2
Join Date: Jul 2011
Posts: 7,449
Received Thanks: 1,308
Ich weiß nicht was ich mir damals dabei gedacht habe, jedoch habe ich noch definitiv im Erinnerung, dass es relativ Aufwendig war und viel Zeit gekostet hat.
Semikоlоn is offline  
Old 10/08/2012, 13:22   #8
 
Donrevallo's Avatar
 
elite*gold: 52
Join Date: Nov 2010
Posts: 1,208
Received Thanks: 292
Gutes Tut eigentlich gut für "neulinge" , so sollte jeder das Nomenu Hackcoden verstehen wäre schön wenn du maln TuT für Leute machst wie man z.B eine Base baut oder Chams baut o.A.
Donrevallo is offline  
Old 10/13/2012, 14:02   #9
 
elite*gold: 1
Join Date: Sep 2012
Posts: 1,853
Received Thanks: 158
Quote:
Originally Posted by Donrevallo View Post
Gutes Tut eigentlich gut für "neulinge" , so sollte jeder das Nomenu Hackcoden verstehen wäre schön wenn du maln TuT für Leute machst wie man z.B eine Base baut oder Chams baut o.A.
Aber es gibt schon ca.5Tuts mit den Gleichen source, und die sind auch bisschen besser erklärt.
Gameerish is offline  
Old 10/13/2012, 14:05   #10
 
elite*gold: 0
Join Date: Sep 2012
Posts: 1,082
Received Thanks: 203
COPY PASTA

Trotzdem nice gemacht

MfG
girlz' is offline  
Old 10/15/2012, 22:49   #11
 
elite*gold: 130
Join Date: Apr 2012
Posts: 221
Received Thanks: 153
Was die Keys angeht habe ich schon seit geraumer zeit ne nette seite^^
Supremex3 is offline  
Old 12/11/2012, 12:44   #12
 
blackeagle321's Avatar
 
elite*gold: 34
Join Date: Jan 2009
Posts: 2,383
Received Thanks: 577
geht das noch?
blackeagle321 is offline  
Old 12/11/2012, 14:02   #13
 
Raz9r's Avatar
 
elite*gold: 297
Join Date: Dec 2010
Posts: 1,129
Received Thanks: 1,687
Quote:
Originally Posted by Semikоlоn View Post
Code:
void HackThread();
Code:
CreateThread(0, 0, (LPTHREAD_START_ROUTINE)HackThread , 0, 0, 0);
Immer, wenn ich diese Art von Cast sehe, weiß ich schon, dass wir wieder jemanden Neues haben, der nur kopiert.

HackThread hat bei dir den Typ
Code:
void (__cdecl)()
und das ist aus folgendem Grund falsch:

Code:
LPTHREAD_START_ROUTINE
ist äquivalent zu
Code:
DWORD (__stdcall *)(LPVOID)
und das ist definitiv nicht der Typ von HackThread.

Korrekt wäre also:
Code:
DWORD WINAPI HackThread(LPVOID parameter);
und
Code:
CreateThread(0, 0, &HackThread, 0, 0, 0);
Das ist wichtig, weil sonst eine Funktion mit Parameter aufgerufen wird, die gar kein Parameter hat. Du erzeugst also einen Memory Leak.
Raz9r is offline  
Thanks
4 Users
Old 12/16/2012, 14:49   #14
 
SonyRazzer's Avatar
 
elite*gold: 0
Join Date: Sep 2012
Posts: 182
Received Thanks: 223
Quote:
So jetzt fangen mit "coden" an.

Zu erst müssen wir die Sachen "includen" .
Wie wäre es, zu erklären wozu man die Bibliotheken umfasst.

Quote:
Dannach müssen wir die Addys einfügen, Addys sind Adressen. Wobei Playerpointer und Serverpointer die wichtigsten Addys sind. Playerpointer ist auf den Player gezogen und Serverpointer auf den Server. Kann man auch an den Namen erkennen. Viel geredet nichts gemacht ^^. Fangen wir mal an.
Wo wurde hier viel geredet ? Es wurde nichts erklärt und wenig geschrieben.

Quote:
Jetzt kommen paar andere Addys dazu:
Wahnsinn, Addys ?
Ist ja toll das hier ein paar Adressen dazu kommen, nur wo kommen diese Adressen überhaupt her ? Und wie bekommt man diese ? Wozu sind sie da ?

Quote:
Wenn die Addys sich durch einem Update ändern, dürft ihr nicht die Variablen ändern. In jedem Programm werden Informationen verarbeitet. Diese Informationen liegen im Speicher. Höhere Programmiersprachen greifen nicht direkt auf den Speicher zu, sondern verwenden Variablen. Variablen sind also die Behälter, in denen das Programm Zahlen und Texte ablegt.
Schlecht erklärt und schlecht zu verstehen.
Man hätte auch mehr darauf eingehen können, was die Adressen sind und wozu sie sind. Dazu hätte man auch erklären können, warum diese Adressen bei einen Update nicht mehr gleich sind.

Quote:
Das sind Offsets. So sehen die Addys jetzt aus:
Super, das sind Offset. Das erklärt uns jetzt natürlich auch, was Offset sind und die Funktionsweise.

Quote:
Wir verkürzen jetzt erstmal Playerpointer und Serverpointer.
DWORD dwPlayerPtr = *(DWORD*)ADR_PLAYERPOINTER;
DWORD dwServerPtr = *(DWORD*)ADR_SERVERPOINTER;
Du nennst das also "verkürzen" ? Kannst du mir mal erklären, was du hier für einen scheiß erzählst ? Hier wird eine Variable angelegt, die den Pointer auf die Klasse für die Variablen [Offsets] zeigt.

Quote:
Ich zeige euch wie SuperJump funktioniert. "if(GetAsyncKeystate(VK_CONTROL) &1)"
Mit diesem Befehl setzt ihr einen Hotkey ein. Der Hotkey ist hier VK_CONTROL. VK_CONTROL ist nichts anderes als STRG. Float ist ein 'Typ'. Die größe beträgt 4 Bytes. Er wird für Analog ermittelte Werte mit Nachkommastellen verwendet.
Diese Zeichen "{ } " nennt man "Blöcke". Mehrere Anweisungen können zu einem Block zusammengefasst werden. Ein Block wird durch geschweifte Klammern eingefasst.
Schlecht erklärt und der Code ist auch falsch.
Warum nutzt du hinter der Tasten Abfrage auch noch ein "&1".
Das verursacht nur, das du nicht die ganze Zeit in der Luft bei den Tastendruck bist, sondern direkt wieder herunterfällst.

Quote:
Jetzt kommen wir zum Ende. Wir bauen den Hackthread ein. Ohne den Hackthread geht erstmal garnichts.
Super, wofür ist ein "HackThread" ? Warum geht ohne das nichts ?

Quote:
Code:
void HackThread()  
 { 
[COLOR="Red"] for(; ;) [/COLOR]
 { 
 PlayerHacks(); 
[COLOR="red"] Sleep(200);  [/COLOR]
 } 
 } 


 BOOL WINAPI [COLOR="red"]DllMain[/COLOR](HINSTANCE mod, DWORD DWORD_GRUND, LPVOID res)[/COLOR] 
 { 
[COLOR="red"]switch(DWORD_GRUND) [/COLOR]
 { 
 case 1: 
[COLOR="red"][COLOR="Navy"]CreateThread[/COLOR][/COLOR](0, 0, (LPTHREAD_START_ROUTINE)HackThread , 0, 0, 0);  
 break; 
[COLOR="navy"] case 2: 
 break; [/COLOR]
 } 
 return TRUE; 
 }
#1 Wo bleiben die Erklärungen ?
#2 Warum wurde das so schlecht hingeklatscht und beschrieben ?

Die DllMain ist der Einstiegspunkt eurer Dll, die später in WarRock mit einem Injector injiziert wird. Das Parameter "hModule" ist eine Variable, die auf die Basis Adresse eurer Dll, die später in den Prozess injiziert wird. Sie gibt also nur aus, auf welcher Adresse in dem Prozess später die Dll liegt. Das Parameter Nummer 2 "dwReason", ist dafür da, um den Status der injizierten Dll zu ermitteln, darüber findet ihr mehr in der MSDN. Der Parameter Nummer 3, sagt euch auch wieder einen Status aus. Der Status ist abhängig von den Status "dwReason", mehr darüber in der MSDN.
Wenn ihr darüber mehr wissen wollt, ließt euch mal bei MSDN die DllMain durch.
Link:

Code:
BOOL WINAPI DllMain(HMODULE hModule,DWORD dwReason,LPVOID lpReserved)
{
	if ( dwReason == DLL_PROCESS_ATTACH )
	{
		CreateThread(0,0,(LPTHREAD_START_ROUTINE)(MainThread),0,0,0);
	}
	return ( TRUE );
}
Das könnte noch besser erklärt werden und einfacher, bin ja auch nicht hier um ein Tutorial zu geben. Sollte nur ein Beispiel sein.

Quote:
Originally Posted by __underScore View Post
Immer, wenn ich diese Art von Cast sehe, weiß ich schon, dass wir wieder jemanden Neues haben, der nur kopiert.

HackThread hat bei dir den Typ
Code:
void (__cdecl)()
und das ist aus folgendem Grund falsch:

Code:
LPTHREAD_START_ROUTINE
ist äquivalent zu
Code:
DWORD (__stdcall *)(LPVOID)
und das ist definitiv nicht der Typ von HackThread.

Korrekt wäre also:
Code:
DWORD WINAPI HackThread(LPVOID parameter);
und
Code:
CreateThread(0, 0, &HackThread, 0, 0, 0);
Das ist wichtig, weil sonst eine Funktion mit Parameter aufgerufen wird, die gar kein Parameter hat. Du erzeugst also einen Memory Leak.
Danke dir
Ich habe bei meinen Projekt eingestellt:
C++ / Erweitert / Aufrufkonvention / __sdcall
Deswegen habe ich daran nicht gedacht.
Und das mit dem LPTHREAD_START_ROUTINE ist mir neu, aber ich werde es für die Zukunft übernehmen. Aber ich verwende es sonst auch so, wie du. Ich übergebe mir über den Parameter ein Pointer zu einer Struct, wo ich dann mehr als einen Parameter nutzen kann.
SonyRazzer is offline  
Thanks
2 Users
Old 12/20/2012, 03:46   #15
 
Raz9r's Avatar
 
elite*gold: 297
Join Date: Dec 2010
Posts: 1,129
Received Thanks: 1,687
Quote:
Originally Posted by SonyRazzer View Post
(...) Ich übergebe mir über den Parameter ein Pointer zu einer Struct, wo ich dann mehr als einen Parameter nutzen kann.
Variadic Templates aus C++11 machen das einfacher - in Kombination mit std::thread und/oder std::tuple.
Raz9r is offline  
Reply


Similar Threads Similar Threads
[Tutorial] NoMenü Hack Coden - By McMy [Überarbeitet]
12/24/2011 - WarRock Guides, Tutorials & Modifications - 10 Replies
Hallo, ich will euch heute einen ersten Einblick verschaffen. Wir fangen mit einem simplen NoMenü Hack an. Ich werde euch kleine Sachen aus C++ zeigen und eklären. Lets go! Ihr braucht ersteinmal Visual C++ 2008, ich finde 2008 halt besser als 2010 , weil es komfortabel ist. Das kann etwas dauern, kommt drauf an welche Schnelligkeit euer Internet hat. Es ist nicht schlimm, wenn ihr schon 2010 installiert hab, ich mach den Tutorial aber mit 2008.
[Tutorial] NoMenü Hack Coden - By .Mcmy™
07/04/2011 - WarRock Guides, Tutorials & Modifications - 10 Replies
Vorwort: Hallo, ich will euch heute eklären, wie ihr ganz einfach einen NoMenü Hack machen könnt. Ihr dürft von hier nichts kopieren bzw. leechen! Kopiert nicht alles und sagt anschließend das es euer Hack ist. Ihr müsst es lernen und nicht kopieren und einfügen. Lets go! Ihr braucht ersteinmal Visual C++ 2008, ich finde 2008 halt besser als 2010 , weil es komfortabel ist.
[TuT] NoMenü Hack coden
05/26/2011 - WarRock Guides, Tutorials & Modifications - 41 Replies
Hallo, in diesem Tutorial zeige ich, wie ihr ganz leicht einen NoMenü Hack coden könnt. Dieses TuT wird noch ausgebessert, außerdem werde ich noch allgemeines zu C++ posten! ------------------------------------------------- ------------ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ###############Tutorial ############## ######### NoMenü coden #########
NoMenü hack coden
03/29/2011 - WarRock - 5 Replies
huhu leute ich weiß ich weiß es wurde hier schon viel gepostet ich hab auch grad in der sufu geschaut aber nur den http://www.elitepvpers.com/forum/warrock-guides-tu torials-modifications/723840-warrock-nomen-hack-er stellen-c-gegner.html gefunden der ist auch seht gut allerdings wäre es nicht schlecht wenn es einen geben würde mit c&p :p wenn jemand so ein tut hat schickt es mir bitte mfg



All times are GMT +2. The time now is 08:46.


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.