Frage

Treiber unter Windows sollte für die Codesignatur zu Microsoft unterzeichnet und eingereicht werden, und dies ist eine Voraussetzung für die 64-Bit-Systeme. Das Problem ist, dass, wenn Sie den Treiber aktualisieren haben, müssen Sie es erneut einreichen, einmal für jede Veröffentlichung.

Sie können eine Art Proxy oder Shim-Treiber zu bauen, so dass ich unterzeichnen und es nur einmal, und dann in einem separaten Modul meinen Code?

Natürlich kann ich nicht nur den Arbeits Code in einer DLL verschieben, als auch dynamisch geladene Module, um unterzeichnet werden muß, um in 64-Bit-Kernel-Modus ausgeführt wird. Was passiert, wenn ich meinen Code in einer RAW-Datei setzen, sie in den Speicher laden (mit Ausführungs-Flag zugewiesen aktiviert) und es dann ausführen? Andere Ideen?

War es hilfreich?

Lösung

Sie müssen keinen Treiber zu Microsoft einreichen. Sie haben Ihre Fahrer mit einem Cross-Unterzeichnung-Zertifikat zu unterzeichnen. Sie erhalten eine Nagschirm auf diese Weise bekommen, aber das ist nicht erlaubt nicht!

Es waren (sind), mehrere Versuche, genau das zu tun, was Sie tun wollen. Dies sind ‚kaum‘ toleriert, aber diese Fahrer kann jederzeit verboten werden. (Durch Ihre Unterschrift widerrufen)

Der Prozess ist sehr einfach:

  1. Laden Sie den signierten Treiber.
  2. Geben Sie einen IOControl, in dem Benutzer-Modus-Programme Speicher an den Kernel senden.
  3. Ändern Sie das Execute-Bit dieses Speichers, und rufen Sie einfach eine Adresse in diesem Speicher.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top