PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 23 → Système anti-triche Windev/Webdev
Système anti-triche Windev/Webdev
Débuté par Alain LACLEF, 08 juil. 2018 15:11 - 23 réponses
Membre enregistré
65 messages
Posté le 08 juillet 2018 - 15:11
Bonjour à tous :D

j'ai créé un site (Webdev) permettant le téléchargement d'une appli (Windev). L'appli propose une période d'essai.
Afin d'éviter que des personnes créent plusieurs compte afin de multiplier les périodes d'essai, j'effectue les contrôles suivants:
1) Contrôle unicité adresse email
2) Contrôle de l'adresse IP en appelant une page su site qui effectue le test (afin de test l'adresse internet et non locale) avec NavigateurAdresseIP.()

2 questions :

1) Quels autres contrôles puis-je effectuer ?

2) Sous Windev peut-on récupérer l'adresse internet plus proprement que ma bidouille ?

Merci de votre aide :merci:
Message modifié, 08 juillet 2018 - 15:12
Membre enregistré
312 messages
Popularité : +2 (2 votes)
Posté le 08 juillet 2018 - 16:05
Bonjour,
utiliser fDisqueInfo pour récupérer le numéro de série du disque et le stocké sur une base externe (sur ton serveur) - avec un httpRequete, par exemple.

Cordialement
Thierry
Membre enregistré
65 messages
Posté le 08 juillet 2018 - 18:08
Merci pour ta réponse 8)
C'est effectivement une bonne solution. Le changement de disque pour cause de crash pouvant être géré sur demande.
Merci encore
Posté le 09 juillet 2018 - 17:59
THIERRY TILLIER avait soumis l'idée :
Bonjour,
utiliser fDisqueInfo pour récupérer le numéro de série du disque et le stocké
sur une base externe (sur ton serveur) - avec un httpRequete, par exemple.

Cordialement
Thierry


bonjour,

fdisqueinfo() ne renvoi pas le n° de série physique du disque mais le
n° attribué lors d'un formatage donc il change à chaque formatage

donc impossible de savoir de façon sûre et certaines si c'est un
formatage ou un nouveau disque

--
Cordialement JeAn-PhI
Membre enregistré
65 messages
Posté le 10 juillet 2018 - 10:11
Sauf qu'il est possible de changer le numéro de série d'un disque dur (https://korben.info/changer-numero-serie-disque-dur.html).

Pour l'instant voila les protections (données mémorisées):
1) Adresse IP
2) email (envoi d'un mail d'activation)
3 )Numéro Disque appli (procédure manuelle chez moi si reformattage)
4) Numéro téléphone (envoi d'un sms d'activation)

Pour tricher il faut :
1) avoir un vpn
2) avoir n emails
3) changer le numéro de série du disque
4) Utiliser le numéro de téléphone d'un tiers

ça fait beaucoup de conditions pour un utilisateur lambda. Mais bon essayons de mieux faire :p

Merci de votre aide :merci:
Membre enregistré
102 messages
Posté le 10 juillet 2018 - 10:14
Bonjour,
Tu crées un guid lors du premier lancement de ton appli Windev, ce guid devrait être unique. tu le stock en db (si ton appli à une db).
Pas de guid = début période d'essai
Guid = moyen d'identifier un utilisateur unique
Yvan
Membre enregistré
312 messages
Popularité : +2 (2 votes)
Posté le 10 juillet 2018 - 10:29
Bonjour,

Quelque soit la solution, les données servant à identifier un utilsateur unique doivent être crypter avec en plus une clé de salage. Mélanger plusieurs techniques sera même mieux.
Maintenant, une question demeure : les utilisateurs de ton application sont-ils des personnes susceptible de pirater l'application?
La réponse à cette question te permettront de savoir jusqu'où tu peux aller dans la sécurité.

Les grand éditeurs (Microsoft, Adobe...) utilisent une identification en ligne (login+mot de passe), c'est peut-être une autre piste à explorer.
Cordialement
Thierry
Membre enregistré
420 messages
Posté le 10 juillet 2018 - 10:37
Bonjour,

