Protéger un logiciel exécutable

Partagez votre expérience de PureBasic avec les autres utilisateurs.
Avatar de l’utilisateur
omega
Messages : 626
Inscription : sam. 26/nov./2011 13:04
Localisation : Alger

Protéger un logiciel exécutable

Message par omega »

Bonjour,
Je cherche une astuce simple et efficace qui empêche d'installer mon logiciel sur un autre PC (autre que celui pour lequel il est destiné).
Merci
Win7 (x64) 64 bits Pb 5.72
Shadow
Messages : 1373
Inscription : mer. 04/nov./2015 17:39

Re: Protéger un logiciel exécutable

Message par Shadow »

Salut,

La seule chose que je vois c'est de trouver un moyen de choper son numéro d'identification.
Surement dans le registre ?

Ce sujet m’intéresse :)
Processeur: Intel Core I7-4790 - 4 Cœurs - 8 Thread: 3.60 Ghz.
Ram: 32 GB.
Disque: C: SDD 250 GB, D: 3 TB.
Vidéo: NVIDIA GeForce GTX 960: 2 GB DDR5.
Écran: Asus VX248 24 Pouces: 1920 x 1080.
Système: Windows 7 64 Bits.

PureBasic: 5.60 x64 Bits.
manababel
Messages : 136
Inscription : jeu. 14/mai/2020 7:40

Re: Protéger un logiciel exécutable

Message par manababel »

Bonjour
Si vous avez le PC physiquement devant vous, vous pouvez récupérer l'id du cpu, voir la licence de Windows. Chaque cpu à un une id différente et chaque Windows à une clé différente .

