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