Schutz vor DLL-Injektion?
-
Hi,
ich habe gerade ein relativ bekanntes Online Spiel geknackt und einen kleinen Bot dafür programmiert. War eigentlich relativ einfach.
Der Bot wird als dll direkt in den Prozess "gespritzt".Dabei kam mir der Gedanke ob sich sowas verhindern lässt? Also kann man sein Programm vor Dll Injection schützen? Oder zumindest diese Erkennen?
MfG
Scarabol
-
Scarabol schrieb:
Oder zumindest diese Erkennen?
Ja und Nein. Es kommt darauf an, ob der "Angreifer" die Methode zur Überprüfung kennt oder nicht
-
Scarabol schrieb:
Hi,
ich habe gerade ein relativ bekanntes Online Spiel geknackt und einen kleinen Bot dafür programmiert. War eigentlich relativ einfach.
Der Bot wird als dll direkt in den Prozess "gespritzt".Hast du das selber gemacht oder im Netz ne Anleitung gefunden?
Dabei kam mir der Gedanke ob sich sowas verhindern lässt? Also kann man sein Programm vor Dll Injection schützen? Oder zumindest diese Erkennen?
Wenn du wirklich Anhung hättest müsstest du die Fragen doch selber beantworten könen.
-
Hook
-
Ich habe Winject benutzt, um die Dll in den Prozess zu laden. Bin aber gerade dabei mich über die DLL Injektion zu informieren.
MfG
Scarabol
-
Ich hab hier 2 Methoden gefunden, welche davon ist die bessere?
Zur Auswahl steht:
1. The CreateRemoteThread method
2. The SetWindowsHookEx methodhttp://www.edgeofnowhere.cc/viewtopic.php?p=2483118
MfG
Scarabol
-
Die besten mir bekannten Erklärungen zu dem Thema findest du wohl hier:
Windows Via C/C++ | ISBN: 9780735624245
oder auch in einer der älteren Auflagen. Insbesondere werden auch die Vor- und Nachteile der verschiedenen Methoden erklärt.
-
Theoretisch kann sich ein Prozess gegen Deine spezielle Injektionsmethode schützen - gegen allgemeine Ausführung fremden Codes innerhalb eines bestimmtes Zieleprozesses gibt es aber keine Schutz.
Viel eher ist es wichtig, dass die Binary und insb. die Laufzeitsemantik der Anwendung soweit obfuscated ist, dass es für Dilettanten eben nicht so einfach ist, entsprechende Bots zu schreiben.
-
LoadLibraryA und LoadLibraryW hooken wäre ein Anfang.
Die Module-Liste iterieren und nach fremden Modulen suchen hilft auch.
Speicherregionen hashen und nach blacklisted Code suchen ist auch eine Möglichkeit (NtQueryVirtualMemory)Vergiss aber nicht dass DLL-Injection eine gängige Praxis ist und auch viele "legale" Programme es nutzen.
-
Rootkits | ISBN: 0321294319
sowas gibts dann natürlich auch zum lesen