[Batch] - Créer un serial et le reconnaitre

Résolu/Fermé
dédéthepathé - 18 mai 2009 à 20:20
 dédéthepathé - 18 mai 2009 à 21:09
Bonjour,
Je viens du forum sur la bureautique, ou j'ai demandé comment connaitre tous les calculs dont le résultat est un nombre x. On m'a dit qu'il faut des supercalculateurs de la Nasa.^^

J'avais posé cette question pour créer un Keygen(pour que je puisse avoir des clés a diistribuer à mes utilistaeur), et sécuriser mon Batch.
Je comptais procéder de cette façon:

=============================================
@echo off
set key1=
set /p key1=Entrez le premier code d'enregistrement:
rem La l'utilisateur entre le premier serial
pause
set key2=
set /p key2=Entrez le 2eme code d'enregistrement:
rem il rentre le 2eme serial
set key3=
set /p key3=Entrez le3eme code d'enregistrement:
rem il rentre le 3eme serial
pause
set key4=
set /p key4=Entrez le 2eme code d'enregistrement:
rem il rentre le 4eme serial
pause
set /a testserial=%key1%+%key2%-%key3%*%key4%
if "%testserial%"==146743 (
cls
echo super!
pause
) else (
cls
echo Mauvais sérial!
pause
)
=======================================

Je connais %random% pour générez des chiffres aléatoires, mais je ne pourrais pas controller l'authenticité du sérial. Je voudrais quelques idées s'il vous plait.
A voir également:

9 réponses

HostOfSeraphim Messages postés 6750 Date d'inscription jeudi 2 février 2006 Statut Contributeur Dernière intervention 31 juillet 2016 1 607
18 mai 2009 à 20:27
En gros, dans ton exemple, tu voudrais trouver tous les calculs qui mènent à 146743 ?

