Quote:
Originally Posted by Ende!
Ok, hast recht, an Shellcode hab ich jetzt nicht gedacht. Aber dafür muss er ja erstmal Assembler können oder sich von iwo einen passenden holen.
|
Um shellcode zu erzeugen muss man kein Assembler können. Man kann shellcode auch in anderen programmiersprachen machen.
Wo man Assembler für shellcode braucht ist wen man shellcode für Bufferoverflow exploits schreibt weil man nur mit assembler den code so optimieren kann das er z.b. keine null bytes enthalt was für einen solchen verwendungszweck wichtig ist.
Quote:
Quote:
|
Wie willst du denn mit einer Skriptsprache (wie AutoIT) Code basteln, den du dann in den Zielprozess injectest und der dann die DLL lädt?
|
Quote:
Originally Posted by rEdoX
Shellcode?
|
|
Genaugenommen beantwortet das ja nicht wirklich seine frage. Man kann zwar shelcode schreiben der eine DLL lädt und diesen mit AutoIt in einen anderen process injecten haber den shellcode selber kann man nicht in Autoit schreiben.
Und selbst wen man es so macht wär das eine schlechte art.
Den eigentlich schreibt eine DLL injector ja nicht nur die Funktion zum laden der DLL in den fremden prozess sondern auch noch eine structur in dem der Name und Pfad der Dll und ein zeiger auf funktion LoadLibrary steht(Je nachdem auch noch ein zeiger auf die funktion "GetProcAddress" und den Namen der funktion die aufgerufen werden soll die beiden funktionszeiger werden natürlich vor dem injecten Mittels GetProcAddress ermittelt).
Wen man das mittels shellcode macht müsste man die funktionszeiger und den Namen&Pfad der DLL hardcoden. Das würde heissen das man man immer nur die selbe DLL injecten kann und der Injector würde nur auf dem Windows laufen bei dem die funktionszeiger gültig sind und die zeiger würden bereits ungültig(bzw auf andere Addressen zeigen) wen ein anderes Service pack installiert ist als auf dem pc auf dem die Funktionsaddressen ermittelt wurden.