|
You last visited: Today at 07:31
Advertisement
C++ Call Game Func
Discussion on C++ Call Game Func within the C/C++ forum part of the Coders Den category.
10/20/2013, 05:34
|
#1
|
elite*gold: 220
Join Date: Jun 2007
Posts: 3,768
Received Thanks: 1,126
|
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
|
|
|
10/20/2013, 11:27
|
#2
|
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
|
|
|
10/20/2013, 11:36
|
#3
|
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.
|
|
|
10/20/2013, 18:53
|
#4
|
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 :/
|
|
|
10/21/2013, 18:25
|
#5
|
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
|
|
|
10/22/2013, 13:28
|
#6
|
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 :/
|
|
|
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.
|
|
|
10/25/2013, 12:41
|
#8
|
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...
|
|
|
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.
|
|
|
10/25/2013, 13:57
|
#10
|
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.
|
|
|
10/25/2013, 18:33
|
#11
|
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.
|
|
|
10/26/2013, 00:03
|
#12
|
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.
|
|
|
10/26/2013, 09:37
|
#13
|
elite*gold: 93616
Join Date: Apr 2010
Posts: 13,737
Received Thanks: 14,990
|
Quote:
Originally Posted by Master674b
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
|
|
|
10/26/2013, 13:59
|
#14
|
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.
|
|
|
10/26/2013, 17:02
|
#15
|
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?
|
|
|
|
|
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.
|
|