Ja, du musst per CreateRemoteThread die DllMain ausführen. Das Offset dazu findest du in den ImageNtHeaders unter dem Namen
EntryPoint. Prototyp ist folgender:
https://msdn.microsoft.com/en-us/lib...=vs.85%29.aspx
Beim Laden nimmst du DLL_PROCESS_ATTACH als fdwReason und beim Entladen DLL_PROCESS_DETACH. Korrekterweise müsste man auch noch DLL_THREAD_ATTACH und DLL_THREAD_DETACH implementieren (ist zumindest bei manchen DLLs erforderlich, die manuell TLS benutzen), aber dazu benötigt man entweder Hooks in der
DLL selbst oder eine zweite "normal" geladene
DLL, mit der man die Events weiterleiten kann. Dürfte in den meisten Fällen allerdings nicht nötig sein, also probier es ruhig erstmal ohne.
Brechis Code sollte ja irgendwo auch die WinMain (ebenfalls über das EntryPoint Feld referenziert) ausführen (welche allerdings einen anderen
Prototypen hat!). Die Stelle änderst du so um, dass sie der DllMain mit passendem Parameter entspricht.