2009-07-15 12 views
6

Ich habe die EXE für das Projekt im arbeiten auf mit einer digitalen Signatur signiert, was bedeutet, wenn es nach Administratorrechten fragt, zeigt es den Firmennamen. Dies funktioniert sehr gut, aber wenn Sie die exe ändern, wird es immer noch funktionieren und stattdessen unbekannt zeigen.Digitale Signatur programmgesteuert prüfen

Gibt es eine Möglichkeit, die digitale Signatur zu überprüfen, um festzustellen, ob sie gültig ist, wenn Sie die Exe ausführen, um zu vermeiden, dass modifizierte Versionen ausgeführt werden?

Visual Studio 2008 windows 7

Antwort

8

Here ist ein Beispielprogramm (es verwendet WinVerifyTrust Funktion), die Signatur überprüft, aber ich bin nicht sicher, dass es unter Windows funktioniert 7. Sie sollten es versuchen.

+2

WinTrustVerify ist der Aufruf zu machen. Es wird Ihnen sagen, dass die Binärdatei mit dem Code signiert wurde. Wenn Sie sicherstellen müssen, dass es mit einem bestimmten Zertifikat (z. B. Ihrer Firma) signiert wurde, müssen Sie CertVerifyCertificateChainPolicy aufrufen, um es zu validieren (möglicherweise in einer Schleife). – selbie

0

Wenn Sie bereits eine UAC benötigen, wäre es nicht ausreichend, die GPO-Option "Nur ausführbare Dateien, die signiert und validiert sind" unter "Computerkonfiguration \ Windows-Einstellungen \ Lokale Richtlinien \ Sicherheitsoptionen" festzulegen? Es gibt auch eine "Use Certificate Rules on Windows Executables for Software Restriction Policies" Einstellung, die nützlich sein könnte.

Diese Einstellungen sind besser, als zu versuchen, von Ihrer eigenen Anwendung aus zu überprüfen, weil der ganze Punkt ist, dass Sie sich nicht mehr vertrauen können, wenn Ihre Binärdatei geändert wird.

+0

Dies wird auf Endbenutzer Comps installiert werden, so dass ich diese Option nicht einstellen kann. Ich bin mehr besorgt über Korruption als "Hacker". – Lodle

+0

Ok, war nicht klar aus deiner Frage, ob du Angst vor Murphy oder Machiavelli hast. – MSalters

Verwandte Themen