PB à toute heure et à tout moment. (à parcourir avec modération)

Le forum (ô combien francophone) des utilisateurs de Powerbuilder.

Recherche rapide

Annonce

Certaines rubriques, dont des cours, sont uniquement visibles par les membres du forum ^^.
Dans la rubrique Liens & Références, vous avez accès à un sommaire de téléchargement, profitez-en !
Il existe maintenant un nouveau TOPIC "Votre CV en Ligne" accessible uniquement par demande.

#1 23-09-2015 09:31:11

FlorentP  
Membre Geek
Award: bf
Lieu: Marseille
Date d'inscription: 23-03-2011
Messages: 95
Pépites: 1,422
Banque: 0

Comment signer un exe généré avec PB

Bonjour à tous,

Voici une question qui me travaille un peu :

Peut-on ajouter une signature digitale à un exe natif généré en PB  ? Par exemple, pour mettre sa signature d'éditeur du soft.

Pour info Je suis en PB8 et PB 11.5.

Hors ligne

 

#2 24-09-2015 16:19:50

seki  
0x73656B69
Award: bf
Lieu: Laquenexy & Luxembourg
Date d'inscription: 20-11-2008
Messages: 1118
Pépites: 4,296,080,204
Banque: 9,223,372,036,854,776,000
Site web

Re: Comment signer un exe généré avec PB

C'est possible, il faut makecert.exe et signtool.exe (disponibles par exemple dans le platform SDK : voir les infos sur la page de signtool).

Je viens de tester car vu que les exécutables PB ont une structure un peu spéciale (avec le code PB compilé à la fin de l'exe mais en dehors des sections habituelles d'un exe windows) je me demandais si l'ajout de la signature ne risquait pas de casser l'exécutable.

ça fonctionne (mais c'est PBDumper qui ne fonctionne plus après )
http://i.imgur.com/1sJwZbz.png

Testé avec un exe 11.5, mais je pense que ça doit aussi aller avec les versions précédentes.


The best programs are the ones written when the programmer is supposed to be working on something else. - Melinda Varian

Mes réponses PB sur StackOverflow
http://stackoverflow.com/users/flair/317266.png

Hors ligne

 

#3 28-09-2015 17:07:01

FlorentP  
Membre Geek
Award: bf
Lieu: Marseille
Date d'inscription: 23-03-2011
Messages: 95
Pépites: 1,422
Banque: 0

Re: Comment signer un exe généré avec PB

Merci pour ces infos. Je testerai ca.

Hors ligne

 

#4 29-09-2015 09:25:41

seki  
0x73656B69
Award: bf
Lieu: Laquenexy & Luxembourg
Date d'inscription: 20-11-2008
Messages: 1118
Pépites: 4,296,080,204
Banque: 9,223,372,036,854,776,000
Site web

Re: Comment signer un exe généré avec PB

FlorentP a écrit:

Merci pour ces infos. Je testerai ca.

Voici la procédure que j'ai utilisée :
1) Génération d'une clé privée et du certificat d'autorité racine (CA) auto-signé, destiné à produire des signatures (et non à chiffrer du contenu comme pour ssl sur un serveur, dans ce cas il faudrait utiliser "/sky exchange") qui périmera le 31/12/2015

Code:

makecert.exe /r /pe /cy authority /h 1 /sky signature /n "CN=Seki CA" /ss CA /sr CurrentUser ^
  /e "12/31/2015" ^
  /sv MyCAKey.pvk MyCA.cer

2) Ajout du certificat racine dans la liste des autorités racines de confiance de l'utilisateur courant

Code:

certutil -user -addstore Root MyCA.cer

3) Génération d'une autre clé et d'un certificat "utilisateur", contresigné par l'autorité racine à laquelle nous faisons confiance, le certificat périmera aussi le 31/12, la ligne /eku "1.3.6.1.5.5.7.3.3" indique que ce certificat servira à signer du code

Code:

makecert.exe /pe /cy end /n "CN=Sébastien Kirche,O=seki.fr,C=fr,E=sebastien.kirche@free.fr" ^
  /sky signature /e "12/31/2015" ^
  /eku "1.3.6.1.5.5.7.3.3" ^
  /iv MyCaKey.pvk /ic MyCa.cer ^
  /sv MySignKey.pvk MySign.cer

4) ajout du certificat dans la liste (de l'utilisateur) des utilisateurs auxquels nous faisons confiance (cette étape n'est pas indispensable pour signer ou tester la validité d'un exe) je la donne pour info

Code:

certutil -user -addStore TrustedPeople MySign.cer

5) génération d'un "personal information exchange file (.pfx)" servant à signer le code

Code:

pvk2pfx.exe /pvk MySignKey.pvk /spc MySign.cer /pfx MySign.pfx

6) signature d'un exécutable, l'url vers timstamp.dll sert à horodater la signature, cela permet de vérifier que la signature était valide après la date de péremption des certificats utilisé, par exemple si on fait la vérification en janvier 2016

Code:

signtool.exe sign /f MySign.pfx /t "http://timestamp.verisign.com/scripts/timstamp.dll" c:\test\exe_a_signer.exe

Nota: les étapes 1 à 3 (4) ne sont pas à faire en production mais uniquement pour tester ou alors pour déployer du code in-house, vu que le certificat racine doit être déployé aussi sur les postes pour que la validité du certificat de signature et celle de la signature puissent être validés. Normalement le certificat de signature est délivré par un professionnel (ex: verisign, Thawte, ...) qui utilise son propre certificat racine.

Dernière modification par seki (29-09-2015 12:14:50)


The best programs are the ones written when the programmer is supposed to be working on something else. - Melinda Varian

Mes réponses PB sur StackOverflow
http://stackoverflow.com/users/flair/317266.png

Hors ligne

 

#5 29-09-2015 12:53:43

seki  
0x73656B69
Award: bf
Lieu: Laquenexy & Luxembourg
Date d'inscription: 20-11-2008
Messages: 1118
Pépites: 4,296,080,204
Banque: 9,223,372,036,854,776,000
Site web

Re: Comment signer un exe généré avec PB

seki a écrit:

Testé avec un exe 11.5, mais je pense que ça doit aussi aller avec les versions précédentes.

Ben justement... Je viens de tester rapidement sur des exe 9 à 11.5 et on dirait que seul l'exe 11.5 fonctionne encore après signature.

Apparemment d'après l'auteur de PowerGen "Note that because of the non-standard format of PowerBuilder executables, you cannot use standard signing tools like SignTool". ça m'intrigue.


The best programs are the ones written when the programmer is supposed to be working on something else. - Melinda Varian

Mes réponses PB sur StackOverflow
http://stackoverflow.com/users/flair/317266.png

Hors ligne

 

#6 31-12-2020 11:15:22

FlorentP  
Membre Geek
Award: bf
Lieu: Marseille
Date d'inscription: 23-03-2011
Messages: 95
Pépites: 1,422
Banque: 0

Re: Comment signer un exe généré avec PB

J'ai fait le test  (vaut mieux tard que jamais ) : Même résultat : avec PB8 et PB9 les exe ne fonctionnement plus après signature.

Merci beaucoup pour cette procédure de signature très bien détaillée.

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22