Register for your free account! | Forgot your password?

You last visited: Today at 10:27

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

Advertisement



[C#] Gamehacking

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

Reply
 
Old   #1
 
elite*gold: LOCKED
Join Date: Aug 2006
Posts: 3,292
Received Thanks: 866
[C#] Gamehacking

In diesem Tutorial werde ich euch zeigen wie man mit C# Memory werte auslesen kann. Ich werde hier mit World of Warcraft arbeiten, es geht aber auch mit jedem andern Spiel.

Dazu benötigt ihr :
-
-

Nun gut, ihr habt alles soweit runter geladen und entpackt bzw. Installiert? Dann kann es ja jetzt los gehen.

Los geht's:
Als erstes Startet ihr Microsoft Visual C# 2008. In meinem Fall 2010, da ich unter Win7 Arbeite.

Schritt 1:

Ihr klickt auf Datei -> Neues Projekt und wählt dort "Konsolenanwendung" aus. Ich nenn es einfach mal "Tut-epvp".

Schritt 2:
Nun seht ihr, euer "Code" Fenster. Sieht zwar noch ganz schön leer aus aber das ändert sich noch. Dann geht ihr oben auf Projekt -> Verweis hinzufügen und seht nun dieses Fenster vor euch:


Schritt 3:
Wir verbleiben im Verweise hinzufügen Fenster und suchen nun unsere am Anfang heruntergeladene Blackmagic.dll + fasmdll_managed.dll, wählen diese aus und klicken auf "Ok".

Schritt 4:
Jetzt speichert ihr erstmal euer Projekt ab.
Für win7 bzw. Visual Studio 10 Benutzer hier noch ein kleiner extra Schritt:
Ihr geht auf Projekt -> EuerProjektname Eigenschaften und seht nun :

Unter Zielframenetwork stellt ihr bitte: .NetFrameWork 3.0 oder 3.5 ein.

Schritt 5:
Jetzt können wir endlich anfange zu Coden.
Am Anfang eueres Programmes, wo "using System;" etc. steht, fügt ihr noch
Code:
using Magic;
hinzu.

Schritt 6:
Jetzt geht ihr in
Code:
static void Main(string[] args)
        {

        }
und schreibt dort :
Code:
Blackmagic wow = new Blackmagic(); //Erstellt neue Funktion zum Öffnen von WoW

wow.OpenProcessAndThread(SProcess.GetProcessFromWindowTitle("World of Warcraft")); //Das Öffnet WoW
Schritt 7:
Jetzt wollen wir na klar auch sachen wie HP,Mana etc aus WoW auslesen. Kein Problem.
Dafür müssen wir erstmal die Playerbase "einfügen"
Code:
uint playerbase = wow.ReadUInt(wow.ReadUInt(wow.ReadUInt(0xB366D0) + 0x34) + 0x24);
Um jetzt die HP auszulesen schreiben wir:
Code:
int HP = wow.ReadUInt(0x19B8 + playerbase)
Console.WriteLine("Meine HP beträgt : " + hp);
Console.ReadLine();
Nun sollte euer Code so aussehen:
Code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Magic;

namespace Tut-epvp
{
    class Program
    {
        static void Main(string[] args)
        {
            Blackmagic wow = new Blackmagic(); //Erstellt neue Funktion zum Öffnen von WoW
    
wow.OpenProcessAndThread(SProcess.GetProcessFromWindowTitle("World of Warcraft")); //Das Öffnet WoW

uint playerbase = wow.ReadUInt(wow.ReadUInt(wow.ReadUInt(0xB366D0) + 0x34) + 0x24);

int HP = wow.ReadUInt(0x19B8 + playerbase)
Console.WriteLine("Meine HP beträgt : " + hp);
Console.ReadLine()
}
}
}
Jetzt Shift+F5 drücken und freuen

Das war's auch scho.
Vielen Dank fürs Lesen.

Wenn irgendwo fragen auftauchen, stellt sie hier im Thread ich werde sie so schnell wie möglich beantworten.

Mit freundlichen Grüßen
Rhilor
scenebase is offline  
Thanks
11 Users
Old 06/07/2010, 17:26   #2
 
Mononoke123's Avatar
 
elite*gold: 0
Join Date: Mar 2010
Posts: 1,307
Received Thanks: 224
Spiele zwar kein WoW aber was bewirkt der "Hack"
Mononoke123 is offline  
Old 06/07/2010, 17:38   #3
 
elite*gold: 0
Join Date: Apr 2006
Posts: 6,597
Received Thanks: 1,830
Quote:
Console.WriteLine("Meine HP beträgt : " + hp);
das leben deines chars wird ausgelesen und in der konsole ausgegeben
Medix is offline  
Old 06/08/2010, 17:14   #4
 
Fuyo's Avatar
 
elite*gold: 0
Join Date: Dec 2009
Posts: 335
Received Thanks: 1,849
Und wie kann ich einen neuen Memory Wert schreiben lassen ?
Fuyo is offline  
Thanks
1 User
Old 06/11/2010, 14:19   #5

 
elite*gold: 0
Join Date: May 2010
Posts: 1,038
Received Thanks: 333
Schöne Arbeit, kenne da jemand der das sicher gebrauchen kann
*Thx given*

Quote:
Und wie kann ich einen neuen Memory Wert schreiben lassen ?
Würde mich auch mal interessieren.
Colax3... is offline  
Old 06/12/2010, 21:58   #6
 
elite*gold: 0
Join Date: May 2008
Posts: 489
Received Thanks: 210
Das ist kein Tutorial, du erklärst nichts, bzw. das einzige was du versuchst zu erklären ist schlichtweg falsch:

Code:
Blackmagic wow = new Blackmagic(); //Erstellt neue Funktion zum Öffnen von WoW
Du erstellst eine Funktion zur Laufzeit? Interessant.

Wenn du Tutorials erstellen willst erkläre den Leuten was sie dort tun. Das ist schlichtweg nutzlos, du hättest auch nur den Code posten können.
schlurmann is offline  
Thanks
8 Users
Old 07/06/2010, 23:30   #7
 
sataan1337's Avatar
 
elite*gold: 0
Join Date: Dec 2008
Posts: 628
Received Thanks: 108
also, wenn du tutorials schreibst solltest du

1. darauf achten dass das was du schreibst auch richtig ist

z.b.:
Quote:
Blackmagic wow = new Blackmagic(); //Erstellt neue Funktion zum Öffnen von WoW
erstellt keine funktion sondern eine instanz der klasse Blackmagic - schätze mal das is nen memory reader, darauf gehst leider nicht näher ein ^^

Quote:
wow.OpenProcessAndThread(SProcess.GetProcessFromWi ndowTitle("World of Warcraft")); //Das Öffnet WoW
falls "blackmagic" wirklich für den speicherzugriff verantwortlich ist wird hier kein wow gestartet sondern auf den speicher des schon laufenden wow-prozesses zugegriffen

2. darauf achten dass die Informationen wiederverwendbar sind

dass du z.b. das ganze an wow demonstrierst ist ja in ordnung, aber z.B. sowas wie "was macht diese Blackmagic.dll" oder Begriffe wie "Playerbase" (was mir selber nicht besonders viel sagt, sieht aber aus wie pointer und offset) solltest du eventuell auch erklären bzw zumindest kurz darauf eingehen wo man diese herbekommt ^^

3. afaik ändert wow wenigstens mit jedem patch seine pointer (länger nicht mehr probiert ^^) - falls das noch so ist ist das ganze in absehbarer zeit auch nicht mehr nachvollziehbar ^^

aber danke für die mühe ^^, sollten nur tipps sein ^^

*edit:


Quote:
Originally Posted by Fuyo View Post
Und wie kann ich einen neuen Memory Wert schreiben lassen ?
wenn du meinst den wert im speicher zu verändern, das würde nicht viel bringen da er nur kurzzeitig angezeigt wird aber im spiel keinen effekt hat

wenn du meinst andere werte (z.b. mana, position) auszulesen, dafür brauchst du die entsprechenden pointer und offsets - leider keine genaue info dazu, aber entweder googeln oder mit cheat engine raussuchen könnte klappen ^^

aso ^^ falls ich hier mist erzähle, sry ist etwas her dass ich das bei wow versucht hab, bin da irgendwie an der position gescheitert damals xP
sataan1337 is offline  
Thanks
2 Users
Old 07/19/2010, 15:37   #8
 
xenex(toemsel)'s Avatar
 
elite*gold: 0
Join Date: Jan 2010
Posts: 241
Received Thanks: 1,180
Dankeschön
Du weißt ja garnicht wie lange ich nach "C# read memory || C# ram auslesen" im google gesucht habe. Im prinzip kann man Theoretisch keine Werte mehr auslesen, da jeder Prozess ein Virtuellen Speicher zugeteilt bekommt um die anderen Daten nicht zu überschreiben,... *WMI API*

Nunja,... danke,... ich werde die .dll mal genau unter die Lupe nehmen
xenex(toemsel) is offline  
Old 11/16/2010, 14:00   #9
 
|NeoX's Avatar
 
elite*gold: 0
Join Date: Nov 2010
Posts: 237
Received Thanks: 99
Thx das hilft, das tut is zwar ned effizient gemacht aba wenn man hirn hat bekommt man es sowiso hin^^
|NeoX is offline  
Old 06/21/2011, 18:57   #10
 
elite*gold: 0
Join Date: Jun 2008
Posts: 203
Received Thanks: 7
Funktioniert auch garnicht - "Exception wurde nicht behandelt". ( Könnte an falschen Offsets liegen, weiß ich jetzt auch nicht auswendig. )

Wenn man schon ein Tutorial schreibt, sollte man schon etwas Ahnung haben von dem, was mach hier macht. Mir kommt es so vor, als wüsstest du genau diese Codeschnipsel auswendig, kennst dich aber in Wirklichkeit überhaupt nicht damit aus.

MfG Kilinat


/edit: Sorry fürs Ausgraben eines komplett veralteten Threads, hab ich übersehen.
Kilinat is offline  
Old 08/07/2011, 13:51   #11
 
elite*gold: 0
Join Date: Dec 2008
Posts: 316
Received Thanks: 44
BMMain.cs fehlt

Blackmagic wow = new Blackmagic();

kann nicht erstwellt werden...
XchangliiX is offline  
Old 04/29/2012, 18:29   #12
 
DarkDorel's Avatar
 
elite*gold: 0
Join Date: Jul 2009
Posts: 48
Received Thanks: 36
Quote:
Originally Posted by XchangliiX View Post
BMMain.cs fehlt

Blackmagic wow = new Blackmagic();

kann nicht erstwellt werden...
BlackMagic und nicht Blackmagic.
DarkDorel is offline  
Old 04/29/2012, 20:42   #13
 
elite*gold: 1
Join Date: Feb 2011
Posts: 1,228
Received Thanks: 159
Quote:
Originally Posted by DarkDorel View Post
BlackMagic und nicht Blackmagic.
Und um das zu schreiben gräbst du einen 1 Jahr alten Thread aus?


Mfg Freak
Freak2011 is offline  
Old 05/09/2012, 19:25   #14
 
.Dash's Avatar
 
elite*gold: 0
Join Date: May 2012
Posts: 26
Received Thanks: 1
Braucht man eigentlich diese Blackmagic.dll zum Gamehacking in C#?
.Dash is offline  
Old 08/04/2012, 17:55   #15

 
elite*gold: 0
Join Date: May 2009
Posts: 438
Received Thanks: 338
Quote:
Originally Posted by .Dash View Post
Braucht man eigentlich diese Blackmagic.dll zum Gamehacking in C#?
Kannst dir auch deine eigene Klasse schreiben, aber ansonsten: ja.
f1Nn is offline  
Reply

Tags
c#, gamehacking, wow




All times are GMT +2. The time now is 10:27.


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.