Tu stocke le guid en base de registre à 2 endroits, un commun à ton application, et un autre bien enfouie pour empêcher la recherche "classique",
tu envoie le guid et l'adresse mail sur un webservice qui se lance automatiquement avec l'application (timer), qui enregistre les nouveau client et qui check le temps ecoulé, avec le guid et l'adresse mail.

si le webservice renvoie une erreur, tu bloque l'application

si le webservice n'est pas accessible ( modification du host, parefeu), tu bloque l'application

avec les deux guid, tu les compare, si il ne sont pas identique (modification de l'utilisateur), tu bloque l'application.

Jordan
Membre enregistré
268 messages
Popularité : +9 (9 votes)
Posté le 10 juillet 2018 - 10:55
Bonjour,

Quelque soit la solution retenue, si ton système de protection est basé sur une date et ne comporte pas de système anti-debug il suffit de quelques minutes (voire moins) pour by-passer la protection.

A+

--
Francis MOREL
http://www.SoftProtect.fr
Membre enregistré
65 messages
Posté le 10 juillet 2018 - 13:11
Merci les gars que des bonnes pistes :merci:

Pour info l'authentification se fait sur le seveur (web + hfsql) par un fichier utilisateur non crypté (à faire!) . tous les fichiers sont dans ce cas. Pas de fichiers locaux. Le but de l'appli est une aide à la décision (et un peu plus) sur un jeu en ligne

@Yvan : OK. fichier crypté ou clé de hashage ?

@THIERRY TILLIER non ce seront des utilisateur lambda .

@Jordan guid = crypage de (email+num tel + disq id + adresse IP) ?

@Francis MOREL : Désolé pas compris ! Peux-tu détailler ?
Membre enregistré
420 messages
Posté le 10 juillet 2018 - 14:10
crypage de (email+num tel + disq id + adresse IP) ?

Pas forcement, il y a la fonction DonneGUID() :D

mais oui tu pourrais creer ton propre Guid avec toutes les infos que tu souhaite
Posté le 10 juillet 2018 - 14:24
Alain LACLEF a couché sur son écran :
Sauf qu'il est possible de changer le numéro de série d'un disque dur
(https://korben.info/changer-numero-serie-disque-dur.html).

Pour l'instant voila les protections (données mémorisées):
1) Adresse IP
2) email (envoi d'un mail d'activation)
3 )Numéro Disque appli (procédure manuelle chez moi si reformattage)
4) Numéro téléphone (envoi d'un sms d'activation)

Pour tricher il faut :
1) avoir un vpn
2) avoir n emails
3) changer le numéro de série du disque
4) Utiliser le numéro de téléphone d'un tiers

ça fait beaucoup de conditions pour un utilisateur lambda. Mais bon essayons
de mieux faire :p

Merci de votre aide :merci:


encore une fois ceci n'est pas le n° de série de DD mais celui attribué
lors du formatage

n° de série du DD <> n° de série du volume

--
Cordialement JeAn-PhI
Membre enregistré
268 messages
Popularité : +9 (9 votes)
Posté le 10 juillet 2018 - 15:21
Bonjour,

Concernant ta protection sur une période d'essai :
1 - La date de l'ordi peut être changée très facilement, de ce fait si tu ne prends pas un minimum de précaution pour t'assurer des dates utilisées il sera très facile de supprimer ta protection.
2 - Même si ta protection va s'assurer de la date (par exemple en imposant globalement l'utilisation d'un réseau, sans possibilité d'aller ailleurs) il sera toujours possible d'intercepter l'instruction date pour lui faire renvoyer une date conforme.
Ceci n'est pas propre à Windev, l'utilisation d'un débogueur permet de faire ceci avec un minimum de recherche.
Pour remédier à ceci, une seule solution : empêcher l'utilisation conjointe de ton logiciel et d'un débogueur

