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
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.
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 :/
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.
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...
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.
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.
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.
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
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.
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?
[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...