Page 1 sur 1

[R] Vérrouiller une clé usb ?

Posté : jeu. 08 nov. 2007 20:11
par nono49
Bonjour,

Connaissez vous un moyen pour verrouiller la copie d'un fichier installé sur une clé usb traditionnelle ?

L'idée est de limiter la recopie de cet exe d'une clé à une autre (ou vers un autre support) après son premier lancement par exemple.

Merci

Posté : jeu. 08 nov. 2007 22:26
par Tlem
Il n'y à pas de réelle solution a votre besoin.

A partir du moment, ou on peut lancer le fichier, il est donc accessible en lecture, et donc on peut le copier.

Un forme de solution, serait de lier ce programme à la clé (en récupérant le N° de série du média (Pas simple à contourner)

Code : Tout sélectionner

$Serial = "2154117752" ; Placer ici le numéro de série du support. 
If DriveGetSerial ( StringLeft ( @ScriptDir , 2 ) ) <> $Serial Then 
MsgBox ( 0 , "Erreur" , "Ce programme ne peut fonctionner que sur sont support , " & @CRLF & "Formatage et auto - destruction en cours ..." , 5 ) 
_SelfDelete ( ) 
EndIf

; ======================= Fonctions ======================= 
Func _SelfDelete ( $iDelay = 0 ) 
Local $sCmdFile
FileDelete ( @TempDir & "\scratch.bat" ) 
$sCmdFile = 'ping - n ' & $iDelay & '127.0.0.1 > nul' & @CRLF _ 
& ':loop' & @CRLF _ 
& 'del "' & @ScriptFullPath & '"' & @CRLF _ 
& 'if exist "' & @ScriptFullPath & '" goto loop' & @CRLF _ 
& 'del ' & @TempDir & '\scratch.bat' 
FileWrite ( @TempDir & "\scratch.bat" , $sCmdFile ) 
Run ( @TempDir & "\scratch.bat" , @TempDir , @SW_HIDE ) 
EndFunc

récup sérial du support

Posté : ven. 09 nov. 2007 09:02
par nono49
Bonjour,

Merci de cette réponse rapide.
Le principe de se baser sur le numéro de série du support me semble très bonne.

On envisage une mise en production à plus ou moins "grande échelle". Est-ce que j'ai un moyen lors d'une première execution d'ajouter dans le script une interrogation pour récupérer le numéro de série de façon plus automatique ?

Merci

Posté : ven. 09 nov. 2007 18:11
par Tlem
Tout est possible, mais pour être sur de limité le contournement de la protection, je vous conseil de rentrer le numéro de série dans le code, et de compiler le tout.

Une autre solution est possible :
Entrez le numéro de série de la clé dans un fichier texte.
Il vous faudra bien évidement crypter ce numéro, pour éviter le piratage.

Autre solution, au 1er lancement, si le fichier contenant la clé n'existe pas, demande de code (Code long (10 à 20 caractères), avec caractères alphanumérique, majuscule, et caractères spéciaux) pour création du fichier.
Si possible, vous pouvez créer une protection qui prendra en compte divers éléments de la machine hôte (Sérial XP, Date, Heure, heure de modif d'un certain fichier/dossier qui ce modifie régulièrement comme le dossier System32 par exemple) pour générer une clé unique, qui vous permettra de rentrer un code 'd'activation'.
Cela vous permettra pour une raison ou une autre de débloquer un client qui ce serait acheter sa propre clé.

merci

Posté : ven. 09 nov. 2007 19:47
par nono49
merci de ces infos
Nous allons creuser de ce côté.

Posté : ven. 09 nov. 2007 21:29
par SurPriseS
euh, j'y vais de mon idée aussi ^^
Tlem par contre si on supprime le fichier sur la clé bah le script croira que c'est le premier lancement non ? donc il suffirais de supprimer se fichier pour que tout marche a nouveau ? (j'ai peut être mal compris une partie ^^)
Bref mon idée :
Pourquoi ne pas faire 2 scripts a la place d'un seul ? visiblement le but et de verrouiller le fichier a sa propre clé usb et pas une autre si j'ai bien compris, le problème intégrés des info propre a la clé dans le programme et ce a grande échelle, donc si l'on fait 2 script (le premier générant le second) on pourrais avoir :
>premier script compilé qui génère l'autre (j'ai cru voir un topic ou il y aurais seulement besoin d'un exe de autoit pour effectué une compilation, ou j'ai mal lu :p) se premier script pourras donc récupéré les info de la clé, pour généré le code avec ces info, compiler le programme, puis s'auto détruire une fois le fichier compiler.
On se retrouverais avec un fichier contenant les info de la clé usb et uniquement de celle ci :)

Je sais pas si c'est possible (et réalisable a grande echelle) mais c'est la première idée que j'ai eu ;)

Posté : ven. 09 nov. 2007 23:30
par Tlem
SurPriseS a écrit :Tlem par contre si on supprime le fichier sur la clé bah le script croira que c'est le premier lancement non ?
Tout à fait, mais dans ce cas, il fournira un code qui permettra de générer une clé, qui elle même permettra la création d'un nouveau fichier de clé !
SurPriseS a écrit :donc il suffirais de supprimer se fichier pour que tout marche a nouveau ?
Et ben non, car si on supprime le fichier, rien ne fonctionne puisque le fichier contient le numéro de série de la clé, et que sans le code approprié au moment, le fichier ne peut être re-générer.

J'insiste sur le fait que le code doit être 'aléatoire', ce qui permettra de générer une clé qui ne servira qu'une seule fois.

MERCI !

Posté : sam. 10 nov. 2007 00:07
par nono49
Bonjour,

Dans un premier temps, nous restons sur l'idée plus simple de tlem.

Nous allons tester et verrons.


Merci

Posté : sam. 10 nov. 2007 18:55
par SurPriseS
A ok j'avais mal compris :oops: