Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > C/C++
You last visited: Today at 07:31

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

Advertisement



C++ Call Game Func

Discussion on C++ Call Game Func within the C/C++ forum part of the Coders Den category.

Reply
 
Old   #1
 
meak1's Avatar
 
elite*gold: 220
Join Date: Jun 2007
Posts: 3,768
Received Thanks: 1,126
Question C++ Call Game Func

Jo hi, finde nichts in google, bzw weiß nicht genau was ich googlen soll :/

Will eine Game function callen, bloß außerhalb eines Processes ;E

Also einfach eine Addresse Callen außerhalb eines Games..

Vielen Dank ;D
meak1 is offline  
Old 10/20/2013, 11:27   #2


 
Jeoni's Avatar
 
elite*gold: 966
Join Date: Apr 2010
Posts: 1,104
Received Thanks: 681
sollte dir da von Nutzen sein. Ist die Funktion, die du im Spiel aufrufen möchtest ein thiscall (oder irgendeine außergewöhnliche calling convention) oder braucht sie mehr als einen Parameter, dann musste erst mit eine kleine Funktion in's Spiel schreiben, welche die eigentlich aufzurufene Gamefunction dann korrekt aufruft. Dann rufst mit mit CreateRemoteThread eben deine in's Spiel geschriebene Funktion auf, welche dann die Spielfunktion aufruft.
Hoffe, dass ich helfen konnte
Jeoni
Jeoni is offline  
Old 10/20/2013, 11:36   #3
 
Schlüsselbein's Avatar
 
elite*gold: 0
Join Date: Feb 2013
Posts: 1,137
Received Thanks: 869
Was macht die Funktion? Wann soll sie aufgerufen werden und was ist das für ein Prozess?
Es gibt mehrere Möglichkeiten, das hängt eigentlich immer von den obigen Fragen ab.

Ein neuer Thread kann für allerlei ärger im Prozess sorgen, deswegen wäre ich damit erstmal vorsichtig.
Schlüsselbein is offline  
Old 10/20/2013, 18:53   #4
 
meak1's Avatar
 
elite*gold: 220
Join Date: Jun 2007
Posts: 3,768
Received Thanks: 1,126
In League of legends wollt ich im Launcher anfangs die func WinHttpOpenRequestA callen direkt in der .exe mit parametern/argumenten und wollt nicht unbedingt ne Dll injection :/
meak1 is offline  
Old 10/21/2013, 18:25   #5




 
Omdi's Avatar
 
elite*gold: 93616
Join Date: Apr 2010
Posts: 13,737
Received Thanks: 14,990
Und wieso musst du unbedingt die vom Launcher callen?
Kannst sie ja auch selbst callen ;o
Omdi is offline  
Old 10/22/2013, 13:28   #6
 
meak1's Avatar
 
elite*gold: 220
Join Date: Jun 2007
Posts: 3,768
Received Thanks: 1,126
Ja könnte man aber dann macht der launcher ja auch nix :/
meak1 is offline  
Old 10/23/2013, 15:08   #7
 
elite*gold: 5
Join Date: Sep 2006
Posts: 385
Received Thanks: 218
Der wird auch nichts machen, wenn du die Funktion in einem neuen Thread aufrufen wirst. Du musst den Hauptthread des Programmes dazu bringen die Funktion aufzurufen, bzw. die Funktion, die dann was auch immer du vorhast macht. Du gehst die Sache also vollkommen falsch an.
Nightblizard is offline  
Old 10/25/2013, 12:41   #8
 
meak1's Avatar
 
elite*gold: 220
Join Date: Jun 2007
Posts: 3,768
Received Thanks: 1,126
Nein, ich will sie ja nicht in einem neuen thread aufrufen. Ich will sie ja dort direkt callen.
Es funzt ja auch mit ner dll injection aber wollte es halt von auserhalb callen :/

Naja wenn ich zeit hab, probier ich mal was jeoni sagte.
Wusste halt nicht was ich googlen sollte, dachte viell hat wer sone func schon parat weil er dies auch mal gemacht hat...
meak1 is offline  
Old 10/25/2013, 13:45   #9
 
