Rendre Executable Utilisable Une Seule Fois
Règles du forum
- Merci de consulter la section "Règles du forum" et plus particulièrement "Règles et Mentions Légales du site autoitscript.fr" avant d'écrire un message.
Rendre Executable Utilisable Une Seule Fois
Bonjour à tous!
J'ai une question qui peut paraître simple pour beaucoup mais moins pour moi qui met les pied sur AutoIt depuis une semaine seulement
J'ai besoin de faire un "logiciel" qui ne serait utilisable qu'une fois, est-ce possible?
C'est à dire qu'un fois que l’exécutable est lancé, il ne le sera plus jamais. j'ai pensé à créer des fichiers dans des répertoires de l'ordinateur mais ça signifie que si le fichier va sur une autre machine, il est réutilisable.
Cela est-il possible? Que l'exe s'auto modifie?
Il y a aussi la solution de stocker une valeur sur un serveur en ligne et e verifier sur ma BDD, qu'en pensez vous?
Merci à tous!
J'ai une question qui peut paraître simple pour beaucoup mais moins pour moi qui met les pied sur AutoIt depuis une semaine seulement
J'ai besoin de faire un "logiciel" qui ne serait utilisable qu'une fois, est-ce possible?
C'est à dire qu'un fois que l’exécutable est lancé, il ne le sera plus jamais. j'ai pensé à créer des fichiers dans des répertoires de l'ordinateur mais ça signifie que si le fichier va sur une autre machine, il est réutilisable.
Cela est-il possible? Que l'exe s'auto modifie?
Il y a aussi la solution de stocker une valeur sur un serveur en ligne et e verifier sur ma BDD, qu'en pensez vous?
Merci à tous!
- Tlem
- Site Admin
- Messages : 11773
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: Rendre Executable Utilisable Une Seule Fois
Bonjour Antho, il existe différentes solutions pour essayer de "protéger" un exécutable, mais généralement la motivation de celui qui va vouloir le pirater, sera proportionnelle à la protection mise en place.
En fait, toutes les protections gratuites que vous pourrez mettre en place sur un script AutoIt seront très facilement contournable.
Donc après il faut estimer les risques et savoir jusqu'où en temps et en ressources vous êtes capable d'aller. ^^
Une simple autodestruction de l'exe permet une forme simple d'autoprotection, mais il suffit d'en avoir une copie pour contourner le problème.
Après il y a la possibilité d'utiliser un identifiant unique de la machine du client mais là il vous faudra compiler chaque exe à la demande afin de le personnaliser.
Et là aussi il est toujours possible de decompiler l'exe pour y apporter les modifications nécessaires.
Bref je n'ai fait que survoler à des centaines de kilomètre le sujet. Faites quelques recherches sur le forum, vous verrez que cela n'est franchement pas aussi simple que ça.
Cordialement
Thierry
En fait, toutes les protections gratuites que vous pourrez mettre en place sur un script AutoIt seront très facilement contournable.
Donc après il faut estimer les risques et savoir jusqu'où en temps et en ressources vous êtes capable d'aller. ^^
Une simple autodestruction de l'exe permet une forme simple d'autoprotection, mais il suffit d'en avoir une copie pour contourner le problème.
Après il y a la possibilité d'utiliser un identifiant unique de la machine du client mais là il vous faudra compiler chaque exe à la demande afin de le personnaliser.
Et là aussi il est toujours possible de decompiler l'exe pour y apporter les modifications nécessaires.
Bref je n'ai fait que survoler à des centaines de kilomètre le sujet. Faites quelques recherches sur le forum, vous verrez que cela n'est franchement pas aussi simple que ça.
Cordialement
Thierry
Thierry
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Re: Rendre Executable Utilisable Une Seule Fois
Merci Thierry pour la réponse!
Je vais regarder un peu ce qui se fait Mes clients n'étant pas des férus, ça limite le risque ^^
C'est juste pour éviter à certains d'exploiter ma solution automatisée.
Je vais miser sur un mot de passe à l'ouverture + suicide une fois que tout s'est bien déroulé
Cordialement,
Anthonin
Je vais regarder un peu ce qui se fait Mes clients n'étant pas des férus, ça limite le risque ^^
C'est juste pour éviter à certains d'exploiter ma solution automatisée.
Je vais miser sur un mot de passe à l'ouverture + suicide une fois que tout s'est bien déroulé
Cordialement,
Anthonin
- walkson
- Modérateur
- Messages : 1020
- Enregistré le : ven. 12 août 2011 19:49
- Localisation : Hurepoix
- Status : Hors ligne
Re: Rendre Executable Utilisable Une Seule Fois
Bonjour,
C'est pas compliqué mais des fois ça peut aider
C'est pas compliqué mais des fois ça peut aider
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Outfile=prog1.exe
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
If Not @Compiled Then Exit MsgBox(16,"","non compilé")
$tps = FileGetAttrib(@ScriptDir & "\prog1.exe")
MsgBox(0,"Pour voir",$tps,2)
If $tps = "AT" Then Exit MsgBox(16,"","plus de lancement",2)
MsgBox(32,"Ici le programme","premier lancement",2)
FileSetAttrib(@ScriptDir & "\prog1.exe","+T")
#AutoIt3Wrapper_Outfile=prog1.exe
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
If Not @Compiled Then Exit MsgBox(16,"","non compilé")
$tps = FileGetAttrib(@ScriptDir & "\prog1.exe")
MsgBox(0,"Pour voir",$tps,2)
If $tps = "AT" Then Exit MsgBox(16,"","plus de lancement",2)
MsgBox(32,"Ici le programme","premier lancement",2)
FileSetAttrib(@ScriptDir & "\prog1.exe","+T")
Cordialement,
Walkson
"Horas non numero nisi serenas " Le canon de midi
(Je ne compte que les heures heureuses)
Walkson
"Horas non numero nisi serenas " Le canon de midi
(Je ne compte que les heures heureuses)
Re: Rendre Executable Utilisable Une Seule Fois
Merci Walkson pour ce partage !
Ça invalide l'exe en fonction de la date si je comprends bien le code?
J'ai une autre question, j'ai un soucis de connexion à une BDD en SQL, voici un code que j'ai récupéré ici (oui c'est mal de pas créer ^^)
Certains ont des soucis avec de simples requètes, moi c'est à la connexion à la BDD, pour mes essais en local, j'ai une erreur au bout de 5-10 seconde de "moulinage"...
Voici mon code:
Et voici l'erreur générée:
Merci de vos lumières!
Ça invalide l'exe en fonction de la date si je comprends bien le code?
J'ai une autre question, j'ai un soucis de connexion à une BDD en SQL, voici un code que j'ai récupéré ici (oui c'est mal de pas créer ^^)
Certains ont des soucis avec de simples requètes, moi c'est à la connexion à la BDD, pour mes essais en local, j'ai une erreur au bout de 5-10 seconde de "moulinage"...
Voici mon code:
Code : Tout sélectionner
Global $adCN
$constrim="DRIVER={SQL Server};SERVER=localhost;DATABASE=bddvag;uid=root;pwd=root;"
$adCN = ObjCreate ("ADODB.Connection") ; <== Create SQL connection
$adCN.Open ($constrim) ; <== Connect with required credentials
MsgBox(0,"",$constrim )
if @error Then
MsgBox(0, "Erreur BDD", "Connexion à la base échouée")
Exit
Else
MsgBox(0, "Réussi!", "Connexion à la base réussie!")
EndIf
$sQuery = "select * from maj"
$result = $adCN.Execute($sQuery)
MsgBox(0, "", $result.Fields( "s_username" ).Value)
$adCN.Close ; ==> Close the database
Et voici l'erreur générée:
Code : Tout sélectionner
>"C:\Program Files (x86)\AutoIt3\SciTE\..\autoit3.exe" /ErrorStdOut "D:\TestBDD.au3"
"D:\TestBDD.au3" (10) : ==> The requested action with this object has failed.:
$adCN.Open ($constrim)
$adCN^ ERROR
>Exit code: 1 Time: 17.05
- walkson
- Modérateur
- Messages : 1020
- Enregistré le : ven. 12 août 2011 19:49
- Localisation : Hurepoix
- Status : Hors ligne
Re: Rendre Executable Utilisable Une Seule Fois
Oubliez mon code, je suis à coté de mes pompes
[Edit] j'ai rectifié en modifiant les attributs mais sans intérêt. Les attributs sont modifiés en changeant d'ordinateur et renvoie sur archive
[Edit] j'ai rectifié en modifiant les attributs mais sans intérêt. Les attributs sont modifiés en changeant d'ordinateur et renvoie sur archive
Cordialement,
Walkson
"Horas non numero nisi serenas " Le canon de midi
(Je ne compte que les heures heureuses)
Walkson
"Horas non numero nisi serenas " Le canon de midi
(Je ne compte que les heures heureuses)
- jchd
- AutoIt MVPs (MVP)
- Messages : 2272
- Enregistré le : lun. 30 mars 2009 22:57
- Localisation : Sud-Ouest de la France (43.622788,-1.260864)
- Status : Hors ligne
Re: Rendre Executable Utilisable Une Seule Fois
Une possibilité : fournir un .exe qui ne sera qu'une coquille essentiellement vide et qui reposera sur le téléchargement à la volée et le lancement d'une autre partie exécutable fonctionnelle (utile) depuis un serveur après fourniture d'identifiants uniques, faciles à bloquer sur le serveur après la première (ou Nième) utilisation.
La contrepartie c'est le besoin d'une connexion Internet, mais c'est aujourd'hui une contrainte faible.
Par contre, c'est contournable par des petits fûtés qui se feraient avoir le 1er coup mais seraient capables de mettre en oeuvre les moyens requis pour capturer en bon état, lors d'un second achat, l'ensemble de l'image exécutable pour réutilisation ultérieure. On peut quand même faire en sorte que ce soit loin d'être trivial.
La contrepartie c'est le besoin d'une connexion Internet, mais c'est aujourd'hui une contrainte faible.
Par contre, c'est contournable par des petits fûtés qui se feraient avoir le 1er coup mais seraient capables de mettre en oeuvre les moyens requis pour capturer en bon état, lors d'un second achat, l'ensemble de l'image exécutable pour réutilisation ultérieure. On peut quand même faire en sorte que ce soit loin d'être trivial.
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
Re: Rendre Executable Utilisable Une Seule Fois
Jchd c'est une idée de génie!!
Je n'y avais pas pensé comme ça! L'idée serait de faire un second exe qui télécharge le premier en le cachant bien comme il faut pour ensuite l'executer et qu'il disparaisse avec la fonction suicide que je lui ai inclus déjà!
Pour le prochain achat, c'est plus simple car c'est une mise à jour d'un câble qui une fois faite n'est plus nécessaire et que forcément si un client le commande 5 fois ça me permet de faire attention en amont
Je n'y avais pas pensé comme ça! L'idée serait de faire un second exe qui télécharge le premier en le cachant bien comme il faut pour ensuite l'executer et qu'il disparaisse avec la fonction suicide que je lui ai inclus déjà!
Pour le prochain achat, c'est plus simple car c'est une mise à jour d'un câble qui une fois faite n'est plus nécessaire et que forcément si un client le commande 5 fois ça me permet de faire attention en amont
- TommyDDR
- Modérateur
- Messages : 2086
- Enregistré le : mar. 22 juil. 2008 21:55
- Localisation : Nantes
- Status : Hors ligne
Re: Rendre Executable Utilisable Une Seule Fois
Je ne sais pas de quelle fonction suicide vous parlez, mais il y en a une inclue dans l'installation de scite 4 autoit, si vous faires : "selfdelete" puis espace :
Func _SelfDelete($iDelay = 0)
Local $sCmdFile
FileDelete(@TempDir & "scratch.bat")
$sCmdFile = 'ping -n ' & $iDelay & '127.0.0.1 > nul' & @CRLF _
& ':loop' & @CRLF _
& 'del "' & @ScriptFullPath & '" > nul' & @CRLF _
& 'if exist "' & @ScriptFullPath & '" goto loop' & @CRLF _
& 'del ' & @TempDir & 'scratch.bat'
FileWrite(@TempDir & "scratch.bat", $sCmdFile)
Run(@TempDir & "scratch.bat", @TempDir, @SW_HIDE)
EndFunc
Local $sCmdFile
FileDelete(@TempDir & "scratch.bat")
$sCmdFile = 'ping -n ' & $iDelay & '127.0.0.1 > nul' & @CRLF _
& ':loop' & @CRLF _
& 'del "' & @ScriptFullPath & '" > nul' & @CRLF _
& 'if exist "' & @ScriptFullPath & '" goto loop' & @CRLF _
& 'del ' & @TempDir & 'scratch.bat'
FileWrite(@TempDir & "scratch.bat", $sCmdFile)
Run(@TempDir & "scratch.bat", @TempDir, @SW_HIDE)
EndFunc
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679