Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > .NET Languages
You last visited: Today at 21:10

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

Advertisement



[C#]Dll Injection

Discussion on [C#]Dll Injection within the .NET Languages forum part of the Coders Den category.

Reply
 
Old   #1
 
BlackWu's Avatar
 
elite*gold: 4
Join Date: Nov 2008
Posts: 1,189
Received Thanks: 395
[C#]Dll Injection

Hallo Leute,

ich möchte einen Dll Injector in C# schreiben.
Eigentlich ist alles andere fertig bis auf das wichtigste: den Teil des Programms der die Dll injected.
Wie funktioniert eine Injection in C#?
Habe in google gesucht aber nichts gefunden.

Mfg BlackWu
BlackWu is offline  
Old 06/26/2010, 20:07   #2
 
elite*gold: 0
Join Date: Mar 2008
Posts: 747
Received Thanks: 245
Lass mich raten du hast bis jetzt nicht viel mehr gemacht als eine Oberfläche zusammengestellt.

Es gibt mehrere möglichkeiten eine Dll zu injectieren. Die meisten injectoren funktionieren so das sie eine funktion die eine Dll lädt in den Prozessspeicher des opfer pogramms schreiben und diese dort zum ausführen bringen.

Da du aber sprache verwendest die bytecode erzeugt und die opfer pogramme warscheinlich aus maschienencode bestehen, wird man das mit c# nicht alleine auf diese art realiesieren können.
Akorn is offline  
Thanks
1 User
Old 06/26/2010, 20:14   #3
 
BlackWu's Avatar
 
elite*gold: 4
Join Date: Nov 2008
Posts: 1,189
Received Thanks: 395
Quote:
Originally Posted by Akorn View Post
Lass mich raten du hast bis jetzt nicht viel mehr gemacht als eine Oberfläche zusammengestellt.

Es gibt mehrere möglichkeiten eine Dll zu injectieren. Die meisten injectoren funktionieren so das sie eine funktion die eine Dll lädt in den Prozessspeicher des opfer pogramms schreiben und diese dort zum ausführen bringen.

Da du aber sprache verwendest die bytecode erzeugt und die opfer pogramme warscheinlich aus maschienencode bestehen, wird man das mit c# nicht alleine auf diese art realiesieren können.
Richtig geraten!
Danke für die Hilfe, aber kennst du vieleicht ein Tutorial wo genauer auf Code injection mit C\C++ oä. eingegangen wird?

BlackWu is offline  
Old 06/26/2010, 20:59   #4
 
elite*gold: 0
Join Date: May 2010
Posts: 793
Received Thanks: 268
jo, du musst(so hab ich es zumindest gemacht) ein e C++ Dll schreiben, und eine C++ exe die die Dlll injectet, vielicht kann man auch die Dll direkt von C# aus injecten, mir ist das allerdings nicht so gelungen.
nkkk is offline  
Old 06/26/2010, 21:03   #5
 
elite*gold: 20
Join Date: Sep 2006
Posts: 1,100
Received Thanks: 184
Einen Injektor kann man ohne Probleme in .NET programmieren, nur die DLL die du injizierst muss nativ sein, eine .NET assembly wird nicht funktionieren.

Die DLL Injektion geht ziemlich einfach, du holst dir mit system.Diagnostic.Process.EnterDebugMode(); erstmal Debug Privilegien, dann musst du dir ein Prozess Handle, mit den richtigen rechten zu dem Prozess in den du die DLL injizieren möchtest, holen, um danach in diesem Prozess etwas Speicher zu allozieren in den du dann den kompletten Pfad der DLL schreibst, dann rufst du die Windows Api CreateRemoteThread auf die Adresse von LoadLibrary auf und übergibst als lpParamter die Adresse des Strings mit dem DLL Pfad.

Alle Informationen wie genau man die Windows Apis verwendet findest du auf MSDN.com.

Edit: Die API für das Allozieren von Speicher in einem fremden Prozess heißt VirtualAllocEx
Auf MSDN steht auch immer wie man die Windows Api Funktionen in den .NET Sprachen richtig benutzt.
Bot_interesierter is offline  
Thanks
2 Users
Old 06/26/2010, 21:39   #6
 
elite*gold: 0
Join Date: Mar 2008
Posts: 747
Received Thanks: 245
hier mal nen link zu einem tutorial wie man es in C macht .

Quote:
Originally Posted by Bot_interesierter View Post
Einen Injektor kann man ohne Probleme in .NET programmieren, nur die DLL die du injizierst muss nativ sein, eine .NET assembly wird nicht funktionieren.

Die DLL Injektion geht ziemlich einfach, du holst dir mit system.Diagnostic.Process.EnterDebugMode(); erstmal Debug Privilegien, dann musst du dir ein Prozess Handle, mit den richtigen rechten zu dem Prozess in den du die DLL injizieren möchtest, holen, um danach in diesem Prozess etwas Speicher zu allozieren in den du dann den kompletten Pfad der DLL schreibst, dann rufst du die Windows Api CreateRemoteThread auf die Adresse von LoadLibrary auf und übergibst als lpParamter die Adresse des Strings mit dem DLL Pfad.
Aber LoadLibrary muss ja innerhalb des opferpogramms aufgerufen werden.
Also musste man doch Loadlibrary in eine funktion packen und diese in das opferpogramm rein schreiben und diese funktion dann mittels CreateRemotetThread ausfuhren. Aber wen jetzt diese function die Loadlibrary beinhaltet in bytecode vorliegt dann bezweifel ich das man sie einfach mit CreateRemoteThread aufrufen kann.

EDIT:
Ich mein auch das in dem tutorial vom HABO das ich oben gelinkt habe irgendwo drin stand das man kein byte code verwenden darf.
Akorn is offline  
Thanks
1 User
Old 06/26/2010, 22:05   #7
 
BlackWu's Avatar
 
elite*gold: 4
Join Date: Nov 2008
Posts: 1,189
Received Thanks: 395
Vielen Dank für eure hilfe.

Mfg BlackWu
BlackWu is offline  
Old 06/26/2010, 22:10   #8
 
elite*gold: 20
Join Date: Sep 2006
Posts: 1,100
Received Thanks: 184
@Akorn
Man kann LoadLibrary direkt über CreateRemoteThread ausführen, es gibt keinen Grund irgendwelche Funktionen in den Speicher des Ziels zu schreiben, daher auch keine Probleme mit Bytecode, das Problem wäre allerdings auch zu umgehen mit einer unmanaged Funktion, damit kann man quasi nativen Code in C# schreiben, allerdings wird es etwas kompliziert diesen Code dann zu kopieren, einfach wäre es direkt Shell Code also assembler zu schreiben und diesen zu injizieren.
Aber wie gesagt das alles ist unnötig da man LoadLibrary mit CreateRemoteThread ausführen kann.
Bot_interesierter is offline  
Old 06/28/2010, 18:15   #9
 
elite*gold: 0
Join Date: Apr 2006
Posts: 6,597
Received Thanks: 1,830


sollte dir weiter helfen
Medix is offline  
Old 08/04/2010, 23:22   #10
 
xenex(toemsel)'s Avatar
 
elite*gold: 0
Join Date: Jan 2010
Posts: 241
Received Thanks: 1,180
xenex(toemsel) is offline  
Thanks
2 Users
Old 08/05/2010, 01:06   #11
 
elite*gold: 0
Join Date: Jul 2010
Posts: 388
Received Thanks: 196
@Bot_interesierter: Mal ne OT Frage, kannst du mir mal die Story hinter dem retardierten Nickname berichten?
SmackJew is offline  
Old 08/05/2010, 13:01   #12
 
elite*gold: 20
Join Date: Sep 2006
Posts: 1,100
Received Thanks: 184
Nun das war so, also da war ein Nickname Feld und dort musste man etwas eintragen =)

Damit der Beitrag nicht ganz OT ist:
@xenex
Dieses CLR Hosting ist nur was für Leute die PInvoke lieben
Bot_interesierter is offline  
Reply


Similar Threads Similar Threads
Injection How To
03/05/2011 - General Gaming Discussion - 17 Replies
1.) Wo kriege ich Injection her? -> http://injection.sourceforge.net/ 2.) Knallt euch dann alles in ein Verzeichnis, besorgt euch dann einne der supporteten Clients (steht in der ilpatch.cfg) 3.) Decrypted diesen Client mit UORice -> http://stud4.tuwien.ac.at/~e9425109/UO_RICE.htm
Sql injection
01/19/2010 - Kal Online - 34 Replies
Eine frage woher bekomme ich den Sql Injection + tut würde mich freuen wenn einer mir weiter hilft danke
SQL injection.
02/12/2008 - Zero - 0 Replies
Hi all, This is a curious topic because i have found numerous occasions where this has happened on the chinese version of the game. Also i was wondering if anyone knows of any occasions where it has been done on the English servers? I've been researching into this and apparently it requires tracing the packets back to the DB server then using a program (once you have the address) to inject your own SQL code into the database indefinitely editing your character to what ever your choosing...
DLL Injection
06/12/2007 - Planetside - 2 Replies
???



All times are GMT +1. The time now is 21:11.


Powered by vBulletin®
Copyright ©2000 - 2025, 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 ©2025 elitepvpers All Rights Reserved.