|
You last visited: Today at 21:10
Advertisement
[C#]Dll Injection
Discussion on [C#]Dll Injection within the .NET Languages forum part of the Coders Den category.
06/26/2010, 19:29
|
#1
|
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
|
|
|
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.
|
|
|
06/26/2010, 20:14
|
#3
|
elite*gold: 4
Join Date: Nov 2008
Posts: 1,189
Received Thanks: 395
|
Quote:
Originally Posted by Akorn
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?
|
|
|
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.
|
|
|
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.
|
|
|
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
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.
|
|
|
06/26/2010, 22:05
|
#7
|
elite*gold: 4
Join Date: Nov 2008
Posts: 1,189
Received Thanks: 395
|
Vielen Dank für eure hilfe.
Mfg BlackWu
|
|
|
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.
|
|
|
06/28/2010, 18:15
|
#9
|
elite*gold: 0
Join Date: Apr 2006
Posts: 6,597
Received Thanks: 1,830
|
sollte dir weiter helfen
|
|
|
08/04/2010, 23:22
|
#10
|
elite*gold: 0
Join Date: Jan 2010
Posts: 241
Received Thanks: 1,180
|
|
|
|
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?
|
|
|
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
|
|
|
 |
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.
|
|