Assinar um ficheiro EXE do Windows

Tenho um ficheiroEXE que gostaria de assinar para que o Windows não Alerte o utilizador final sobre uma aplicação de um "editor desconhecido". Eu não sou um desenvolvedor do Windows. A aplicação em questão é um protector de ecrã gerado a partir de uma aplicação que gera aplicações de protecção de ecrã. Como tal, não tenho influência sobre como o arquivo é gerado.

já descobri que vou precisar de um Código de assinatura de um CA como Verisign ou instantssl.com. o que eu não entendo é o que eu preciso fazer (se for possível) para assinar o meu arquivo EXE. O que é uma explicação simples?

A resposta do Mel Green levou-me mais longe, mas a signtool quer que especifique que Certificado usar. Posso obter um certificado de assinatura de código grátis de alguma forma para testar se isso vai funcionar para mim em tudo?

indique também qual o tipo de certificado correcto. A maioria dos sites só mencionam "assinatura de código" e falam sobre aplicações de assinatura que são realmente compilados pelo Usuário. Não é o caso para mim.

Author: deceze, 2008-10-31

9 answers

Pode tentar usar a Ferramenta de Sinais da Microsoft

Faz o download como parte do SDK do Windows para o Windows Server 2008 e o.NET 3.5. Uma vez baixado, você pode usá-lo a partir da linha de comando assim:

Signtool sign / a MyFile.exe

Isto assina um único executável, usando o "melhor certificado" disponível. (Se você não tem certificado, ele irá mostrar uma mensagem de erro SignTool.)

Ou podes tentar:

Signtool signwizard

Isto irá lançar um assistente que o ajudará a assinar a sua aplicação. (Esta opção não está disponível após o Windows SDK 7. 0.)


Se quiser obter um certificado que possa usar para testar o seu processo de assinatura do executável, poderá usar a ferramenta. net Makecert .

Ferramenta De Criação De Certificados (Makecert.exe)

Depois de ter criado o seu próprio certificado e o ter usado para assinar o seu executável, é necessário adicioná-lo manualmente como uma AC raiz de confiança para a sua máquina, a fim de UAC para dizer ao utilizador que está a executá-lo que é de uma fonte de confiança. importante . a instalação de um certificado como ROOT CA colocará em risco a privacidade dos seus utilizadores. Olha o que aconteceu com o DELL. Você pode encontrar mais informações para realizar isso em código e através do Windows em: Espero que isso forneça mais informações para quem tentar fazer isto!
 124
Author: Mel Green, 2019-05-03 14:20:14
Tive o mesmo cenário no meu trabalho e aqui estão as nossas descobertas.

A primeira coisa que você tem a fazer é obter o certificado e instalar no seu computador, você pode comprar um de um Autoridade de certificação ou gerar um usando makecert.

Aqui estão os prós e contras das 2 opções

Comprar um certificado

Gerar um certificado com o Makecert

  • prós:
    • os passos são fáceis e você pode partilhar o certificado com os utilizadores finais
  • conts:
    • os utilizadores finais terão de instalar manualmente o certificado nas suas máquinas e dependendo dos seus clientes que possam não ser uma opção
    • certificados gerados com os makecert são normalmente utilizados para o desenvolvimento e ensaio, não para a produção

Assinar o ficheiro executável

Há duas formas de assinar o ficheiro que queres:
  • Usando um certificado instalado no computador

    signtool.exe sign /a /s MY /sha1 sha1_thumbprint_value /t http://timestamp.verisign.com/scripts/timstamp.dll /v "C:\filename.dll"

    • neste exemplo, estamos a usar um certificado guardado na pasta pessoal com uma impressão digital SHA1 (esta impressão digital vem do certificado) para assinar o ficheiro localizado em C:\filename.dll
  • Usando um ficheiro de certificado

    signtool sign /tr http://timestamp.digicert.com /td sha256 /fd sha256 /f "c:\path\to\mycert.pfx" /p pfxpassword "c:\path\to\file.exe"

    • neste exemplo estamos a usar o certificado c:\path\to\mycert.pfx com a senha pfxpassword para assinar o ficheiro c:\path\to\file.exe