Maintenant tout dépend de l’Intérêt de ton logiciel, plus l’intérêt est grand plus la tentative de crack est risquée.
A toi de voir, mais si le risque est faible pourquoi faire un truc compliqué !!

--
Francis MOREL
http://www.SoftProtect.fr
Membre enregistré
65 messages
Posté le 11 juillet 2018 - 11:22
@Francis MOREL Tous les fichiers sont sur le serveur. Je comprends ton avis, mais le but est seulement d'éviter la création de comptes multiples pour profiter de n périodes d'esssai.

@JeAn-PhI : J'ai bien compris, mais la valeur est bien une caractéristique de la configuration, non ?
Si il y a reformatage ou réinstallation , l'utilisateur envoie un mail et je raz la valeur.

@Jordan Merci pour la fonction
Posté le 11 juillet 2018 - 16:06
Alain LACLEF a pensé très fort :
@Francis MOREL Tous les fichiers sont sur le serveur. Je comprends ton avis,
mais le but est seulement d'éviter la création de comptes multiples pour
profiter de n périodes d'esssai.

@JeAn-PhI : J'ai bien compris, mais la valeur est bien une caractéristique de
la configuration, non ?
Si il y a reformatage ou réinstallation , l'utilisateur envoie un mail et je
raz la valeur.

si vous utilisez le n° de série du volume oui car il change à chaque
formatage, si vous utiliser le n° de série du DD non il ne change
jamais dans le temps

@Jordan Merci pour la fonction


il est clair qu'il faut combiner plusieurs valeurs pour avoir un
"semblant" d'unicité

--
Cordialement JeAn-PhI
Membre enregistré
65 messages
Posté le 11 juillet 2018 - 17:28
fDisqueInfo ne retourne que le numéro de formatage et non le serial number...
Membre enregistré
766 messages
Popularité : +3 (3 votes)
Posté le 11 juillet 2018 - 18:19
Francis MOREL a écrit :
Bonjour,


1 - La date de l'ordi peut être changée très facilement, de ce fait si tu ne prends pas un minimum de précaution pour t'assurer des dates utilisées il sera très facile de supprimer ta protection.
Francis MOREL
http://www.SoftProtect.fr


Il me semble que les certificats SSL (entre autre) nécessitent d'avoir son pc calé sur la bonne date. Vu le nombre de sont sites grandissant en HTTPS.. changer la date de son PC n'est plus envisageable.. ça peut donc fonctionner.
Membre enregistré
268 messages
Popularité : +9 (9 votes)
Posté le 11 juillet 2018 - 19:44
Bonjour François,

Il doit probablement y avoir des cas ou c'est possible (copie d'écran ci joint - réalisée sans triche) ;)





A+

--
Francis MOREL
http://www.SoftProtect.fr
Membre enregistré
766 messages
Popularité : +3 (3 votes)
Posté le 12 juillet 2018 - 09:44
oops... effectivement
Membre enregistré
696 messages
Popularité : +13 (13 votes)
Posté le 17 juillet 2018 - 06:43
hello,
il existe d'autres infos uniques par ordinateur que l'on peut récupérer en utilisant WMI :
- Le numéro de processeur
- Le nom de la carte mère
- Le numéro de série de la carte mère
- Le numéro de série des disques
- Le numéro de série du BIOS
L'activation peut se faire en calculant le checksum (MD5 par exemple) de la concaténation de toutes les infos récupérées + le nom de l'appli.
Les infos sont envoyées sous forme de fichier zippé crypté par mot de passe interne au serveur pour activation.
Le serveur de licence calcule le checksum de ses infos et renvoie au client un fichier représentant ce checksum sous forme zippée cryptée.
Pour l'activation dans l'application ce fichier est dézippé décrypté et est comparé au checksum qui est calculé en interne dans l'application.
Pour que cela fonctionne il faut bien sur que les infos qui ont servies au calcul du checksum ne changent pas et soient stables.
Cela ne résistera à un débugger qui permettra de trouver l'endroit où est fait le contrôle. Sinon il faut ruser et mettre des contrôles à différents endroits ou utiliser un anti débugger.
Ami calmant, J.P

