Register for your free account! | Forgot your password?

Go Back   elitepvpers › Coders Den › C/C++
You last visited: Today at 05:33

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

Advertisement



C++ Brauche Hilfe bei Base Pointer find und richtig im Code einzufügen

Discussion on C++ Brauche Hilfe bei Base Pointer find und richtig im Code einzufügen within the C/C++ forum part of the Coders Den category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Mar 2015
Posts: 7
Received Thanks: 0
C++ Brauche Hilfe bei Base Pointer find und richtig im Code einzufügen

Hallo, ich die letzten Tage nur geschlafen oder hab versucht Base Pointer zufinden bzw sie richtig in mein Code einzufügen.
In der Zeit hab ich so viele verschiedene Quellcodes mir geladen teilweise mit und teilweise ohne Offsets Variable.
Ich hab so viel verschiedenes über Base Pointer gehört das ich jetzt nicht genau weis, was ich damit machen muss bzw wie ich den wirklich bekomme.

Mein größtes Problem ist ich wollte ein RadarHack für CSGO zum testen schreiben, ist eig. ja auch relativ Easy, die Dynamischen Adressen findet man ja einfach Problem ist nur ich finde keine statische.

Wenn ich eine statische adresse manuell mit rechtklick scan for .... komm ich immer wieder zu den gleichen Adressen und habe zwar eine grüne aber das ist nur die server.dll die kann ich doch dafür nicht benutzten oder, weil der doch eig nur der Server hat?


