/ / create "no-op" -Version einer DLL? - C ++, Windows, Sicherheit, DLL

eine "no-op" -Version einer DLL erstellen? - C ++, Windows, Sicherheit, DLL

Angenommen, ich habe eine Anwendungs-App.exe, die einen Lade-Zeit-Link zu d.dll, die wiederum eine Lade-Zeit-Link zu dangerous.dll führt. Angenommen, die Datei dangerous.dll weist verschiedene Sicherheitslücken auf. Nehmen Sie außerdem an, dass keine der Funktionen in der Datei "dangerous.dll" von "app.exe" benötigt wird, und app.exe keine Aufrufe von "d.dll" ausführt, die die Verwendung von Funktionen in der Datei "dangerous.dll" erfordern.

Ich möchte die App ohne Gefahr verbreiten.dll, und idealerweise mit minimalen oder keinen Änderungen an app.exe oder d.dll. Wenn ich nur gefährliche.dll entferne, erhalte ich einen Ladefehler beim Starten von app.exe, weil es d.ll lädt und d.dll versucht, dangerous.dll zu laden, was fehlschlägt.

Option 1

Ich könnte eine "no-op" Version von gefährlich machen.DLL, die alle die gleichen Exportfunktionssignaturen wie dangerous.dll zur Verfügung stellte, aber keinen Op-Code für alle exportierten Funktionen selbst hatte. Das ist vielleicht nicht so schlimm. Ich frage mich, ob es bereits ein Tool gibt, das eine .dll-Datei aufnehmen und eine andere .dll-Datei ausgeben kann, die dieselben Exportfunktionen hat, aber solche, die nichts tun? Dies hat den Nachteil, dass meine No-Op-Version von dangerous.dll für den Benutzer immer noch sichtbar ist und es so aussehen würde, als hätte meine Anwendung immer noch die Sicherheitslücken in der Datei dangerous.dll.

Option 2

Ich frage mich, ob es einen Weg gibt, ohne d zu bauen.dll aus der Quelle, ich könnte d.dll hacken, so dass es nicht versucht, eine Ladezeit von gefährlichen.dll laden. Es wäre in Ordnung, wenn dies dazu führen würde, dass Aufrufe von d.dll zu einer dangerous.dll-Funktion fehlschlagen / abstürzen, da, wie ich schon sagte, app.exe nicht dazu führen sollte, dass d.ll irgendeine der Funktionen in dangerous.dll verwendet.

Antworten:

1 für die Antwort № 1

Wenn Sie die Quelle für d.dll haben, dann reparieren Sie es einfach, um dangerous.dll nicht zu laden / zu benutzen.

Wenn Sie die Quelle nicht haben, erstellen Sie einfach eine dangerous.dll mit Stub-Implementierungen für alle exportierten Funktionen.

Fall abgeschlossen. Machen Sie weiter und verbringen Sie Ihre Zeit mit produktiverem Zeug.