Ich hatte letztens ein Tutorial im Internet gefunden, in dem beschrieben war, wie man Funktionen in einem Spiel oder Programm aufruft ohne eine DLL injection. Hat da vielleicht jemand eine ahnung von, ein tutorial oa.
Ist das überhaupt möglich oder war das Fake?..
Kommt drauf an. Wenn die Funktionen durch ein Event ausgelöst werden, kann man sie dadurch aufrufen, dass man das Event simuliert. Wird sicherlich passende Funktionen aus der WinAPI geben.
Anders kann ich mir das schlecht vorstellen.
geht nur, wenn sie höchstens einen parameter hat, ansonsten musst du den call und die pushes selbst schreiben und den remote thread erstellen
Um mehrere Parameter zu übergeben kann man einfach die Parameter in ein Array schreiben und beim CreateRemoteThread aufruf die Adresse des Arrays übergeben.
Ähm nö, dann wird ja nur die Adresse des Arrays übergeben.
Sehen wir uns mal folgendes Beispiel an:
Code:
int somefunc(int x, int y, int z)
{
return x+y*z;
}
Würde man nun CreateRemote mit einem Array aufrufen, würde es intern ungefähr so ablaufen:
Code:
int ArrayXYZ[3] = { 1, 2, 3 }; //das sei jetzt mal nicht statisch sondern dynamisch alloziiert
DWORD CallThreadEntryPoint( LPTHREADSTART_ROUTINE ThreadAddress, LPVOID param)
{
return ThreadAddress(param);
}
CallThreadEntryPoint(somefunc, ArrayXYZ); // ThreadAddress(ArrayXYZ) != ThreadAddress(ArrayXYZ[0], ArrayXYZ[1], ArrayXYZ[2]) da ja nur die Adresse, nicht aber der Inhalt des Arrays übergeben wird.
somefunc würde hier also falsche stackwerte nutzen ;O
Um mehrere Parameter zu übergeben kann man einfach die Parameter in ein Array schreiben und beim CreateRemoteThread aufruf die Adresse des Arrays übergeben.
My-Prototyp(Example):
Code:
bool __cdecl Bla(int* pI, int i, char* test, int len)
Ja, erstell mal dein Array :-/
EDIT: Definitiv zu lahm und nicht multitasking-fähig
Ähm nö, dann wird ja nur die Adresse des Arrays übergeben.
Sehen wir uns mal folgendes Beispiel an:
Code:
int somefunc(int x, int y, int z)
{
return x+y*z;
}
Würde man nun CreateRemote mit einem Array aufrufen, würde es intern ungefähr so ablaufen:
Code:
int ArrayXYZ[3] = { 1, 2, 3 }; //das sei jetzt mal nicht statisch sondern dynamisch alloziiert
DWORD CallThreadEntryPoint( LPTHREADSTART_ROUTINE ThreadAddress, LPVOID param)
{
return ThreadAddress(param);
}
CallThreadEntryPoint(somefunc, ArrayXYZ); // ThreadAddress(ArrayXYZ) != ThreadAddress(ArrayXYZ[0], ArrayXYZ[1], ArrayXYZ[2]) da ja nur die Adresse, nicht aber der Inhalt des Arrays übergeben wird.
somefunc würde hier also falsche stackwerte nutzen ;O
Ich hab im I-net aber schon öfters gelesen das man sie in einem Array ode struktur übergeben kann. Ich selbst injektiere für sowas einfach eine Dll von daher hab ich das selbst noch nie ausprobiert.
Hab auch gerade nochmal nen bisschen im web nachgeschaut, ansich geht es wohl schon aber nur mit erheblich mehraufwand.
Ein weiteres Problem bestehst darin das Öfters ein bestimmter Threadcontext für eine Funktion von Nöten ist, oder die Funktionen schlicht nicht Threadsicher sind, also kommt man um einen Detour an irgendeiner stelle nicht herum und das geht nunmal am einfachsten mit Dllinjection.
Es ist natürlich möglich mit Codeinjektion und Interprocesscomunication zu arbeiten, allerdings ist das absolut blödsinniger Mehraufwand, der im übrigen nicht mehr Sicherheit bietet als das sogenannte Manualmapping, bei dem die Dll nicht über die LoadLibrary API in den Prozess geladen wird, so dass bestimmte Strukturen die der WindowsAPI Auskunft über die DLL geben nicht erstellt werden.
[Release]duffbier`s D3D NoMenu Base [D3D Funktionen/Normale Funktionen] 06/01/2011 - WarRock Hacks, Bots, Cheats & Exploits - 15 Replies Hey Com.
Ich hab mich entschieden meine D3D NoMenu Base zu Releasen
In dieser kannst du normale Funktionen sowie D3D Funktionen adden
Screens:
http://img64.imageshack.us/img64/4444/screeenl.jp g
URL auslesen und aufrufen 03/13/2011 - AutoIt - 2 Replies Hallo,
In ein Inputfeld kann man eine URL eingeben und wenn man auf den Button LOS! drückt soll er sie aufrufen, aber es passiert nichts.
Das Inputfeld:
$URL1 = GUICtrlCreateInput("", 32, 50, 200, 21)
Der Button:
$Button10 = GUICtrlCreateButton("LOS!", 250, 50)
In der While Schleife:
[VC++] Formular in Dll aufrufen 06/14/2009 - C/C++ - 9 Replies Hi,
ich habe vor kurzem ein wenig mit C++ angefangen. Nun bin ich auf ein Problem gestoßen, bei dem mir auch Google nicht weiterhilft (wahrscheinlich benutze ich einfach nur die falschen Suchbegriffe).
Ich will eine Dll in einen anderen Prozess injecten und diese dann ein Formular öffnen lassen. In Delphi habe ich das mit folgendem Code hinbekommen:
begin
if appHandle = 0 then apphandle := GetActiveWindow;
Application.Handle := appHandle;
try
Form1 :=...
[Help] Items aufrufen ? 09/09/2008 - Flyff Private Server - 2 Replies Hay,
habe mir nun paar items und mobs in die datenbank eingefügt.
aber wie rufe ich sie ingame ab ?
also das ich die suits und so bekommen ??
help pls !