Wenn ich mit Rechtsklick Pointer Scann mache bekomme ich immer nur Server.dll , Client.dll oder Engine.dll aber keine csgo.exe. Jetzt weis ich nicht ob ich was flasch gemacht habe oder ob ich theoretisch die Engine.dll oder die Client.dll dafür verwenden kann.
Wenn ja wie? da ich mir wirklich Mühe gegeben habe den c++Code auch wirklich alles zu verstehen war aber nicht möglich da mein English extrem schlecht ist(ich weis man braucht English zum Programmieren) und keine Deutsche erklärungen gefunden habe. Am wenigsten verstehe ich bei Readund writememory process was in den Klammern wirklich muss mit copyand paste hat das zwar mit den dynamischen Adressen nach einen tag dann auch geklappt(hatte am Anfang ein Tippfehler

Und ich weis nicht Was ich mit dem Base Pointer machen muss, ich weis nur irgendwie

z.B WENN ich als Base Pointer Engine.dll+004C5C(ist jetzt nur ein Beispielwert , also ausgedacht) und sagen wir mal 2 offsets habe, 7C und 238. Wie muss ich das schreiben in c++.

ich hab da echt keine idee mehr und hab schon wie gesagt seit tagen nur gegooglet in Foren geuckt ausprobiert, ausprobiert, teilweise auch Nächte durch.


Deswegen würde ich mich sehr freuen, wenn ihr mir helfen könntet.

-The_Larw
The_larw is offline  
Old   #2
 
elite*gold: 0
Join Date: Oct 2007
Posts: 856
Received Thanks: 35
also bin mir nicht sicher ob man das mit einer .dll machen kann und die base adress davon wüsste ich gerade auch nicht aber wenn du z.b engine.exe + 004c5c dann ist das 404c5c da .exe die base adresse 00400000 haben naja und der gemütlcihste weg das in deine dll zu machen ist der hier finde ich
DWORD Adresse = *(DWORD*)0x404c5c;
DWORD Adresse1 = (DWORD)(Adresse + 0x238);
DWORD Adresse2 = *(DWORD*)Adresse1;
DWORD Adresse3 = (DWORD)(Adresse2+ 0x7C);
Slade100 is offline  
Thanks
1 User
Old   #3
 
elite*gold: 0
Join Date: Mar 2015
Posts: 7
Received Thanks: 0
Erstmal danke für deine Antwort wenn ich ehrlich bin hab ich damit nicht mehr gerechnet das jemand mir noch antwortet, deswegen hab ich das auch jetzt erst gesehen :

Das die Base Adresse 00400000 ist habe ich auch schon öfters gelesen, war mir aber nie wirklich sicher was ich damit machen sollte?

Einfach da zu addieren wie hier oder wie?

DWORD Adresse = *(DWORD*)0x404c5c ;
DWORD Adresse1 = *(DWORD*)Adresse + 0x00400000;
DWORD Adresse2 = (DWORD)(Adresse1 + 0x238);
DWORD Adresse3 = *(DWORD*)Adresse2;
DWORD Adresse4 = (DWORD)(Adresse3 + 0x7C);

Oder ist das falsch so?

Die Base Adresse per Code immer Auslesen lassen also auch von einer .dll geht wahrscheinlich nicht so einfach
The_larw is offline  
Old   #4
 
elite*gold: 0
Join Date: Oct 2007
Posts: 856
Received Thanks: 35
ne die musst du ja normal auf die adresse adieren nicht als dword ptr du hast ja die adresse 4C5C gesagt, dann einfach 4C5C+400000 = 404c5c (siehe oben) die adresse die ich genommen habe
Slade100 is offline  
Old   #5
 
Padmak's Avatar
 
elite*gold: 58
Join Date: Jun 2008
Posts: 2,311
Received Thanks: 8,420
Das Problem ist: keine der dll-Dateien (Client,Server,Engine) wird als Base-Address 0x400000 haben
Soweit ich weiß musst du dir die Base-Address der Module schlicht selbst holen, von da aus kannst du dann munter herumrechnen
Ach und nur weil eine Datei Server.dll heißt, heißt das noch lange nicht dass sie auf dem Server ausgeführt wird, die läuft ganz normal auf deinem PC in dem Prozess
Sie heißt nur zufällig so

Padmak
Padmak is offline  
Old   #6
 
elite*gold: 0
Join Date: Mar 2015
Posts: 7
Received Thanks: 0
Erstmal danke Padmak für deine Antwort, okay das ist schonmal gut zu Wissen das die Server.dll nur zufällig so heist, und ich die trotzdem dafür verwenden könnte, dachte halt nur vllt hab ich das nur weil ich ja ein Bot Game mache und damit automatisch mit den Server hoste.


Ich hab auch in den letzten Stunden gegoogelt,gesucht, wie ich mir die Base Adresse hole, bzw ich brauch ja die von der .dll, leider hab ich nichts wirklich gefunden wie das funktionieren soll, lag wohl an meinen schlechten Englischkenntnissen.

Es wäre sehr hilfreich und nett von dir wenn du mir erklären könntest wie ich die Base Adresse ermittel, ich hab zwar schon irgendwie von Getmodulehandle gelesen, hab aber nicht brauchbares hin bekommen

-The_Larw
The_larw is offline  
Old   #7
 
Padmak's Avatar
 
elite*gold: 58
Join Date: Jun 2008
Posts: 2,311
Received Thanks: 8,420
Ja, GetModuleHandle ist das richtige
Mit deinem Beispiel würde es (evtl Pseudocode, hab keinen Bock es auszuprobieren) so aussehen (und unsauber ist der Code auch):
Code:
DWORD baseAddress = (DWORD)GetModuleHandle("Server.dll");
DWORD address = baseAddress + 0x40irgendwas;
DWORD firstOffset = *(DWORD*)address + 0xerstesoffset;
DWORD secondOffset = *(DWORD*)firstOffset + 0xzweitesoffset;
DWORD deinWert = *(DWORD*)secondOffset;
Bitte nicht hauen wenn es nicht stimmt, habe es nur aus'm Kopf geschrieben.
Kannst es aber mal aus ausprobieren

Padmak
Padmak is offline  
Old   #8
 
elite*gold: 0
Join Date: Mar 2015
Posts: 7
Received Thanks: 0
So nochmal vielen dank für deine Antwort.

ich hab das jetzt so probiert

DWORD baseAddress = (DWORD)GetModuleHandle("isaac-ng.exe");
DWORD address = baseAddress + 0x0021E5A0;
DWORD firstOffset = *(DWORD*)address + 0x238;
DWORD secondOffset = *(DWORD*)firstOffset + 0x7B0;
DWORD thirdOffset = *(DWORD*)secondOffset + 0x3DC;
DWORD deinwert = *(DWORD*)thirdOffset;

//DWORD deinwert = 0x16DA819C;
DWORD value = 0x6;

WriteProcessMemory(handle, (void *)deinwert, &value, 4, NULL);

dann kommt aber immer ein "Zugriffsverletzung beim Lesen an Position ... "
mach ich da was falsch oder ist der code so falsch?

zum testen hab ich auch

DWORD deinwert = 0x16DA819C;
DWORD value = 0x6;

WriteProcessMemory(handle, (void *)deinwert, &value, 4, NULL);

versucht, die 0x16DA819C ist aber nur eine dynamische, so klappt das aber mit dem anderen code kommt wiegesagt der fehler
The_larw is offline  
Old   #9
 
Padmak's Avatar
 
elite*gold: 58
Join Date: Jun 2008
Posts: 2,311
Received Thanks: 8,420
(BINDINGOFISAAC!)
Wenn du die Baseadress haben willst, reicht GetModuleHandle(NULL)
Warte mal.. Führst du das in einem Prozess von dir aus oder injectest du das als DLL?

Padmak
Padmak is offline  
Old   #10
 
elite*gold: 0
Join Date: Mar 2015
Posts: 7
Received Thanks: 0
danke für deine Antwort.
hat das (BINDINGOFISAAC!) irgendeine bedeutung?

okay also wenn ich die baseadresse von der exe haben will, reicht also GetModuleHandle(NULL) aus?

erstmal wollte ich das extern machen und später als dll und dann injecten.
macht das denn ein unterschied ob externel oder dll ?
The_larw is offline  
Old   #11
 
Padmak's Avatar
 
elite*gold: 58
Join Date: Jun 2008
Posts: 2,311
Received Thanks: 8,420
Es hat die Bedeutung, dass ich BOI erkannt habe und cool finde, ist aber eher offtopic

Ja natürlich macht das einen Unterschied, GetModuleHandle funktioniert nur im eigenen Prozess.
Die Baseaddress von einem Fremden Modul kann man denke ich aber ähnlich einfach herausfinden, das müsstest du dir aber selbst raussuchen

Padmak
Padmak is offline  
Old   #12


 
Requi's Avatar
 
elite*gold: 2070
The Black Market: 244/0/0
Join Date: Dec 2012
Posts: 13,044
Received Thanks: 8,252
Quote:
Originally Posted by The_larw View Post
erstmal wollte ich das extern machen und später als dll und dann injecten.
macht das denn ein unterschied ob externel oder dll ?
Ja macht es, da du intern keine prozess id übergeben musst (afaik), da du ja schon selbst im Prozess bist. Da würde GetModuleHandle("moduleName.dll") klappen. Aber extern, weiß das Programm ja nicht von welchem Prozess. Ich denke mal da würde es automatisch den eigenen Prozess nutzen. Ergo du musst die prozess id vom Spiel übergeben.

@Padmak. bitte nicht hauen. bin in c++ nicht sehr gewandt.

Zu deinem Beispiel für CS:GO. Da würden sich die meisten Dinge die du brauchst in der client.dll befinden. Auch wenn ich dafür zugeflamed werde, empfehle ich dir für CS (bzw. generell Source Spiele) die Tutorials zu CSS von Fleep anschauen. Da erkennt man schon mal wie Source Games intern "funktionieren".
Requi is offline  
Old   #13
 
elite*gold: 0
Join Date: Mar 2015
Posts: 7
Received Thanks: 0
Erstmal nochmal vielen dank für die Antworten, das hatte ich ja gemacht gehabt geguckt wie GetModuleHandle funktioniert nichts gefunden. Wollte jetzt das einfach als dll machen, problem ist da hab ich keine ahnung wie ich da writeprocessmemory verwenden muss.

Ich hatte schon versucht gehabt mir Videos von Fleeps anzugucken, um etwas dabei zu lernen ist mein english aber leider zu schlecht
The_larw is offline  
Old   #14

 
snow's Avatar
 
elite*gold: 724
Join Date: Mar 2011
Posts: 10,478
Received Thanks: 3,318
Wenn du mit einer DLL arbeitest, agierst du im Normalfall innerhalb des Adressraums des Prozesses (und der PEB ist der selbe, weshalb GetModuleHandle ein Handle zum entsprechenden Modul returnen kann etc.), wodurch du direkt mit dem Speicher interagieren kannst.

Wenn du einen externen Prozess nutzt, kannst du nicht einfach in fremden Adressräumen rumspielen (die Infos dazu fehlen ja), weshalb du ein Prozess-Handle benötigst und dann den Kernel arbeiten lassen musst (OpenProcess, RPM / WPM), selbiges gilt auch für die Modul-Enumeration (Module32First/Next) etc.

Wie hier also bereits geschrieben wurde, musst du die Base Address des Moduls anderweitig rausfinden.
Du könntest z.B. nutzen, über die Prozesse iterieren und anschließend über die Module des entsprechenden Prozessses zu iterieren, um das gewünschte zu finden. In der Struktur gibt es dann den Eintrag BYTE *modBaseAddr (), das ist genau was du vermutlich suchst. Mit dem Eintrag th32ProcessID kannst du dann auch OpenProcess für Read/WriteProcessMemory verwenden.
snow is offline  
Thanks
1 User
Old   #15
 
elite*gold: 0
Join Date: Mar 2015
Posts: 7
Received Thanks: 0
Erstmal danke für deine hilfe Snow, ich hab damit jetzt ein bissen rumprobiert aber nicht wirklich hinbekommen, weil ich nicht genau weis was genau ich damit machen muss etc
The_larw is offline  
Reply


Similar Threads Similar Threads
Hallo ich brauche Hilfe bei Rüssi's und waffen einzufügen beim lauling v3 client..!
07/05/2013 - Metin2 Private Server - 2 Replies
Hallo, ich habe mir mal neue Rüstungen rausgesucht und möchte die gerne in meinem server haben nur habe ka wie das genau geht weil der Lauling v3 client ist neuer als der im viedeo kann mir bitte da wer helfen? Endweder per pn oder Skype Skype: xvequasz Ich sage schonmal danke :)!!!
Can't Find Base Pointer ? (Help)
11/09/2012 - AutoIt - 2 Replies
I am searched in CE Forum and AutoIt Forum but i could not find any solution.I am waiting help of yours. EAX=0002D3C0 EBX=00000001 ECX=085D0000 EDX=138EF288 ESI=000000C0 EDI=138EF000 EBP=00000007 ESP=0053EA0C
[Memory und Pointer] Brauche Hilfe (SWTOR)
01/17/2012 - General Coding - 4 Replies
Moinsen, ich möchte für Swtor was basteln und brauche ein paar Offsets vom Spiel, aber ich finde nie die Pointer von den Sachen die ich brauche. Ist hier vielleicht einer, der davon Ahnung hat und per Ts3 or IRC mir dabei ein wenig helfen kann? Ich brauche nicht viele Offsets, sind sehr wenige. Bevor das geflame los geht... ich behersche c++/c#/, ja aber ich kann keine Pointer finden.. schäme mich dafür nicht. Weil es mich nie interessiert hatte.
[Brauche Hilfe] Aus Addressen Pointer machen
08/20/2010 - 4Story - 5 Replies
Hi, Ich habe mal eine Frage: Wie mache ich aus einer gefundenden Addresse nun einen Pointer??
[Brauche Hilfe]Pointer für BFBC2[Need Help]
05/09/2010 - AutoIt - 5 Replies
Moin zusammen ! Ich versuche schon seit Stunden den richtigen Pointer für die Munition des Sniper Gewehrs zu finden , allerdings scheitere ich ... die normale Adresse habe ich und den "richtigen(vermutlich?!)" Pointer auch .. nur die Umsetzung in Au3 scheint falsch zu sein ^^ Brauche jedenfalls dringend Hilfe ... Die Munition über die nromale Adresse zu ändern klappt übrigens wunderbar .. leider ändert sich die Adresse nach jedem neustart ^^ und man muss sie neu suchen => also Pointer...



All times are GMT +1. The time now is 05:34.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.