elite*gold: 5
Join Date: Sep 2006
Posts: 385
Received Thanks: 218

Quote:
Originally Posted by msdn
Creates a thread that runs in the virtual address space of another process.
jeonis Methode erstellt einen neuen Thread, macht also genau das, was du nicht willst. Das was du vor hast ist nicht* möglich.


* Für Klugscheißer: es ist für den Laien nicht möglich. Du könntest da z.B. sicher was übers EIP Register pfuschen, aber da musst du so dermaßen viele schmutzige Tricks benutzen, dass das nicht zu mehr als einem Gedankenspiel taugt.
Also vergiss das Ganze und injecte einfach eine .dll, denn es gibt keine Gründe die dagegen sprechen.
Nightblizard is offline  
Old 10/25/2013, 13:57   #10


 
MrSm!th's Avatar
 
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,904
Received Thanks: 25,394
Inwiefern soll eine Dll-Injection einen Unterschied machen? Die Dll wird doch ebenfalls in einem eigenen Thread geladen. Wenn man nicht selbst in völlig anderem Kontext die Funktion aufrufen will, sondern den Launcher dazu bringen will sie selbst aufzurufen, dann muss man so oder so hooken/patchen und das geht extern wie auch intern.
MrSm!th is offline  
Old 10/25/2013, 18:33   #11
 
Master674b's Avatar
 
elite*gold: 0
Join Date: Dec 2012
Posts: 255
Received Thanks: 110
Man könnte z.B. im Thread das Single-Step Flag setzen und dann in einem VEH die Ausnahme abfangen und die Funktion ausführen die man möchte, danach aus dem VEH returnen. Ist zwar nicht so effizient aber das dürfte klappen. Dann muss man nichts patchen... und der aktuelle Thread Kontext wird sowieso gespeichert.
Master674b is offline  
Old 10/26/2013, 00:03   #12


 
MrSm!th's Avatar
 
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,904
Received Thanks: 25,394
Eine Form des Hookings..
Kann man aber genau so von außen. Im Hacking Bereich wirds nunmal auch schmutzig, Nightblizzard.
MrSm!th is offline  
Old 10/26/2013, 09:37   #13




 
Omdi's Avatar
 
elite*gold: 93616
Join Date: Apr 2010
Posts: 13,737
Received Thanks: 14,990
Quote:
Originally Posted by Master674b View Post
Man könnte z.B. im Thread das Single-Step Flag setzen und dann in einem VEH die Ausnahme abfangen und die Funktion ausführen die man möchte, danach aus dem VEH returnen. Ist zwar nicht so effizient aber das dürfte klappen. Dann muss man nichts patchen... und der aktuelle Thread Kontext wird sowieso gespeichert.
Da könnte man doch auch HW BPs benutzen, ich weiß jetzt gerade nicht was von beidem man bevorzugen sollte bzw. was effizienter ist

Eigentlich müsste die im Zitat genannte Methode uneffizienter sein, da sie im Thread das Single-Step Flag setzt. Aber wie gesagt, bin mir da nicht so sicher
Omdi is offline  
Old 10/26/2013, 13:59   #14


 
MrSm!th's Avatar
 
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,904
Received Thanks: 25,394
Oh richtig, Singlestep, hab bei Singlestep direkt an Hwbps gedacht, weil sie ja dieselbe Ausnahme schmeißen :S Dann ist das natürlich nicht wirklich mit Hooking zu bezeichnen, sorry Master. Allerdings stelle ich mir das problematisch vor, einfach irgendwann das Singlestep Flag zu setzen und was eigenes zu machen.

@Omdi
Wo willst du den Hwbp denn hinsetzen? Du brauchst dafür ja eine bekannte Adresse. Das Singlestep Flag breakt einfach beim nächsten Step. Der Hwbp breakt an einer determinierten Stelle (was ich mir aber sowieso hier unproblematischer vorstelle, weil man dann den Zustand der Register etc. kennt). Das sind zwei unterschiedliche Funktionsweisen und somit nicht wirklich vergleichbar. Performancemäßig werden die sich nicht viel tun. Deine Begründung kann ich nebenbei nicht ganz nachvollziehen.
MrSm!th is offline  
Old 10/26/2013, 17:02   #15
 
