Wir möchten Aufrufe an LoadLibrary haken, um Assemblys herunterzuladen, die nicht gefunden werden. Wir haben einen Handler für ResolveAssembly, der die verwalteten Assemblys behandelt, aber wir müssen auch nicht verwaltete Assemblys behandeln.Hook-LoadLibrary-Aufruf von verwaltetem Code
Wir haben versucht, LoadLibrary-Aufrufe durch erneutes Schreiben der Importtabelle über die in "Programmieren von Anwendungen für Microsoft Windows" angegebenen Techniken zu haken, aber wenn WriteProcessMemory() aufgerufen wird, erhalten wir einen Fehler (998). (Ja, wir laufen mit erhöhten Rechten)
Hat es jemand geschafft, die Import-Tabelle neu zu schreiben, während die CLR geladen ist? Kann mir jemand in die richtige Richtung zeigen?
Update: Wir behoben das Problem verweigert, aber jetzt, wenn wir die Imports-Tabelle einer gemischten Assembly iterieren (verwaltet + nicht verwaltet), der einzige Eintrag, den wir finden, ist mscoree.dll. Weiß jemand, wie man die einheimischen Importe findet? (wir arbeiten in C++/CLI).
... oder Sie könnten eine Open-Source-lib wie N-CodeHook (http://newgre.net/ncodehook), die auch 64-Bit verwenden Unterstützung hat (Sie haben um X64 zu bezahlen, wenn man Umwege benutzt) – newgre
@jn: selbst fördernd :) Ich werde ncodehook versuchen das nächste Mal muss ich mit Code-Injektion beschäftigen, obwohl ich zugeben muss, dass Umwege für mich recht gut funktioniert hat. Haben Sie darüber nachgedacht, die API zu spiegeln? damit bestehende Umwege Apps problemlos migriert werden können? –
Bekam mich ;-) Eigentlich nein, daran habe ich nicht gedacht. Wird es auf meine Todo-Liste setzen. thx – newgre