SignTool.exe (İmza Aracı)
İmza aracı, dosyaları dijital imzalayan, dosyalardaki imzaları doğrulayan ve dosyalara zaman damgası veren bir komut satırı aracıdır.
Bu araç, Visual Studio ile birlikte otomatik olarak yüklenir. Aracı çalıştırmak için Visual Studio Geliştirici Komut İstemi'ni veya Visual Studio Geliştirici PowerShell'i kullanın.
Not
Windows 10 SDK, Windows 10 HLK, Windows 10 WDK ve Windows 10 ADK derlemeleri 20236 ve üzeri için özet algoritmasının belirtilmesi gerekir. SignTool sign
komutu, dosya özet algoritmasının /fd
ve zaman damgası özet algoritması seçeneğinin /td
sırasıyla imzalama ve zaman damgası sırasında belirtilmesi gerekir. İmzalama sırasında belirtilmezse /fd
ve zaman damgası sırasında belirtilmezse /td
bir hata (hata kodu 1) oluşturulur.
Komut istemine şunu yazın:
Sözdizimi
signtool [command] [options] [file_name | ...]
Parametreler
Bağımsız değişken | Açıklama |
---|---|
command |
Dosya üzerinde gerçekleştirilecek işlemi belirten dört komutcatdb (, sign , Timestamp veya Verify ) biri. Her bir komutun açıklaması için sonraki tabloya bakın. |
options |
Bir komutu değiştiren seçenek. Genel /q ve /v seçeneklere ek olarak, her komut benzersiz bir seçenek kümesini destekler. |
file_name |
İmzalanacak dosyanın yolu. |
Aşağıdaki komutlar İmza Aracı tarafından desteklenir. Her komut, ilgili bölümlerinde listelenen ayrı seçenekler kümesiyle kullanılır.
Komut | Açıklama |
---|---|
catdb |
Katalog veritabanına bir katalog dosyası ekler veya katalog veritabanından katalog dosyasını kaldırır. Katalog veritabanları, katalog dosyalarının otomatik araması için kullanılır ve GUID ile tanımlanır. komutu tarafından catdb desteklenen seçeneklerin listesi için bkz . catdb Komut Seçenekleri. |
sign |
Dosyaları dijital olarak imzalar. Dijital imzalar, dosyaları izinsiz kullanıma karşı korur ve kullanıcıların bir imza sertifikası temelinde imzalayanı doğrulamasına olanak sağlar. Komutun desteklediği sign seçeneklerin listesi için bkz . Komut Seçenekleri'ni imzalama. |
Timestamp |
Zaman damgaları dosyaları. komutu tarafından TimeStamp desteklenen seçeneklerin listesi için bkz . TimeStamp Komut Seçenekleri. |
Verify |
İmzalama sertifikasının güvenilir bir yetkili tarafından verilmiş, imzalama sertifikasının iptal edilmiş ve isteğe bağlı olarak imzalama sertifikasının belirli bir ilke için geçerli olup olmadığını belirleyerek dosyaların dijital imzasını doğrular. Komutun desteklediği Verify seçeneklerin listesi için bkz . Komut Seçeneklerini Doğrulama. |
Aşağıdaki seçenekler bütün İmza Aracı komutlarına uygulanır.
Genel seçenek | Açıklama |
---|---|
/q | Komut başarıyla çalışırsa bir çıktı görüntülemez ve komut başarısız olursa en az çıktı görüntüler. |
/v | Komutun başarıyla çalıştırıldığına veya başarısız olduğuna bakılmaksızın ayrıntılı çıktıyı görüntüler ve uyarı iletilerini görüntüler. |
/debug | Hata ayıklama bilgisini görüntüler. |
catdb Komut Seçenekleri
Aşağıdaki tabloda komutuyla catdb
kullanılabilecek seçenekler listelenmiştir.
Catdb seçeneği | Açıklama |
---|---|
/d |
Varsayılan katalog veritabanının güncellendiğini belirtir. ne de /d /g seçeneği kullanılmazsa, İmza Aracı sistem bileşenini ve sürücü veritabanını güncelleştirir. |
/g GUID |
Genel olarak benzersiz tanımlayıcı GUID'i tarafından tanımlanan katalog veritabanının güncelleştirildiğini belirtir. |
/r |
Belirtilen katalogları katalog veritabanından kaldırır. Bu seçenek belirtilmezse, İmza Aracı belirtilen katalogları katalog veritabanına ekler. |
/u |
Benzersiz bir adın eklenen katalog dosyaları için otomatik olarak oluşturulduğunu belirtir. Gerekirse, katalog dosyaları var olan katalog dosyaları ile ad çakışmalarını önlemek için yeniden adlandırılır. Bu seçenek belirtilmezse, İmza Aracı eklenmekte olan katalogla aynı ada sahip tüm var olan katalogların üzerine yazar. |
imza Komut Seçenekleri
Aşağıdaki tabloda komutuyla sign
kullanılabilecek seçenekler listelenmiştir.
imza komut seçenekleri | Açıklama |
---|---|
/a |
En iyi imzalama sertifikasını otomatik olarak seçer. İmza Aracı, tüm belirtilen koşulları karşılayan tüm geçerli sertifikaları bulur ve en uzun süre geçerli olanı seçer. Bu seçenek yoksa, İmza Aracı yalnızca geçerli bir imza sertifikası bulmayı bekler. |
/ac dosya |
İmza bloğuna dosyadan ek bir sertifika ekler. |
/as |
Bu imzayı ekler. Birincil bir imza yoksa, bunun yerine bu imza birincil imza yapılır. |
/c CertTemplateName |
İmzalama sertifikasının Sertifika Şablon Adını (Microsoft uzantılı) belirtir. |
/csp CSPName |
Özel anahtar kapsayıcısı içeren şifreleme hizmet sağlayıcısını (CSP) belirtir. |
/d Desc |
İmzalı içeriğin açıklamasını belirtir. |
/du URL |
İmzalanmış içeriğin genişletilmiş açıklaması için Tek Düzen Kaynak Konum Belirleyicisi (URL) belirtir. |
/f SignCertFile |
Bir dosyadaki imza sertifikanı belirtir. Dosya Kişisel Bilgi Değişimi (PFX) biçimindeyse ve parolayla korunuyorsa, parolayı belirtmek için seçeneğini kullanın /p . Dosya özel anahtar içermiyorsa, CSP ve özel anahtar kapsayıcı adını belirtmek için ve /kc seçeneklerini kullanın/csp . |
/fd |
Dosya imzalarını oluşturmak için kullanılacak dosya özet algoritmasını belirtir. Not: İmzalama sırasında anahtar sağlanmazsa /fd bir hata oluşturulur. |
/fd certHash |
certHash dizesinin belirtilmesi, imzalama sertifikasında kullanılan algoritmaya varsayılan olarak eklenir. Not: İmzalama sırasında anahtar sağlanmazsa /fd bir hata oluşturulur. |
/i Veren Adı |
İmzalayan sertifikayı verenin adını belirtir. Bu değer, tam yayınlayıcı adının bir alt dizesi olabilir. |
/kc PrivKeyContainerName |
Özel anahtar kapsayıcısı adını belirtir. |
/n Konu Adı |
İmzalayan sertifika konusunun adını belirtir. Bu değer, tam konu adının bir alt dizesi olabilir. |
/nph |
Destekleniyorsa, yürütülebilir dosyalar için sayfa karmalarını gizler. Varsayılan, wintrust.dll sürümü ve SIGNTOOL_PAGE_HASHES ortam değişkeni tarafından belirlenir. PE olmayan dosyalar için bu seçenek göz ardı edilir. |
/p Parola |
PFX dosyası açılırken kullanılacak parolayı belirtir. (PFX dosyası belirtmek için seçeneğini kullanın /f .) |
/p7 Yol |
Bir Ortak Anahtar Şifreleme Standartları (PKCS) #7 dosyasının belirtilen her içerik dosyası için üretildiğini belirtir. PKCS #7 dosyaları path\filename.p7 olarak adlandırılır. |
/p7ce Değer |
İmzalanmış PKCS #7 içeriği için seçenekleri belirtir. İmzalı içeriği PKCS #7 dosyasına eklemek için Değer olarak "Katıştırılmış" veya ayrılmış bir PKCS #7 dosyasının imzalı veri bölümünü oluşturmak için "DetachedSignedData" olarak ayarlayın. /p7ce Seçenek kullanılmazsa, imzalı içerik varsayılan olarak eklenir. |
/p7co <OID> |
İmzalanmış PKCS #7 içeriğini tanımlayan nesne tanımlayıcısını (OID) belirtir. |
/ph |
Destekleniyorsa, yürütülebilir dosyalar için sayfa karmaları oluşturur. |
/r RootSubjectName |
İmzalama sertifikasının bağlanması gerektiği kök sertifikası konusunun adını belirtir. Bu değer, kök sertifikasının tam konu adının bir alt dizesi olabilir. |
/s StoreName |
Sertifika için arama yaparken açılacak depoyu belirtir. Bu seçenek belirtilmezse depo My açılır. |
/sha1 Karma |
İmza sertifikanın SHA1 karmasını belirtir. Kalan anahtarlar tarafından belirtilen ölçütlere uygun birden çok sertifika olduğunda genellikle SHA1 karması belirtilir. |
/sm |
Bir kullanıcı deposu yerine, makine deposu kullanıldığını belirtir. |
/t URL |
Zaman damgası sunucusunun URL'sini belirtir. Bu seçenek (veya /tr ) yoksa, imzalanan dosyaya zaman damgası eklenmez. Zaman damgası başarısız olduğunda bir uyarı üretilir. Bu seçenek seçeneğiyle /tr kullanılamaz. |
/td alg |
RFC 3161 zaman damgası sunucusu tarafından kullanılan bir özet algoritması isteme seçeneğiyle birlikte /tr kullanılır. Not: Zaman damgası oluşturulurken sağlanmazsa /td bir hata oluşturulur. |
/tr URL |
RFC 3161 zaman damgası sunucusunun URL'sini belirtir. Bu seçenek (veya /t ) yoksa, imzalanan dosyaya zaman damgası eklenmez. Zaman damgası başarısız olduğunda bir uyarı üretilir. Bu seçenek seçeneğiyle /t kullanılamaz. |
/u Kullanım |
İmzalama sertifikasında hazır olması gereken gelişmiş anahtar kullanımını (EKU) belirtir. Kullanım değeri, OID veya dize ile belirtilebilir. "Kod İmzalama" varsayılan kullanım miktarıdır. (1.3.6.1.5.5.7.3.3). |
/uw |
"Windows Sistem Bileşeni Doğrulaması" kullanımını belirtir. (1.3.6.1.4.1.311.10.3.6). |
Kullanım örnekleri için bkz . Dosyayı İmzalarken SignTool Kullanma.
TimeStamp Komut Seçenekleri
Aşağıdaki tabloda komutuyla TimeStamp
kullanılabilecek seçenekler listelenmiştir.
Zaman Damgası seçeneği | Açıklama |
---|---|
/p7 |
Zaman damgaları PKCS #7 dosyaları. |
/t URL |
Zaman damgası sunucusunun URL'sini belirtir. Zaman damgası vurulan dosyanın önceden imzalanmış olması gerekir. /t veya /tr seçeneği gereklidir. |
/td alg |
RFC 3161 zaman damgası sunucusu tarafından kullanılan bir özet algoritması isteme seçeneğiyle birlikte /tr kullanılır. Not: Zaman damgası oluşturulurken sağlanmazsa /td bir hata oluşturulur. |
/tp Dizin |
Zaman, imzayı dizine damgalar. |
/tr URL |
RFC 3161 zaman damgası sunucusunun URL'sini belirtir. Zaman damgası vurulan dosyanın önceden imzalanmış olması gerekir. /tr veya /t seçeneği gereklidir. |
Kullanım örneği için bkz . Önceden İmzalanan Dosyalara Zaman Damgaları Ekleme.
Komut Seçeneklerini Doğrulama
Seçeneği doğrulama | Açıklama |
---|---|
/a |
Tüm yöntemlerin dosyayı doğrulamak için kullanılabileceğini belirtir. İlk olarak, dosyanın bir katalogda imzalanmış olup olmadığını belirlemek için katalog veritabanları aranır. Dosya herhangi bir katalogda imzalanmamışsa, İmza Aracı dosyanın katıştırılmış imzasını doğrulamayı dener. Katalogda oturum açmış veya açmamış dosyalar doğrulanırken bu seçenek önerilir. Bu dosyaların örnekleri arasında Windows dosyaları veya sürücüleri yer alır. |
/ad |
Varsayılan katalog veritabanını kullanarak kataloğu bulur. |
/ag CatDBGUID |
CatDBGUID tarafından tanımlanan katalog veritabanındaki kataloğu bulur. |
/all |
Birden çok imza içeren bir dosyadaki tüm imzaları doğrular. |
/as |
Sistem bileşeni (sürücü) katalog veritabanını kullanarak kataloğu bulur. |
/c CatFile |
Katalog dosyası adını belirtir. |
/d |
İmza Aracı'nın açıklama ve açıklama URL'sini yazdırması gerektiğini belirtir. |
/ds Dizin |
Belirtilen bir konumda imzayı doğrular. |
/hash (SHA1 |SHA256 ) |
Katalogdaki bir dosya ararken kullanmak için bir isteğe bağlı karma algoritmasını belirtir. |
/kp |
Çekirdek modu sürücü imzalama ilkesi ile doğrulama gerçekleştirilmesi gerektiğini belirtir. |
/ms |
Birden çok doğrulama mantığı kullanır. Bu, Windows 8 ve üzeri bir WinVerifyTrust çağrısının varsayılan davranışıdır. |
/o Sürüm |
İşletim sistemi sürümüne göre dosyayı doğrular. Sürüm şu biçimdedir: PlatformID:VerMajor.VerMinor.BuildNumber. PlatformID , bir PlatformID numaralandırma üyesinin temel alınan değerini temsil eder. Önemli: Anahtarın /o kullanılması önerilir. Belirtilmezse /o , SignTool.exe beklenmeyen sonuçlar döndürebilir. Örneğin, anahtarı dahil /o etmediyseniz, eski bir işletim sisteminde doğru şekilde doğru doğrulayan sistem katalogları daha yeni bir işletim sisteminde doğru şekilde doğrulanamayabilir. |
/p7 |
PKCS #7 dosyalarını doğrular. Varolan ilkeler PKCS #7 doğrulaması için kullanılmaz. İmza denetlenir ve imzalama sertifikası zincir oluşturulur. |
/pa |
Varsayılan Authenticode Doğrulama İlkesi kullanılması gerektiğini belirtir. /pa Seçenek belirtilmezse, İmza Aracı Windows Sürücü Doğrulama İlkesi'ni kullanır. Bu seçenek seçeneklerle catdb kullanılamaz. |
/pg İlkeGUID |
GUID'ye göre doğrulama ilkesi belirtir. PolicyGUID, doğrulama ilkesinin ActionID'sine karşılık gelir. Bu seçenek seçeneklerle catdb kullanılamaz. |
/ph |
İmza Aracı'nın sayfa karma değerlerini yazdırması ve doğrulaması gerektiğini belirtir. |
/r RootSubjectName |
İmzalama sertifikasının bağlanması gerektiği kök sertifikası konusunun adını belirtir. Bu değer, kök sertifikasının tam konu adının bir alt dizesi olabilir. |
/tw |
İmza zaman damgalı değilse bir uyarı oluşturulacağını belirtir. |
Kullanım örnekleri için bkz . Dosya İmzasını Doğrulamak için SignTool Kullanma.
Dönüş Değeri
İmza Aracı, sonlandırıldığında aşağıdaki çıkış kodlarından birini döndürür.
Çıkış kodu | Açıklama |
---|---|
0 | Yürütme başarılı oldu. |
1 | Yürütme başarısız oldu. |
2 | Yürütme uyarılarla tamamlandı. |
Örnekler
Aşağıdaki komut, MyCatalogFileName.cat katalog dosyasını sistem bileşeni ve sürücü veritabanına ekler. seçeneği, /u
adlı MyCatalogFileName.cat
mevcut bir katalog dosyasının değiştirilmesini önlemek için gerekirse benzersiz bir ad oluşturur.
signtool catdb /v /u MyCatalogFileName.cat
Aşağıdaki komut en iyi sertifikayı kullanarak bir dosyayı otomatik olarak imzalar.
signtool sign /a /fd SHA256 MyFile.exe
Aşağıdaki komut parola korumalı bir PFX dosyasında depolanan bir sertifika kullanarak bir dosyayı dijital olarak imzalar.
signtool sign /f MyCert.pfx /p MyPassword /fd SHA256 MyFile.exe
Aşağıdaki komut bir dosyayı dijital olarak imzalar ve zaman damgası oluşturur. Dosyayı imzalamak için kullanılan sertifika bir PFX dosyasında saklanır.
signtool sign /f MyCert.pfx /t http://timestamp.digicert.com /fd SHA256 MyFile.exe
Aşağıdaki komut, depoda My
bulunan ve konu adına My Company Certificate
sahip bir sertifika kullanarak dosyayı imzalar.
signtool sign /n "My Company Certificate" /fd SHA256 MyFile.exe
Aşağıdaki komut bir ActiveX denetimini imzalar ve kullanıcıdan denetimi yüklemesi istendiğinde tarayıcıda görüntülenen bilgileri sağlar.
Signtool sign /f MyCert.pfx /d: "MyControl" /du http://www.example.com/MyControl/info.html /fd SHA256 MyControl.exe
Aşağıdaki komut zaten dijital olarak imzalanmış bir dosya için zaman damgası oluşturur.
signtool timestamp /t http://timestamp.digicert.com MyFile.exe
Aşağıdaki komut, RFC 3161 zaman damgası sunucusu kullanarak dosyayı zaman damgalar.
signtool timestamp /tr http://timestamp.digicert.com /td SHA256 MyFile.exe
Aşağıdaki komut bir dosyanın imzalandığını doğrular.
signtool verify MyFile.exe
Aşağıdaki komut bir katalogda imzalanmış olabilecek bir sistem dosyasını doğrular.
signtool verify /a SystemFile.dll
Aşağıdaki komut, adlı MyCatalog.cat
bir katalogda oturum açmış bir sistem dosyasını doğrular.
signtool verify /c MyCatalog.cat SystemFile.dll