Thema: Delphi Inject DLL from Memory

Einzelnen Beitrag anzeigen

brechi

Registriert seit: 30. Jan 2004
823 Beiträge
 
#8

Re: Inject DLL from Memory

  Alt 15. Sep 2008, 07:02
die Idee ist soweit richtig,
allersings ist imageSize <> stream.size
die Imagebase steht im PE-header der dll!

CreateRemoteThread muss beim EntryPoints anfangen nicht bei der dllbase (steht ebenfalls im PE header).

zu beidem sollte es von mir funktionen geben um es auszulesen

z.B. gibt @DllMain := Pointer(INH^.OptionalHeader.AddressOfEntryPoint+DW ord(pAll)); den Entry Point an
statt AddressOfEntryPoint sollte es ein ImageSize geben, welches du brauchst um die größe zu bestimmen

Scheib dafür am besten ReadLibrary um und übergib der Funktion das Prozesshandle

das sollte dann hinhauen wenn du nach

INH := pointer(cardinal(pFileMem)+cardinal(IDH^._lfanew)) ;

mitels INH^. Size und Entry bestimmt und dann erst den Speicher aus dem Prozess holst (Size!) und bei @dllmain dann den Thread (umgerechnet auf den Zielprozess startest)

Eventl!! (aber nur eventl) kann ich wenn ich zeit habe das heute abend mal umschreiben
  Mit Zitat antworten Zitat