XxharCs's Avatar
 
elite*gold: 34
Join Date: Apr 2011
Posts: 1,475
Received Thanks: 1,227
Du müsstest es dir so vorstellen, als würdest du eine Funktion aus einer DLL aufrufen..
Sprich zb du hast in deiner DLL
Code:
#ifdef __cplusplus
extern "C" {
#endif
        __declspec(dllexport) int __cdecl crWindow(HINSTANCE hInstance)
        {

... usw.
Dann callst du es ja eig dann so:
Code:
typedef int (__cdecl *FUNCI)(HINSTANCE);

int main(int argc, char* argv[])
{
        INSTANCE hInstance = (HINSTANCE)GetWindowLong(hwndConsole, GWL_HINSTANCE);
.....
        HINSTANCE lib;
        FUNCI funci;

        lib = LoadLibrary("./exampleLib.dll");
        if (lib != 0){
                
                printf("exampleLib successfully loaded!\n\n");

                funci = (FUNCI)GetProcAddress(lib, "crWindow");
                if (NULL != funci)
                {
                        fRunTimeLinkSuccess = TRUE;
                        (funci) (hInstance);
                }


                fFreeResult = FreeLibrary(lib);
....
Nur in deinem Fall wüsste ich nicht wie du auf den Funktionsnamen kommst oder wie auch immer.
Mit so einem Prinzip sollte es etwa funktionieren oder etwa nicht?

Falls ich mich geirrt hab, dann sry(!), bin in dem Gebiet seit einiger Zeit eingerostet :P


Edit: Kommt dann eig auf das raus, was Smith gesagt hat, hooken/patchen oder?
XxharCs is offline  
Reply


Similar Threads Similar Threads
[C++]Call a Game Function
08/27/2013 - Metin2 PServer Guides & Strategies - 3 Replies
Hello guys here is a quick tutorial : Metin2 How To Call A Function - www.darkhook.net - YouTube Source : // dllmain.cpp : Defines the entry point for the DLL application. #include "stdafx.h" // We will call our function.
[Release] Fix pc.change_name func on game 2010
01/08/2013 - Metin2 PServer Guides & Strategies - 17 Replies
Hi elitepvpers ! I want to show you how to fix pc.change_name function on 2010 game file (snv 1765). When you're trying to change your name , error appears : say("Unknown error occured.") say(ret) -- returns 5 char_log(0, "CHANGE_NAME", "UNKNOWN NAME") It's because pc.change_name function is blocked for Europe. Your default locale is germany , so function returns value 5 and do not change your name. To fix it you need Difference Patcher from iMer :...
xBox Game vs Playstation 3 Game - Halo vs Call of duty
02/25/2012 - Off Topic - 6 Replies
Welches spiel findet ihr besser? also von jeden teil der spiele stimmt mal ab und gibt euren komentar ab warum ihr das besser findet^^
Func nach der func ausführen problem
08/15/2011 - AutoIt - 6 Replies
Hi, ich hab hier mal nen code schnipel der nicht funktioniert.. Die error Erkennung... if StringInStr($oWebTcp.body, "Du kannst nicht weitermachen...") Then GUICtrlSetData($list1, "Login failed. Please fix"&" = "&$array&" ANR: ")
[Fragen zu] Gui Hide & Show / Admin Rights / Func in Func
12/12/2010 - AutoIt - 29 Replies
Hi Leute, wie ihr oben ja bereits lesen könnt habe ich ein paar Fragen. 1. Könnte mir jmd. eine Hotkeyset-Func schreiben, womit ich mit nur einer (!) Taste die GUI verstecken und wieder anzeigen lassen kann ? 2. Gibt es etwas, dass dem gescripteten Tool von selbst Adminrechte verschafft? Ich rede NICHT von RequireAdmin, da muss man ja Administrator des PCs sein. €: Kann "#requireadmin" rausgezögert werden ?! Ich möchte, dass das passiert, aber erst, wenn ich einen Knopf gedrückt...



All times are GMT +2. The time now is 07:31.


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.