Tu te un compliques la vie... Sans être incassable (en même temps, qui peut s'en vanter ?), tu peux mettre en place des serials de 8 chiffres, où tu mets des conditions de validité, par exemple :

- Le premier chiffre doit être pair
- Le second chiffre doit être impair
- Le troisième chiffre doit être supérieur à 4
- Le quatrième chiffre doit être impair
- Le cinquième chiffre doit être égal au premier chiffre
- Le sixième chiffre doit être inférieur à 5
- Le septième chiffre doit être dans les 5 premières décimales de pi
- Le huitième chiffre doit être le premier chiffre du total des 7 premiers chiffres

Avec cela, tu peux facilement te faire un générateur de serials valides.

1
dédéthepathé
18 mai 2009 à 20:37
Merci pour vos réponses!
Biensur, le Batch sera compilé!
Je voulais partir sur ça au début:
==============================
@echo off
set /a key1=8121993
set /a key2=92100
set /a key3=45270
set /a key4=23954
set /a key5=29873
set /a key6=7699
set /a key7=27291
set /a key8=11305
set /a key9=11905
set /a key10=23839
set /a key11=20544
set /a key12=23072
set /a combi1=%key1%-%key2%-%key3%+%key4%
set /a combi2=%key1%-%key2%-%key3%+%key5%
set /a combi3=%key1%-%key2%-%key3%+%key6%
set /a combi4=%key1%-%key2%-%key3%+%key7%
set /a combi5=%key1%-%key2%-%key3%+%key8%
set /a combi6=%key1%-%key2%-%key3%+%key9%
set /a combi7=%key1%-%key2%-%key3%+%key10%
set /a combi8=%key1%-%key2%-%key3%+%key11%
set /a combi9=%key1%-%key2%-%key3%+%key12%
set /a combi10=%key1%+%key2%-%key3%-%key4%
set /a combi11=%key1%+%key2%-%key3%-%key5%
set /a combi12=%key1%+%key2%-%key3%-%key6%
set /a combi13=%key1%+%key2%-%key3%-%key7%
set /a combi14=%key1%+%key2%-%key3%-%key8%
set /a combi15=%key1%+%key2%-%key3%-%key9%
set /a combi16=%key1%+%key2%-%key3%-%key10%
set /a combi17=%key1%+%key2%-%key3%-%key11%
set /a combi18=%key1%+%key2%-%key3%-%key12%
set /a combi19=%key1%-%key2%+%key3%-%key4%
set /a combi20=%key1%-%key2%+%key3%-%key5%
set /a combi21=%key1%-%key2%+%key3%-%key6%
set /a combi22=%key1%-%key2%+%key3%-%key7%
set /a combi23=%key1%-%key2%+%key3%-%key8%
set /a combi24=%key1%-%key2%+%key3%-%key9%
set /a combi25=%key1%-%key2%+%key3%-%key10%
set /a combi26=%key1%-%key2%+%key3%-%key11%
set /a combi27=%key1%-%key2%+%key3%-%key12%
set /a combi28=%key1%-%key2%-%key3%-%key4%
set /a combi29=%key1%-%key2%-%key3%-%key5%
set /a combi30=%key1%-%key2%-%key3%-%key6%
set /a combi31=%key1%-%key2%-%key3%-%key7%
set /a combi32=%key1%-%key2%-%key3%-%key8%
set /a combi33=%key1%-%key2%-%key3%-%key9%
set /a combi34=%key1%-%key2%-%key3%-%key10%
set /a combi35=%key1%-%key2%-%key3%-%key11%
set /a combi36=%key1%-%key2%-%key3%-%key12%
set /a combi37=%key1%+%key2%+%key3%+%key4%
set /a combi38=%key1%+%key2%+%key3%+%key5%
set /a combi39=%key1%+%key2%+%key3%+%key6%
set /a combi40=%key1%+%key2%+%key3%+%key7%
set /a combi41=%key1%+%key2%+%key3%+%key8%
set /a combi42=%key1%+%key2%+%key3%+%key9%
set /a combi43=%key1%+%key2%+%key3%+%key10%
set /a combi44=%key1%+%key2%+%key3%+%key11%
set /a combi45=%key1%+%key2%+%key3%+%key12%
pause
set testcombi=
set /p testcombi=Entrez le serial:
if "%testcombi%"=="%combi1%" (
...
...
) else if if "%testcombi%"=="%combi2%" (
...
...
) else (
echo mauvais serial!
)

============================
mais sa m'aurai fait partir en sucette avec toutes ces variables a tester et sa augmenterait le moids de mon batch.

Je serais bien intéressé par la méthode de test des chiffres, mais je ne sais pas si c'est réalisable en batch.
Par découpage de variables? Sa je ne m'y connais pas dans le découpage, pas appris, comme la commande For et tokens aussi...
1
HostOfSeraphim Messages postés 6750 Date d'inscription jeudi 2 février 2006 Statut Contributeur Dernière intervention 31 juillet 2016 1 607
18 mai 2009 à 20:40
Méthode de test des chiffres ? Bien sur que c'est possible. Suffit de découper le serial en 8 morceaux, et d'appliquer le test prévu à chacun.

0
dédéthepathé
18 mai 2009 à 20:42
Un batch complilé est un fichier batch (.bat) converit en éxécutable (.exe) pour des questions de sécurité de son code car les batch sont éditables au bloc notes et les éxécutables ne le sont pas. Le code source du programme est donc sécurisé mais j'ai cru entendre qu'on pouvait le désassembler avec windasm mais la c'est pas mon domaine^^
1
Bonjour

Le problème principal vient du fait que tu ne peux pas cacher le contenu de ton fichier de commandes.
Aussi, une fois que j'ai réussi à copier ton logiciel che moi, il me suffit de le lancer et de répondre
146743
0
1
0
qui sera évalué 146743+0-1*0
qui donne 146743

désolé ça tient pas la route.
0
HostOfSeraphim Messages postés 6750 Date d'inscription jeudi 2 février 2006 Statut Contributeur Dernière intervention 31 juillet 2016 1 607
18 mai 2009 à 20:28
On partira évidemment du principe qu'il ne laissera pas cela en fichier .bat mais qu'il fera un véritable .exe histoire quand même que ça ne soit pas trop simple... :-)

0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Excusez mon ignorance mais c'est quoi un batch compilé ?
0
dédéthepathé
18 mai 2009 à 20:40
Désolé pour la double réponse, internet ramait donc j'ai cliqué sur arrete, et pis j'ai réenvoyé

Et aussi, si c'est par découpage de variable, comment tester que l'utilisateur rentre une clé de par exemple 14 chiffres, vu qu'il y a pas de fonction "maxchar" en batch...
0
HostOfSeraphim Messages postés 6750 Date d'inscription jeudi 2 février 2006 Statut Contributeur Dernière intervention 31 juillet 2016 1 607
18 mai 2009 à 20:55
Ca reste quand même possible de déterminer la longueur de ta valeur (que tu peux donc comparer à une valeur de référence).


0
C'est à toi de voir si tu veux une solution facilement cassable (tu peux arriver à le casser) ou difficilement cassable.
Si tu comptes gagner ta vie avec (sinon à quoi bon livrer des serials), il vaut peut-être mieux se tourner vers des dongles matériels car je crois que c'est ce qu'il y a de plus sûr
0
dédéthepathé
18 mai 2009 à 20:53
^^ JE suis pas un pro, c'est quoi les "dongles matériels" ?
0
dédéthepathé
18 mai 2009 à 21:09
Si j'ai bien compris, c'est par découpage de variable? je vais me lancer la dessus, merci!
0