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 - 19 réponses
Membre enregistré
64 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é
287 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é
64 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é
64 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é
100 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é
287 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é
406 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é
256 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é
64 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é
406 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é
256 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é
64 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é
64 messages
Posté le 11 juillet 2018 - 17:28
fDisqueInfo ne retourne que le numéro de formatage et non le serial number...
Membre enregistré
683 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é
256 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é
683 messages
Popularité : +3 (3 votes)
Posté le 12 juillet 2018 - 09:44
oops... effectivement
Membre enregistré
691 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