Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > General Coding
You last visited: Today at 09:36

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

Advertisement



Funktionen ohne DLL aufrufen.

Discussion on Funktionen ohne DLL aufrufen. within the General Coding forum part of the Coders Den category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Aug 2009
Posts: 127
Received Thanks: 27
Funktionen ohne DLL aufrufen.

Moin.

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?..

Schönen abend noch.
TheRedVex
theredvex is offline  
Old 06/05/2011, 23:15   #2
 
xNopex's Avatar
 
elite*gold: 0
Join Date: May 2009
Posts: 827
Received Thanks: 471
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.
xNopex is offline  
Old 06/06/2011, 02:15   #3


 
MrSm!th's Avatar
 
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,913
Received Thanks: 25,413
CreateRemoteThread + inline asm:

call zur funktion in asm schreiben
call in den prozess schreiben
CreateRemoteThread

ist aber deutlich mehr arbeit o.ô
MrSm!th is offline  
Old 06/06/2011, 12:51   #4
 
elite*gold: 0
Join Date: Mar 2008
Posts: 747
Received Thanks: 245
Quote:
Originally Posted by MrSm!th View Post
CreateRemoteThread + inline asm:

call zur funktion in asm schreiben
call in den prozess schreiben
CreateRemoteThread

ist aber deutlich mehr arbeit o.ô
Die Funktion des Spiels direkt mit CreateRemoteThread aufrufen!
Akorn is offline  
Old 06/06/2011, 13:11   #5


 
MrSm!th's Avatar
 
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,913
Received Thanks: 25,413
geht nur, wenn sie höchstens einen parameter hat, ansonsten musst du den call und die pushes selbst schreiben und den remote thread erstellen
MrSm!th is offline  
Old 06/06/2011, 21:29   #6
 
elite*gold: 0
Join Date: Mar 2008
Posts: 747
Received Thanks: 245
Quote:
Originally Posted by MrSm!th View Post
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.
Akorn is offline  
Old 06/06/2011, 21:48   #7


 
MrSm!th's Avatar
 
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,913
Received Thanks: 25,413
Ä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
MrSm!th is offline  
Old 06/06/2011, 21:53   #8
 
xNopex's Avatar
 
elite*gold: 0
Join Date: May 2009
Posts: 827
Received Thanks: 471
Quote:
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
xNopex is offline  
Old 06/06/2011, 22:40   #9
 
elite*gold: 0
Join Date: Mar 2008
Posts: 747
Received Thanks: 245
Quote:
Originally Posted by MrSm!th View Post
Ä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.
Akorn is offline  
Old 06/06/2011, 22:45   #10
 
xNopex's Avatar
 
elite*gold: 0
Join Date: May 2009
Posts: 827
Received Thanks: 471
Natürlich kann man einen Pointer auf eine Strukur oder ein Array an einen Thread übergeben. Siehe den Thread-Prototyp:

Code:
DWORD WINAPI Thread(LPVOID)
Eine beliebige Funktion hat aber leider nur sehr selten den gleichen Protoyp, weswegen das so nicht funktionieren wird.
xNopex is offline  
Old 06/11/2011, 21:24   #11
 
elite*gold: 20
Join Date: Sep 2006
Posts: 1,100
Received Thanks: 184
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.
Bot_interesierter is offline  
Old 06/13/2011, 18:13   #12
 
elite*gold: 0
Join Date: Apr 2006
Posts: 6,597
Received Thanks: 1,830
Machs mit dll injection. Macht die dinge um einiges leichter.

Dll injection heißt ja nicht gleich ,dass du gebannt wirst.
Medix is offline  
Reply


Similar Threads Similar Threads
[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:
°*NEW Funktionen*° th3man0f22 NO MENÜ Public Hack°*NEW Funktionen*° 06.09.2010
09/06/2010 - WarRock Hacks, Bots, Cheats & Exploits - 2 Replies
Funktionen: PLAYERPOINTER ¤SERVERPOINTER (Immer an)¤ ¤NOSPREAD (Numm-Pad 7)¤ ¤FULLBRIGHT (Numm-Pad 5)¤ ¤EXTRAAMMO1 (Immer an)¤ ¤EXTRAAMMO2 (Immer an)¤ ¤SCOPE (Rechte Maustaste)¤ ¤FASTAMMO (Immer an)¤
[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 !



All times are GMT +2. The time now is 09:36.


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.