Quote:
Originally Posted by I3iLLiG
würd emich trotzdem über ein example freuen - in autoit^^
|
Da gibts nur ein Problem, du kannst in Autoit zwar einen DLL Injector schreiben, aber leider keine dll.
Ich habe Autoit nur periphere verwendet als ich von Bots etc noch keine Ahnung hatte und Autoit praktisch fand um schnell erste ergebnisse zu erzielen, aber für mehr als Pixel oder einfache MemoryReader Bots taugt Autoit nicht, sobald man etwas komplexere Projekte angeht stößt man mit Autoit schnell an die Grenzen des sinnvoll Machbaren.
Zur DLL Injection kann ich dir dennoch ein paar Sachen erklären, der ZielProcess wird dabei meistens gezwungen die LoadLibrary Funktion auf deine DLL auf zu rufen, da gibt es verschiedene Methoden, die verbreiteteste ist es per CreateRemoteThread im ZielProcess die LoadLibrary Funktion aus zu führen, dass führt erstmal dazu das in dem neuen Thread der Code der in der DLLMain funktion der DLL steht ausgeführt wird und die gesammte DLL wird in den Addressraum unseres ZielProzesses geladen.
Am einfachsten lässt sich eine solche DLL in c++ schreiben, .NET Sprachen kann man hier nicht verwenden.
Eine einfache DLL kann so aussehen
Code:
#inlucde <windows.h>
BOOL APIENTRY DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved)
{
MessageBoxA("BLA","BLA",MB_OK);
return TRUE;
}
wenn man diesen code zu einer DLL kompiliert und in einen Prozess Injected dann öffnet sich eine MessageBox mit einem OK Button.
Bevor man jedoch mit DLL Injection richtig was anfangen kann braucht man umfassende Kenntnisse in C++ und x86 asm zu können schadet auch nicht.
Des weiteren muss man sich stark mit der WindowsApi und dem "SpeicherManagement" von Windows beschäftigen, wichtig sind hierbei vorallem debug Funktionen und Rechte und Speicher Zugriffs Rechte, dann muss man sich noch über BinaryModifikations und FunktionHooking schlau machen, denn das braucht man für die verschiedensten Sachen, zum Beispiel D3D Hooks mit denen man in einem Spiel Zeichnen kann(Ingame Menue).