Page 1 sur 1
[R] Compte Utilisateur Net pour protéger Programme
Posté : dim. 16 nov. 2008 19:30
par deviante
Alors voilà j'ai fait un petit programme en Autoit .
Et je voudrais que ceux qui le téléchargeront ne puisse l'utiliser que si ils ont un compte utilisateur que je leur fournirais.
Donc j'avais pensé à plusieurs solutions, utiliser mysql depuis chaque client pour se connecter au compte verifier que le compte est valide et si oui alors le reste du programme peut être utilisé. Mais pour mysql sur autoit il semble qu'il faille installer les OCBD drivers et j'ai pas envie de l'imposer aux personnes qui téléchargeront le programme..... donc je vois pas cette solution comme envisageable, a moins que ce soit moi qui complique tout ^^.
Donc la deuxieme solution que j'envisageais c'est qu'avant que l'utilisateur puisse utiliser toutes les fonctions du programme, il devrait se connecter (depuis le programme, comme un genre de mini navigateur intégré qui ne so'uvrirait que sur la page de connexion) donc toute la partie vérification etc se passerait sur le navigateur j'aurais donc un hébèrgment pour un script php léger et une base de donnée ... et si le compte est bon l'utilisateur peut utiliser le programme (les boutons se dégrisent par exemple) sinon il ne peut que quitter ou ressayer de se connecter.
Donc est ce que c'est envisageable, pas trop compliqué?
Ce qui me fait surtout peur c'est de faire communiquer le script autoit lancer sur la machine de l'utilisateur et la page php .
Merci d'avance pour votre aide
Re: [..] Compte Utilisateur Net pour protéger Programme
Posté : dim. 16 nov. 2008 20:15
par jbnh
Pourquoi pas simplement mettre un pass à ton programme avec un simple msgbox sinon tu met un fichier txt ou ini sur ftp avec les comptes disponible et tu vérifies comme ca.
Re: [..] Compte Utilisateur Net pour protéger Programme
Posté : dim. 16 nov. 2008 20:20
par Tlem
Tout est possible.
Pour faire simple, un login/passwd stocké sur un fichier distant (avec le passwd modifié périodiquement).
Autre solution (déjà discuté sur le forum) une clé en fonction de certaines caractéristiques de la machine.
Voilà. Vous n'avez qu'a faire votre choix.
Re: [..] Compte Utilisateur Net pour protéger Programme
Posté : dim. 16 nov. 2008 20:20
par deviante
Parce que faire un systeme de protection si ils se refilent le pass ne sert a rien ?
J'y ai pensé, faire un genre de clé cd , le probleme c'est qu'ils vont se refiler le pass ou autre, ca c'est inévitable, avec une database je verais si un compte est utilisé par 2 personnes diférentes en même temps ! donc je pourrais le désactivé simplement et demander des explications

Re: [..] Compte Utilisateur Net pour protéger Programme
Posté : dim. 16 nov. 2008 20:31
par deviante
Donc ouai et donc comment intégrer une page html +php un mini navigateur dans mon script autoit? y a un contrôle existant? et comment faire pour "communiquer entre la page web et le script php genre "compte accepté" , de manière sécurisé bien entendue , avec le module IE3 peut être?
Re: [..] Compte Utilisateur Net pour protéger Programme
Posté : dim. 16 nov. 2008 20:50
par deviante
Ha apparament IE.au3 avec ieCreate() correspondrait a ce que je cherche, apres faudra voir si il est facile de récupérer les informations !
Re: [..] Compte Utilisateur Net pour protéger Programme
Posté : dim. 16 nov. 2008 21:21
par Tlem
deviante a écrit :donc comment intégrer une page html +php un mini navigateur dans mon script autoit?
Ha ben ouais, pourquoi faire simple quand on peut faire compliqué !
Je suis stupéfait de voir le nombre de gens qui cherchent à faire des choses super compliqué pour si peux.

Re: [..] Compte Utilisateur Net pour protéger Programme
Posté : lun. 17 nov. 2008 00:13
par deviante
Ok certes mon truc te parait compliqué mais je faisais référence a WebBrowser de Visual studio par exemple c'est aussi simple à mettre qu'un bouton

donc je cherchais si engros ce genre de composant existait, mon but c'est justement de pas faire une uzine à gaz

Re: [..] Compte Utilisateur Net pour protéger Programme
Posté : lun. 17 nov. 2008 00:54
par Tlem
Hummm, ben je vois pas trop la finalité d'une telle gestion dans une appli (fenêtre de navigateur intégré) dans ce cas un simple accès par un navigateur classique et demande de code devrait suffire.
Et quand est-il si l'utilisateur n'a pas accès à internet ?
Pour faire presque simple

(AMHA), sur votre site Web utilisez la gestion sur un répertoire d'un fichier .htaccess et .htpasswd, puis dans votre application l'accès à un fichier ou une page protégée par le .htaccess (login + passwd de ce type :
http://user:passwd@monsite.fr) et si ok on valide une clé à durée déterminée dans la base de registre.
De temps en temps, demander de ré-actualiser cette clé pour continuer l'utilisation du logiciel.
Pour plus de sécurité et éviter le réglage de l'horloge pour gagner du temps, vous pouvez adjoindre un fichier historique qui mémorise de manière codée l'utilisation du logiciel (dernière date et heure d'utilisation par exemple).
Si le fichier est supprimé alors blocage.
Si un ancien fichier est restauré et que la clé de la base de registre ne correspond pas alors blocage.
Si la date est antérieure à l'historique de l'utilisation alors blocage.
Etc ...
Vous pouvez aussi en cas d'impossibilité de l'utilisateur d'avoir accès à internet rajouter une fonction de déblocage par code qui autorise l'utilisation du logiciel pour une période X.
Évidement, ce code devra être généré en fonction de la date en cours et dépendent du fichier de protection.
Re: [..] Compte Utilisateur Net pour protéger Programme
Posté : lun. 17 nov. 2008 04:25
par deviante
Et quand est-il si l'utilisateur n'a pas accès à internet ?
__________________________
Il n'est pas censé utiliser le programme si il n'a pas le net

, ton systeme est intéressant aussi mais quid de si ils se refilent les clés ou les pass pour le htaccess avec un navigateur intégré :
1- ils ne peuvent pas changer l'URL contrairement a n'importe quel fenetre firefox ou ie.
2- ils sont obligés de se loguer pour avoir accés aux fonctions du programme a chaque fois -> je peux donc enregistrer chacune des utilisations dans une base de données, et avec l'ip vite voir si on se fou de ma geule ou non :p
3 - Le navigateur intégré je peux aussi l'utiliser pour afficher des news ou autres informations sans avoir besoin d'uploader un fichier réguliérement.
4- avec une database si je me rend compte que certains utilisent le même compte, suffit que je change la valeure de ce compte a bloqué et c'est réglé on en parle plus !
Après ca n'est probablement pas infaillible, le but c'est pas de faire le Hackshield tu siecle , juste d'éviter un minimum la copie abusive.....
Enfaite l'histoire de la page web, c'est juste parce que faire une requete sql direct depuis autoit c'est trop tordu , faudrait que les gens installent les ocbd drivers et c'est hors de question... ca aurait probablement été plus simple par visual basic ou autre mais je ne connais pas trop ces langages et autoit facilite tout de même la vie en général:p
Re: [..] Compte Utilisateur Net pour protéger Programme
Posté : lun. 17 nov. 2008 07:51
par jbnh
c'est compliqué tout ces machins. Tu pourrais aussi travailler en deux étapes pour éviter tout problème. Chaque jour tu génères x serial number valable 24h, les membres enregistrés doivent se connecter a ton site pour avoir au hasard 1 des sérial. Une fois le sérial entré dans ton programme, tu lui met un caractère spécial apres dans ton fichier ftp.
Exemple: Keygen.txt
1111111111111111
2222222222222222
3333333333333333
si le
222222222222222 est utilisé il devient 222222222222222@ et donc si quelqu'un d'autre l'utilises le @ est détecté, impossible d'accéder au programme.
Ca devient un peu tiré par les cheveux j'avoue. Mais au moins pas de multi-utilisation.
Re: [..] Compte Utilisateur Net pour protéger Programme
Posté : lun. 17 nov. 2008 08:05
par Tlem
deviante a écrit :Il n'est pas censé utiliser le programme si il n'a pas le net
Voilà une information que vous n'aviez pas donné ...
deviante a écrit :mais quid de si ils se refilent les clés ou les pass pour le htaccess avec un navigateur intégré
Ils ne peuvent pas car la partie login/passwd est gérée par le logiciel et bien évidement lors de la première connexion un sérial est généré rendent l'application de l'utilisateur unique et lié à sa machine.
deviante a écrit :2- ils sont obligés de se loguer pour avoir accés aux fonctions du programme a chaque fois -> je peux donc enregistrer chacune des utilisations dans une base de données, et avec l'ip vite voir si on se fou de ma geule ou non :p
C'est du TSE qu'il vous faut et non une appli autonome ...
deviante a écrit :3 - Le navigateur intégré je peux aussi l'utiliser pour afficher des news ou autres informations sans avoir besoin d'uploader un fichier réguliérement.
Encore une info importe que vous avez omis de signaler.
deviante a écrit :4- avec une database si je me rend compte que certains utilisent le même compte, suffit que je change la valeure de ce compte a bloqué et c'est réglé on en parle plus !
Si vous voulez faire ça en temps réel, il n'y à que ça effectivement.
deviante a écrit :Après ca n'est probablement pas infaillible, le but c'est pas de faire le Hackshield tu siecle , juste d'éviter un minimum la copie abusive.....
Ouaip, bof, il suffit de décompiler votre appli, et hop, plus de protection.
deviante a écrit :c'est juste parce que faire une requete sql direct depuis autoit c'est trop tordu , faudrait que les gens installent les ocbd drivers et c'est hors de question...
De tête il existe un UDF pour faire ça !
deviante a écrit :ca aurait probablement été plus simple par visual basic ou autre
J'en doute, car si vous avez besoin d'un ODBC, que ce soit avec VB ou C++ ... c'est la même chose.
Re: [..] Compte Utilisateur Net pour protéger Programme
Posté : lun. 17 nov. 2008 08:11
par jbnh
Tlem a écrit :
deviante a écrit:
Après ca n'est probablement pas infaillible, le but c'est pas de faire le Hackshield tu siecle , juste d'éviter un minimum la copie abusive.....
Ouaip, bof, il suffit de décompiler votre appli, et hop, plus de protection.
J'ai envie de dire que si il décompile le script, quoi qu'il arrive, c'est foutu (mysql, compte ftp, adresse du fichier ou sont stockés les keys,...)
Ou alors me trompe-je?
Re: [..] Compte Utilisateur Net pour protéger Programme
Posté : lun. 17 nov. 2008 08:13
par Tlem
Re: [..] Compte Utilisateur Net pour protéger Programme
Posté : lun. 17 nov. 2008 13:41
par deviante
Je suis conscient pour le décompil c'est pour ça que je veux faire une protection minimum mais j'ai bien conscience que contre les plus hardus je pourrais rien faire, de toute façon qui pourrait au fond
Désolé pour les infos que j'avais oublier de préciser, et merci pour votre aides, même si je reste sur la base d'un navi intégré , vous m'avez éclairé sur les "clés cd" et autre solutions plus "internes" au programme et ca me servira pour d'autres fois ....
Parcontre Telm je sais pas si c'est pas simplifié avec c# ou autre vb , avec . net on doit pouvoir faire ce genre de chose j'imagine mais bon c'est un forum autoit ...
encore merci pour votre aide je met le topic en R
Re: [R] Compte Utilisateur Net pour protéger Programme
Posté : jeu. 20 nov. 2008 02:13
par jl56
bonjour deviante
Pour quelques un de mes scripts
j'utilise le n° de série du disque dur
dans ton script teste la présence d'un fichier ex. protection.txt
si il n'est pas présent, ton script donne le n° de série à l'utilisateur qui te le transmet par mail
toi tu te sert de ce n° pour générer le fichier crypté ensuite tu l'envoie à l'utilisateur
à chaque lancement ton script lira dans le fichier protection.txt le n° de serie et le compare au disque si il est différent bail bail
ex. de génération du fichier
Code : Tout sélectionner
#include <String.au3>
$filesp=FileOpen(@HomeDrive&"\protection.txt",2)
$var = DriveGetSerial(@HomeDrive)
$crypte=_StringEncrypt(1,$var,"deviante",2)
FileWriteLine($filesp,$crypte)
FileClose($filesp)
;test du fichier
$filesp=FileOpen(@HomeDrive&"\protection.txt",0)
$crypte=FileReadLine($filesp)
FileClose($filesp)
$var = DriveGetSerial(@HomeDrive)
$decrypte=_StringEncrypt(0,$crypte,"deviante",2)
if $decrypte=$var then
MsgBox(0,"","ok pour "&$var)
else
MsgBox(0,"","erreur de protection")
endif
a+ jl56
Re: [R] Compte Utilisateur Net pour protéger Programme
Posté : mar. 12 oct. 2010 13:51
par jadubu
Bonjour,
en utilisant la fonction "DrivegetSerial" on obtient le windows volume ID et non le n° de série du disque .
le test avec 2 clés usb du même fabricant et même modèle renvoi la même valeur.
comment trouver le n° de série "hardware" d'un disque ?
merci
Re: [R] Compte Utilisateur Net pour protéger Programme
Posté : mar. 12 oct. 2010 16:54
par Jerome
Coucou,
Voila des éléments de réponse si DriveGetSerial ne convient pas...
ici
et :
Code : Tout sélectionner
$IpList = "127.0.0.1"
Dim $objWMIService = ObjGet("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" _
& $IpList & "\root\cimv2")
Dim $colDrives = $objWMIService.ExecQuery _
("Select * From Win32_DiskDrive")
For $objDrive in $colDrives
MsgBox("", "", "Drive letter: " & $objDrive.DeviceID & @CRLF)
Next
Jérôme