vous pouvez tester soit l'un soit l'autre, voir les deux pour plus de sécurité , il suffit de comparer juste quelques chiffres/lettre . ( Evite d'ecrire entierement la licence windows , meme codé)
si c'est identique, il est très probable que ce sois votre ordinateur.

voici la commande pour afficher l'Id de votre CPU.

Code : Tout sélectionner

  Compilateur = RunProgram("cmd", "/c wmic cpu get processorid", "", #PB_Program_Open | #PB_Program_Read)
  Sortie$ = ""
  If Compilateur 
    While ProgramRunning(Compilateur)
      If AvailableProgramOutput(Compilateur)
        Sortie$ + ReadProgramString(Compilateur) + Chr(13)
      EndIf
    Wend
    Sortie$ + Chr(13) + Chr(13)
    Sortie$ + "Code de retour : " + Str(ProgramExitCode(Compilateur))
    
    CloseProgram(Compilateur) ; Ferme la connection vers le programme
  EndIf
  
  MessageRequester("Sortie", Sortie$)
Shadow
Messages : 1373
Inscription : mer. 04/nov./2015 17:39

Re: Protéger un logiciel exécutable

Message par Shadow »

Merci manababel :)
Processeur: Intel Core I7-4790 - 4 Cœurs - 8 Thread: 3.60 Ghz.
Ram: 32 GB.
Disque: C: SDD 250 GB, D: 3 TB.
Vidéo: NVIDIA GeForce GTX 960: 2 GB DDR5.
Écran: Asus VX248 24 Pouces: 1920 x 1080.
Système: Windows 7 64 Bits.

PureBasic: 5.60 x64 Bits.
Avatar de l’utilisateur
Ar-S
Messages : 9478
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Protéger un logiciel exécutable

Message par Ar-S »

Éviter de vous fier au hardware.. Si l'utilisateur change de matos il est cuit.. Avec la licence windows c'est plus souple. Si on a un compte microsoft, en se reloggant lors d'un changement de matos, le serial est le même.
@Omega..
Ce genre de protection est vite cassable.. Cela revient à if else en assembleur... Suffit d'une petite modife avec un programme comme OllyDb pour outrepasser cette vérif.
Si ton soft est juste destiné à une boite cependant, ça devrait suffire.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Shadow
Messages : 1373
Inscription : mer. 04/nov./2015 17:39

Re: Protéger un logiciel exécutable

Message par Shadow »

Quel est la bonne méthode alors ?
Processeur: Intel Core I7-4790 - 4 Cœurs - 8 Thread: 3.60 Ghz.
Ram: 32 GB.
Disque: C: SDD 250 GB, D: 3 TB.
Vidéo: NVIDIA GeForce GTX 960: 2 GB DDR5.
Écran: Asus VX248 24 Pouces: 1920 x 1080.
Système: Windows 7 64 Bits.

PureBasic: 5.60 x64 Bits.
Avatar de l’utilisateur
Micoute
Messages : 2522
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

Re: Protéger un logiciel exécutable

Message par Micoute »

Je pense que la meilleure méthode, c'est de faire un fichier auto-extractible, mais avec un code d'extraction que seuls le codeur et l'utilisateur connaissent.
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 5.73 PB 6.00 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Shadow
Messages : 1373
Inscription : mer. 04/nov./2015 17:39

Re: Protéger un logiciel exécutable

Message par Shadow »

Micoute a écrit :Je pense que la meilleure méthode, c'est de faire un fichier auto-extractible, mais avec un code d'extraction que seuls le codeur et l'utilisateur connaissent.
Sa sert a rien ça !
Processeur: Intel Core I7-4790 - 4 Cœurs - 8 Thread: 3.60 Ghz.
Ram: 32 GB.
Disque: C: SDD 250 GB, D: 3 TB.
Vidéo: NVIDIA GeForce GTX 960: 2 GB DDR5.
Écran: Asus VX248 24 Pouces: 1920 x 1080.
Système: Windows 7 64 Bits.

PureBasic: 5.60 x64 Bits.
Avatar de l’utilisateur
case
Messages : 1528
Inscription : lun. 10/sept./2007 11:13

Re: Protéger un logiciel exécutable

Message par case »

apres faut preciser ta demande un peu car on ne sait pas si c'est destiné a etre vendu et installer sur des postes d'une entreprise de particuliers etc...
si c'est un logiciel que tu utilise a titre perso et que tu ne veux pas voir sur le poste de tes enfants par exemple .

on en reviens a l’éternel problème de la protection. :mrgreen: je pense que ca ne sert a rien sauf si tu es sur qu'en face ils pourront pas cracker le truc.

le principal problème de ta demande est d’empêcher l'installation sur un autre pc, a moins d'avoir un moyen d'obtenir avant l’installation un numéro de série du matériel ou la licence windows par exemple ou de pouvoir relier un numéro de licence de ton programme a un hardware particulier et de vérifier a l'installation que c'est le mème pc utilise par ce code ça reste problématique

cela demanderai une vérification en ligne de la paire licence/hardware pour empêcher l'installation.
un peu comme Norton pratique.

un s/n ajouté a un compte en ligne qui ouvre le droit a une licence sur un produit.
lors de l'installation connexion au compte et non pas saisie du s/n sur le poste.
du coté distant un numéro d'identification du pc(on apellera ca ID) est généré lors de la connexion au compte par le logiciel.
qui reçoit alors une clef chiffrée permettant d'activer le logiciel sur le poste.
a chaque lancement le logiciel vérifie sur le compte en ligne que la clef correspond bien a la paire S/N / ID du compte associé.

pour installer le logiciel sur un autre poste(changement de pc par exemple), il faut supprimer l'id du pc du compte en ligne
et se connecter au compte sur le nouveau pc. ce qui générera une nouvelle clef reliée au compte et au S/N.

après ça reste possible d'installer sur plusieurs poste si il n'y a pas de connexion internet sur ceux ci.
rien n’empêche d'installer, le logiciel puis de déconnecter le pc d'internet puis de révoquer la licence puis d'installer sur un autre poste etc...
mais a la prochaine connexion le soft vas vérifier la licence et donc se désactiver si la pair sn/id n'est plus la même.

après ça demande d'avoir un serveur qui gère les licences en permanence. ça pose des problèmes pour le client si demain tu stoppe toute activité et que tu arrête ton serveur.

bref... je suis pas sur que le jeu en vaille la chandelle :mrgreen:
ImageImage
Avatar de l’utilisateur
omega
Messages : 626
Inscription : sam. 26/nov./2011 13:04
Localisation : Alger

Re: Protéger un logiciel exécutable

Message par omega »

Je crois que j'ai trouvé une petite astuce simple mais efficace: et si j'enregistre (sur serveur web) l'identifiant et le mot de passe de mon client? Puis, durant l'installation, je vérifie s'il s'agit bien de mon client, si oui, le logiciel s'installe sinon l'installation est refusée, tout simplement. Cela permet à mon client, dans le cas où il change de matériel, de pouvoir réinstaller le logiciel facilement en saisissant son identifiant et son mot de passe. Voilà, qu'en pensez-vous?
Win7 (x64) 64 bits Pb 5.72
Avatar de l’utilisateur
case
Messages : 1528
Inscription : lun. 10/sept./2007 11:13

Re: Protéger un logiciel exécutable

Message par case »

si ton client donne son mot de passe et son login a une autre personne comment tu peux savoir qu'il s'agit de ton client?
si ton client l'installe sur 10 postes comment peut tu savoir qu'il a change de pc 10 fois ou qu'il l'a distribué a 10 personnes?

apres voila, fred vend pure basic il y a un accès par mot de passe et login, fred ne verifie pas que tu ne l'installe pas 300 fois sur 300 postes differents fred te fait confiance en tant qu'utilisateur pour ne pas diffuser la version complète de pure basic.
donc c'est basé sur la confiance, fais tu confiance a tes clients :)
ImageImage
Shadow
Messages : 1373
Inscription : mer. 04/nov./2015 17:39

Re: Protéger un logiciel exécutable

Message par Shadow »

En même temps si jamais fred s'aperçois que tu a filer pb a d'autre gratos, je suis pas sur qu'il
sois très content, et il te supprimera ton compte et toi tu l'as dans l'os !

Puis tu peu avoir des problèmes aussi, bref.... pas si simple !
Processeur: Intel Core I7-4790 - 4 Cœurs - 8 Thread: 3.60 Ghz.
Ram: 32 GB.
Disque: C: SDD 250 GB, D: 3 TB.
Vidéo: NVIDIA GeForce GTX 960: 2 GB DDR5.
Écran: Asus VX248 24 Pouces: 1920 x 1080.
Système: Windows 7 64 Bits.

PureBasic: 5.60 x64 Bits.
Avatar de l’utilisateur
case
Messages : 1528
Inscription : lun. 10/sept./2007 11:13

Re: Protéger un logiciel exécutable

Message par case »

Shadow a écrit :En même temps si jamais fred s'aperçois que tu a filer pb a d'autre gratos, je suis pas sur qu'il
sois très content, et il te supprimera ton compte et toi tu l'as dans l'os !

Puis tu peu avoir des problèmes aussi, bref.... pas si simple !
avec des si ma tante serait mon oncle :mrgreen:

déja c'est pas la question ,je faisais un paralelle a Omega avec son idée de mettre son logiciel derriere un mot de passe et un compte. pure basic est un exemple, car il a une 'protection' avec un login et un mot de passe sur un site web. tu ne peux pas télécharger le logiciel si tu n'a pas le mot de passe et le login associé a ton compte. cependant et comme je le fait remarquer il n'y a ensuite aucune espece de protection logicielle sur pure basic. rien ne t’empêche, toi shadow de le filer a tes potes ils pourraient l'utiliser sans l'acheter et sans aucune limitation.
enfin rien sauf ta conscience, et c'est ce que je disais c'est basé sur la confiance qu'a fred sur ses utilisateurs et sur le fait qu'il vent son logiciel avec un super rapport qualité prix.

ca ne me viendrais pas a l'idée de distribuer gratuitement purebasic tellement je kiff ce logiciel et je respecte le travail derriere...
pour moi je suppose que tenter de protéger un logiciel contre la copie c'est voué a l'echec a notre niveau a plus ou moins long terme.
quand on vois que des boites comme EA ou ubisoft paient des centaines de milliers de dollars pour des système de protections (toujours plus intrusifs, toujours plus gênant pour l'utilisateur) et que leurs jeux sont toujours piratés... c'est peut être un signe^^
ImageImage
Avatar de l’utilisateur
grendizer
Messages : 59
Inscription : mer. 29/mai/2019 6:29

Re: Protéger un logiciel exécutable

Message par grendizer »

Bonjour

le mieux c'est d'avoir un logiciel portable a mettre sur une clé usb .
Avatar de l’utilisateur
Zorro
Messages : 2185
Inscription : mar. 31/mai/2016 9:06

Re: Protéger un logiciel exécutable

Message par Zorro »

case a écrit : il n'y a ensuite aucune espece de protection logicielle sur pure basic.

heu, je n’affirmerai pas un truc comme ça perso :)

je ne suis pas sur, que Fred ne "tatoue" pas le logiciel qui t'es dédié ....
et que si ta version se retrouve dans la nature, il ne puisse pas connaitre de qui elle proviens .... :)


d'ailleurs une version "tatoué" du soft a ton client, sachant que ce tatouage est Su de ton client, fera une dissuasion suffisante, selon moi :)
(le tatouage pouvant etre crypté , bien sur ...)
avec un petit contract d'acceptation de la part du client, et t'es tranquille
Image
Image
Site: http://michel.dobro.free.fr/
Devise :"dis moi ce dont tu as besoin, je t'expliquerai comment t'en passer"
Répondre