Einzelnen Beitrag anzeigen

Benutzerbild von Assarbad
Assarbad

Registriert seit: 8. Okt 2010
Ort: Frankfurt am Main
1.234 Beiträge
 
#6

AW: Warum ist eine zwittrige EXE möglich?

  Alt 26. Okt 2010, 23:21
Mich würde interessieren, muss ich auf Einschränkungen gefasst sein?
Absolut. Ich bin damals darauf ausgewichen (siehe Funktion putbinresto) die DLLs in die EXE zu packen und zu extrahieren. Die Methode stammt angeblich ursprünglich von OSR und wurde von einem der OSR-Leute an Mark Russinovich verklickert, dessen Programme ich wiederum als Vorbild nahm um die Funktionalität hinzubekommen.

Nicht verwechseln: eine EXE kann logischerweise auch Funktionen exportieren (BCB6 hatte das sehr ausführlich, so ausführlich daß die Größe tierisch beeinflußt wurde). Das macht aus der EXE aber noch keine DLL.

Was du machst ist nur, daß du dein Instanzenhandle benutzt um GetProcAddress anzuweisen eine Funktion in der Exporttabelle der PE-Datei im Speicher auszulesen. Kann man notfalls auch manuell machen. Die PE-Datei ist aber dennoch eine EXE und keine DLL.

Meines Wissens nach dürfte es nahezu unmöglich sein einen echten "Zwitter" hinzubekommen. Mit Schummeln geht vielleicht was, aber dazu müßte die EXE wohl mindestens noch ein weiteres Mal in den Prozeßraum gemappt werden. Einen Vorteil bietet das nicht. Abgesehen davon bezweifele ich, daß diese "DLL" dann auch in andere Prozesse geladen wird, was der eigentliche Sinn der Übung im Rahmen meines Tutorials war.
Oliver
"... aber vertrauen Sie uns, die Physik stimmt." (Prof. Harald Lesch)
  Mit Zitat antworten Zitat