--
Ami calmant, J.P
Membre enregistré
65 messages
Posté le 17 juillet 2018 - 19:29
Ok merci à tous
Posté le 18 juillet 2018 - 09:51
Salut à tous,

Finalement la protection de logiciels sous licences payantes ne peut avoir que deux types, logique ou physique.
Il me semble que le choix rationnel final de ce type dépend du volume de logiciels diffusés et du montant unitaire de la licence.
Pour ma part j'exploite des niches logiciels donc je n'ai pas besoin de m'assurer d'une protection physique qui finalement est toujours payée par le client ce qui "gonfle" mécaniquement le coût de la licence, commercialement c'est pénalisant.
WinDev utilise un Dongle c'est pas pour rien, ce système propose une protection physique presque "garantie à 100%", tout autre système reste "contournable...

Comment je protège mes softs ?
Déjà je complique la tâche du "mauvais garçon", un peu comme pour un cambrioleur, plus la tache est longue plus il fait de bruit et plus il risque de se faire repérer.
- 1° J'utilise l'installateur "Install créator Pro" qui demande un premier code, je fournis ce code lors de la vente de la licence, cela limite déjà un peu l'action du "casseur" non spécialiste.
- 2° Lors du tout premier lancement du soft ce dernier va chercher le N° de formatage du DD, le crypte et l'affiche dans un fenêtre qui dispose d'un champ en attente de saisie d'un deuxième code.

L'utilisateur doit, soit automatiquement soit par Email m'adresser le N° de formatage crypté affiché (pour lui c'est juste un code), je décrypte ce code et réalise alors son code d'accès permanent que je lui adresse, il doit alors le saisir, sur validation le soft les compare, si c'est ok il s'ouvre.
En fait, l'extraction et le cryptage du N° de formatage du DD se fait sur le poste utilisateur et son décryptage ne peut se faire que par moi.
Lors de la saisie, le deuxième code d'accès permanent est enregistré dans un simple fichier texte dans le répertoire du soft.
Par la suite à chaque ouverture du soft une procédure "silencieuse" compare le N° de formatage crypté et le code d'accès permanent du fichier texte, si c'est ok il s'ouvre sinon c'est la case départ...

Bon ce type de protection n'est surement pas parfaite mais offre un degrés de sécurité en adéquation avec le volume de licences diffusées.
Si par exemple l'utilisateur fait un copier/coller du répertoire contenant le soft vers un autre PC, lors de son lancement les deux codes extrait/fournis ne seront plus concordant, le soft ne pourra s'ouvrir.
Bien entendu cela m'oblige par la suite à gérer les demandes ou fausses demandes après formatage ou les remplacements de DD, donc j'ai inclue dans les termes de la licence d'utilisation (qui doit être approuvée lors de l'installation du soft) ces éventualités, cela précise le nombre de fois ou cette prestation est inclue, après quoi elle devient payante, ainsi cela limite les installations sauvages sur plusieurs postes.

Voilà comment je procède, merci de noter que je ne prétends pas détenir la vérité, que je ne divulgue ni ne vends le code source de non système, si cela intéresse quelqu'un les grandes lignes sont là, alors à vos éditeurs, codez maintenant....




Posté le 18 juillet 2018 - 14:50
Dans notre logiciel on utilise des dongles physiques. C'est assez fiable
mais à la fin de l'année ça a un coût certain.

Je cherche donc à remplacer ça par une solution logicielle. Le principe
que tu évoques conviendrait.

En revanche nous avons pas mal de clients qui travaillent en RDP (donc
une machine physique pour N utilisateurs) ou avec une virtualisation via
virtualbox ou bootcamp (le fichier d'un machine virtuelle peut être
copier facilement).

Du coup, dans ces cas là, l'empreinte physique de la machine n'est pas
trop fiable...

Si quelqu'un a une idée/piste pour protéger tout ce qui est
virtualisation aussi...

