hi,
ich möchte eine dll schreiben, die ich in andere prozesse "injecten" kann.
allerdings weiß ich im moment nicht, wie ich es anstelle, dass zb eine messagebox aufgeht, wenn diese injected wurde.
in c++ gibts sowas wie DLL_PROCESS_ATTACH etc. gibts sowas auch in c#? bzw wie mache ich das, dass die dll sofort nach dem injecten aufgerufen wird?
gruß
milkman
Schau dir mal das hier an:
http://www.codeproject.com/KB/cs/pluginsincsharp.aspx
Da werden auch DLL's in nen laufenden Prozess hinzugefügt.
Signatur.Text = "Greetz, Neals";
Hallo!
@Neals:
milkman meinte sicher etwas ganz anderes.
In dem von dir verlinkten Beispiel geht es um die dynamische Erweiterung eines bereits darauf ausgelegten Programms, während milkman eher eine Möglichkeit sucht, beliebige laufende Prozesse mit einer eigenen dll zu "infizieren", um z.B. bestimmte Aktionen zu überwachen bzw. umzuändern, z.B. das Erkennen von Zugriffen auf das Dateisystem, das Erstellen neuer Prozesse, ...
Ich arbeite selber ab und zu an so einer Lösung, um einen eigenen Deinstaller zu bauen.
Ich glaube, egrath hatte zu diesem Thema vor einiger Zeit einen sehr hilfreichen Beitrag geschrieben, einfach mal hier nach "Hooks" suchen.
EDIT: Nachtrag:
@milkman
In C# gibt es so etwas nicht, man muss zumindest einen Teil in C++ schreiben.
Nobody is perfect. I'm sad, i'm not nobody 🙁
hi, danke für deine antwort 🙂
wie macht man das dann am besten? bzw was muss/sollte ich alles in c++ schreiben?
Also wenn es sich um Prozesse von .net Programmen handelt, kannst ud das mit der Mono.Cecil Lib bewerkstelligen.
As a man thinketh in his heart, so he is.
Hallo,
das was Du suchst lässt sich mit der Win32 API Funktion "CreateRemoteThread" realisieren - such mal im Forum hier danach, da gibts was drüber.
Grüsse,
Egon
egrath's Blog: http://egonrath.eg.funpic.de/wordpress