Teste A Sua Assinatura

  • Método 1: Utilizar signtool

    Ir para: iniciar > correr
    Tipo CMD > carregue em OK
    Na linha de comandos, indique a pasta onde signtool Existe
    Executar o seguinte:

    signtool.exe verify /pa /v "C:\filename.dll"

  • Método 2: Utilizar O Windows

    Carregue com o botão direito no ficheiro assinado
    Seleccionar As Propriedades De
    Seleccione a página assinaturas digitais. A assinatura será apresentada na secção lista de assinaturas.

Espero que isto possa ajudar. tu

Fontes:

 42
Author: Erick Castrillo, 2020-09-04 12:18:10

Você pode obter um freecheap code signing certificate do Certum Se estiver a fazer o desenvolvimento de código aberto.

Estou a usar o certificado deles há mais de um ano e livra-me da mensagem desconhecida do Windows.

No que diz respeito a assinar o código, Uso signtool.exe de um guião como este:

signtool.exe sign /t http://timestamp.verisign.com/scripts/timstamp.dll /f "MyCert.pfx" /p MyPassword /d SignedFile.exe SignedFile.exe
 37
Author: Lee Richardson, 2018-02-21 14:14:14

Os aspectos da revista ASP têm uma descrição detalhada sobre como assinar o código (você tem que ser um membro para ler o artigo). Você pode baixá-lo através de http://www.asp-shareware.org/

Aqui está a ligação para uma descrição de como pode fazer o seu próprio certificado de teste.

Isto também pode ser interessante.

 17
Author: Andreas, 2017-06-22 05:38:44

Outra opção, se precisar de assinar o executável numa caixa Linux, é usar signcode das ferramentas do projecto Mono . É suportado no Ubuntu .

 11
Author: mozey, 2016-05-18 14:13:03

Referência https://steward-fu.github.io/website/driver/wdm/self_sign.htm Nota: signtool.exe da Microsoft SDK

1.Primeira vez (para fazer certificado privado)

Makecert - r-pe-ss o teu nome.cer

Certmgr.exe-adicione o seu nome.raiz de cer-s-r localmachina

2.Depois (para adicionar o seu sinal à sua aplicação)

Signtool sign /s o seu nome YourApp.exe
 10
Author: Ethan Kuo, 2018-02-08 10:26:34

Utilize a seguinte ligação para assinar .ficheiro exe (setup/ installer) (assinar o ficheiro exe/setup sem usar o Microsoft setup signtool)

Https://ebourg.github.io/jsign/#files

Comando Sample java-jar jsign-2.0.jar ... Keystone Keystone.jks", também conhecido por storepass password MyInstaller.exe

Funcionou para mim:]

 6
Author: user2085962, 2018-03-28 04:49:50

Esta não é uma resposta directa à pergunta, mas está intimamente relacionada (e espero que seja útil) uma vez que, mais cedo ou mais tarde, um programador terá posto a mão na carteira:

Os preços da Assinatura EV (OV não ajuda muito):

1 ano 379 euros
en.sklep.certum.pl
(apenas para os utilizadores Polacos)

1 ano 350 $ + (50 $ taxa escondida)
2 anos 600 $
3 anos 750
(OV: $84 por ano)
www.ksoftware.net
eToken enviado como USB Stick. Não é preciso ler. Você realmente compra do Comodo (Sectigo). São muito lentos.

1 ano 364 euros+19% IVA
(OV 69+IVA)
www.leaderssl.de

1 ano 499 USD
3 anos 897 USD
sectigo.com

1 ano 410 $total
2 anos $760 total
3 anos 950 $total
www.globalsign.com

1 ano: 600 dólares (foram 104 dólares)
3 Anos: ?
www.digicert.com

1 ano: $700
3 anos: ridículo expensive
[symantec.com]

Mais preços aqui:
cheapsslsecurity.com codificar EV
cheapsslsecurity.com só SSL!
 6
Author: Gravity, 2020-09-30 09:55:27

E mais uma opção, se estiver a desenvolver no Windows 10, mas não tiver o signtool da Microsoft.o exe instalado, pode usar o Bash no Ubuntu no Windows para assinar a sua aplicação. Aqui está um run down:

Https://blog.synapp.nz/2017/06/16/code-signing-a-windows-application-on-linux-on-windows/

 4
Author: Stacey Richards, 2017-06-17 02:18:39