Merci,
eric l.

> Le 18/07/2018 à 07:51, Alain a écrit :
Salut à tous,

Finalement la protection de logiciels sous licences payantes ne peut
avoir que deux types, logique ou physique.
Il me semble que le choix rationnel final de ce type dépend du volume de
logiciels diffusés et du montant unitaire de la  licence.
Pour ma part j'exploite des niches logiciels donc je n'ai pas besoin de
m'assurer d'une protection physique qui finalement est toujours payée
par le client ce qui "gonfle" mécaniquement le coût de la licence,
commercialement c'est pénalisant.
WinDev utilise un Dongle c'est pas pour rien, ce système propose une
protection physique presque "garantie à 100%", tout autre système reste
"contournable...

Comment je protège mes softs ?
Déjà je complique la tâche du "mauvais garçon", un peu comme pour un
cambrioleur, plus la tache est longue plus il fait de bruit et plus il
risque de se faire repérer. - 1° J'utilise l'installateur "Install
créator Pro" qui demande un premier code, je fournis ce code lors de la
vente de la licence, cela limite déjà un peu l'action du "casseur" non
spécialiste.
- 2° Lors du tout premier lancement du soft ce dernier va chercher le N°
de formatage du DD, le crypte et l'affiche dans un fenêtre qui dispose
d'un champ en attente de saisie d'un deuxième code.

L'utilisateur doit, soit automatiquement soit par Email m'adresser le N°
de formatage crypté affiché (pour lui c'est juste un code), je décrypte
ce code et réalise alors son code d'accès permanent que je lui adresse,
il doit alors le saisir, sur validation le soft les compare, si c'est ok
il s'ouvre.
En fait, l'extraction et le cryptage du N° de formatage du DD se fait
sur le poste utilisateur et son décryptage ne peut se faire que par moi.
Lors de la saisie, le deuxième code d'accès permanent est enregistré
dans un simple fichier texte dans le répertoire du soft.
Par la suite à chaque ouverture du soft une procédure "silencieuse"
compare le N° de formatage crypté et le code d'accès permanent du
fichier texte, si c'est ok il s'ouvre sinon c'est la case départ...

Bon ce type de protection n'est surement pas parfaite mais offre un
degrés de sécurité en adéquation avec le volume de licences diffusées.
Si par exemple l'utilisateur fait un copier/coller du répertoire
contenant le soft vers un autre PC, lors de son lancement les deux codes
extrait/fournis ne seront plus concordant, le soft ne pourra s'ouvrir.
Bien entendu cela m'oblige par la suite à gérer les demandes ou fausses
demandes après formatage ou les remplacements de DD, donc j'ai inclue
dans les termes de la licence d'utilisation (qui doit être approuvée
lors de l'installation du soft) ces éventualités, cela précise le nombre
de fois ou cette prestation est inclue, après quoi elle devient payante,
ainsi cela limite les installations sauvages sur plusieurs postes.

Voilà comment je procède, merci de noter que je ne prétends pas détenir
la vérité, que je ne divulgue ni ne vends le code source de non système,
si cela intéresse quelqu'un les grandes lignes sont là, alors à vos
éditeurs, codez maintenant....





Membre enregistré
268 messages
Popularité : +9 (9 votes)
Posté le 18 juillet 2018 - 15:26
Bonjour,

Pour info je propose sur mon site une solution de protection d'application Windev facilement intégrable dans un produit existant par un composant.
Ce composant d'un coût modique, permet de protéger le logiciel à votre convenance par un identifiant de l'ordi.
Il peut aussi être utilisé en mode TSE.
Il dispose durant les phases d’enregistrement d'un anti-debug intégré.
Pour ceux qui sont intéressés je vous laisse le soin de consulter mon site, section composant, SoftProtect-Licence.
Une version de démonstration à durée illimitée est disponible pour les utilisations en mode test de Windev.

A+

--
Francis MOREL
http://www.SoftProtect.fr