AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Wie kann man Manifeste für die Windows UAC signieren?
Thema durchsuchen
Ansicht
Themen-Optionen

Wie kann man Manifeste für die Windows UAC signieren?

Ein Thema von Exceeder · begonnen am 21. Apr 2009 · letzter Beitrag vom 22. Apr 2009
Antwort Antwort
Exceeder

Registriert seit: 29. Mai 2006
24 Beiträge
 
#1

Wie kann man Manifeste für die Windows UAC signieren?

  Alt 21. Apr 2009, 12:15
Hallo,

ich habe die UAC elevation für meine administrativen Programme nach der folgenden Anleitung umgesetzt:
http://www.delphipraxis.net/internal...t.php?t=130450

Wegen der fehlenden Signierung kommt der UAC Dialog im Modus "orange" mit der Meldung "Ein nicht identifiziertes Programm möchte auf den Computer zugreifen" daher. Schöner wäre es natürlich, wenn dort die "graue" Version auftauchen würde wo der Herausgeber des Programms eindeutig draus hervorgeht.

Ich habe bei meinen Google recherchen bereits die Erwähnung von "SignTool.exe", "MT.exe" und "Mage.exe" gefunden. Das sollen scheinbar alles MS Programme sein, welche für das erzeugen von Manifesten zuständig sind. Leider konnte ich noch nicht herausfinden, in welchen Paketen die Programme ausgeliefert werden bzw. welches denn nun das benötigte Programm ist.

Außerdem fehlt mir für eine erfolgreiche Signierung noch eine Zertifikatsdatei. Leider weiß ich ebenfalls nicht, woher ich diese bekommen kann.

Hat jemand eine Idee oder besser eine Anleitung parat, wo die Signierung der Manifest-Datei/eines Programm beschrieben wird?

Exceeder
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Wie kann man Manifeste für die Windows UAC signieren?

  Alt 21. Apr 2009, 12:22
Zitat von Exceeder:
Ich habe bei meinen Google recherchen bereits die Erwähnung von "SignTool.exe", "MT.exe" und "Mage.exe" gefunden. Das sollen scheinbar alles MS Programme sein, welche für das erzeugen von Manifesten zuständig sind. Leider konnte ich noch nicht herausfinden, in welchen Paketen die Programme ausgeliefert werden bzw. welches denn nun das benötigte Programm ist.
z.B. im SDK des Windows 2003 Servers. Download-URL müsstest du im MSDN selbst suchen.


Zitat von Exceeder:
Außerdem fehlt mir für eine erfolgreiche Signierung noch eine Zertifikatsdatei. Leider weiß ich ebenfalls nicht, woher ich diese bekommen kann.
Da heißt es Geld zahlen und bei üblichen Verdächtigen wie Verisign ein Zertifikat für 3 Jahre kaufen.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Wie kann man Manifeste für die Windows UAC signieren?

  Alt 21. Apr 2009, 12:49
Schau dir doch mal das Tutorial vom Chef an.
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  Mit Zitat antworten Zitat
Exceeder

Registriert seit: 29. Mai 2006
24 Beiträge
 
#4

Re: Wie kann man Manifeste für die Windows UAC signieren?

  Alt 21. Apr 2009, 12:59
Hi,

danke. Habe mir jetzt das SDK für Windows Vista runtergeladen. Da sind die von mir genannten Tools alle bei. Man braucht sich aber nur die Microsoft Windows Development Tools installieren, den Rest kann man getrost weglassen, sofern man es nicht benötigt. Habe davon auch nur die Win32 Version installiert.

Das Tutorial hilft mir sehr weiter. Habe ich bei meiner Suche wohl irgendwie übersehen. Danke auch hierfür.

Exceeder
  Mit Zitat antworten Zitat
SirTwist

Registriert seit: 28. Sep 2006
196 Beiträge
 
Delphi XE Professional
 
#5

Re: Wie kann man Manifeste für die Windows UAC signieren?

  Alt 21. Apr 2009, 18:59
Zitat von Exceeder:
Außerdem fehlt mir für eine erfolgreiche Signierung noch eine Zertifikatsdatei. Leider weiß ich ebenfalls nicht, woher ich diese bekommen kann.
Hier musst Du unterscheiden, WO Du Deine Software einsetzen willst. Ein Zertifikat identifiziert irgendjemanden bzw. irgendetwas, also z.B. Dich! Ein Zertifikat wird von einer Zertifizierungsstelle ausgestellt (Certification Authority, CA). Microsoft trägt direkt bei der Windows-Installation eine ganze Reihe (kommerzieller) CAs als Vertrauenswürdig ein. Dies siehst du mit dem Tool "certmgr.msc", dort unter "Vertrauenswürdige Stammzertifizierungsstellen". Aber ein Personenzertifikat von diesen kommerziellen Anbietern kostet relativ viel Geld.

Mit geeigneter Software kannst Du Dir eine eigene CA erstellen. Aus dieser CA erstellst Du Dir dann ein Zertifikat, ausgestellt auf Deinen Namen. Im Endeffekt hast Du drei Dateien. Das Zertifikat der CA, Dein Zertifikat und Deinen privaten Schlüssel. Das CA-Zert importierst Du in den Zweig "Vertrauenswürdige Stammzertifizierungsstellen", sobald das dort eingetragen ist, vertraut Dein Windows Dir bedingungslos Dein eigenes Zert kannst Du auch unter "Eigene Zertifikate" installieren, dann kann SignTool.exe direkt darauf zugreifen.

Wenn Du also nur für Dich Software schreibst und ein paar Freunde, musst Du denen halt dein CA-Zert mitgeben und ihnen sagen, dass sie das einmal importieren müssen. Für einen größeren Nutzerkreis wirst Du um ein kommerzielles Zertifikat nicht herumkommen.

Wie bekommst Du nun Deine CA? Unter Linux gibt es eine TinyCA, eine kleine grafische Oberfläche für OpenSSL. Prinzipiell kann man auch alles direkt an der Kommandozeile mit OpenSSL machen, davon gibt es auch ein Windows-Binary. Man kann sich aber auch ins Knie schießen und danach Wiener Walzer tanzen. Ist genauso befriedigend. Man könnte auch einen Windows Server kaufen, den installieren und dort die Microsoft CA einrichten. Aber ich glaub, dann wäre ein kommerzielles Zertifikat billiger.

Soweit mal ein ganz kurzer Einblick in das Thema Zertifikate.

Gruß,
SirTwist
  Mit Zitat antworten Zitat
Exceeder

Registriert seit: 29. Mai 2006
24 Beiträge
 
#6

Re: Wie kann man Manifeste für die Windows UAC signieren?

  Alt 22. Apr 2009, 07:15
Hallo,

die Software soll im professionellen Umfeld eingesetzt werden. Ich werde also auf jedenfall ein Zertifikat kaufen. Die Installation eines eigenen Zertifikats könnte ja erst stattfinden, nachdem das Installations- und Administrationsprogramm das erste mal gestartet wurde, dass wäre ja ziemlich Sinnfrei.

Ich habe Webserverzertifikate bisher immer unter Linux auf der Kommandozeile mit dem Tool openssl erstellt (sind ja im Prinzip nur zwei Schritte). Ist an der Zertifikatsbeschreibung irgendwas anders als bei einem SSL Zertifikat oder ist das im Prinzip alles die selbe Brühe?

Exceeder
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:59 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz