TENTATIVE DE CRYPTAGE SIMPLE

jannoman Messages postés 256 Date d'inscription jeudi 17 avril 2003 Statut Membre Dernière intervention 20 février 2008 - 2 avril 2006 à 16:03
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 - 30 oct. 2006 à 01:01
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/36858-tentative-de-cryptage-simple

mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
30 oct. 2006 à 01:01
Salut,

le but était de rendre difficile la tâche de "casser" le mot de passe.
Un peu le principe d'une application qui demande un code d'activation. Si t'as pas le code, t'installe rien.
Beh là, si t'as pas le code, empecher de cracker le mot de passe.

Pour faire ceci, il faut créer l'exe, (bien entendu, tu ne connais pas le mot de passe) et le but et d'arriver à faire afficher "OK" sans ce mot de passe.

Ce qu'à fait Warning, il a désassemblé mon exécutable et à trouvé la faille (un saut conditionnel à modifier).
Cela demande des compétences en langage assembleur (ASM)

N'hésite pas à lire les autres comms, ça t'aiderai peut-être à comprendre le but de la source : trouver un cryptage pour le mot de passe.
(d'ailleurs, ne prends pas exmple sur ma source, Warning nous a prouver que l'algoritme était simple à casser).

@++

(Ps : c'est pas secrêt, le mot de passe est "cowboy", t'auras juste une fenêtre te disant que c'est ok, mais le but étant de l'avoir sans le mot de passe)
cs_comme Messages postés 122 Date d'inscription dimanche 19 mars 2006 Statut Membre Dernière intervention 18 juillet 2009
30 oct. 2006 à 00:35
Même si je viens un peu en retaed,j'aime bien comprendre ce projet et à quoi sert il ? ""une zone de texte ...saisir votre mot de passe .... valider"" et hop un message :desolé vous n'avez pas saisi le bon mot de passe .quel est le bon mot de passe et si on saisi le bon qu'est est le but ..merci de m'expliquer ...
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
14 mai 2006 à 16:01
Salut ciberrique !

Je vais voir ta source et je te tiens au courant.
Merci à toi pôur les infos.

Mortalino
ciberrique Messages postés 589 Date d'inscription lundi 25 août 2003 Statut Membre Dernière intervention 18 juillet 2010 1
14 mai 2006 à 09:02
Salut, si tu veux crypter ton mot de passe tu peux utiliser le DES (Data encrypting system) ou DDES (Double DES), j'avais fait une source à ce propos :
http://www.vbfrance.com/codes/CRYPTAGE_DE_TEXTE_EN_TYPE_DES_26239.aspx

Pour le code l'idée est pas mauvaise meme si c'est basique, essaye d'approfondir..
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
8 mai 2006 à 22:32
Y'a pas de problème et je comprends ta demande de modifier le nom car ça peut effectivement préter a confusion. Je le ferai mercredi matin (j'ai pas la source sur moi).
Merci pour les conseilles.

@ ++
cs_Warning Messages postés 516 Date d'inscription samedi 3 février 2001 Statut Membre Dernière intervention 24 octobre 2006 2
6 mai 2006 à 19:02
Oui il ne faut pas mettre d'EXE, c'est pour ça que je dit qu'un CrackMe n'a rien a faire sur codes-sources. Tu devrais juste renommer ta source parce que c'est un peu ambigue car cela reste une source correcte en rapport au cryptage. Mais bon si Nix est déjà intervenu je vais pas t'embeter plus longtemps (ce n'est pas le but d'ailleurs) :).
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
6 mai 2006 à 18:02
Salut Warning,

en fait j'ai découvert WinDasm et OllyDbg récemment et je suis loin d'être un Cador. C'était effectivement plus pour essayer du cryptage (avant que je sache ce qu'était le md5), pour le coup du Saut conditionnel, là j'ai fait un truc rapide mais je comptais imbriquer plein de goto dans le code pour justement embrouiller la transformation je / jne (ou nop).
Sinon, à l'origine, il était bien en .exe mais étant Administrateur, tu sais qu'on peut pas en mettre et du coup Nix me l'avait enlevé et j'ai vu avec lui si je pouvais déposer le .vbp (j'ai aucun autre moyen de déposer sur le Net un fichier).

En tout cas merci de m'avoir répondu et d'indiquer que c'était facilement cassable.
Mon problème est que dès que je découvre un sujet que je connais pas ou peu, je souhaite tester des trucs pour apprendre.
Là c'était effectivement très Léger en code (et en réflexion).

Bon WE
Mortalino
cs_Warning Messages postés 516 Date d'inscription samedi 3 février 2001 Statut Membre Dernière intervention 24 octobre 2006 2
6 mai 2006 à 03:55
Salut, je ne comprend pas trop l'intêret de cette source déposé avec le titre CrackMe. Si tu déposes une source de cryptage de clé nomme la "Cryptage de clé" ou similaire. Un CrackMe est un exe que l'ont dépose (sans les sources en principe) afin de connaitre quel peuvent être les failles d'un exe, ou pour s'entrainer à cracker un logiciel, or je ne vois aucun exe. Un crackme n'a d'ailleurs par principe rien a faire sur codes-sources. De plus, le cracking c'est justement la plupart du temps de sauter des sauts conditionels, et rien de plus facile avec ton programme.

:00403D23 8985F4FEFFFF mov dword ptr [ebp+FFFFFEF4], eax
:00403D29 7456 je 00403D81
:00403D2B 8D8DD4FEFFFF lea ecx, dword ptr [ebp+FFFFFED4]

Donc le cryptage ne sert a rien dans ce cas la et si c'est une source dont le theme est le cryptage, évite de l'intituler 'crackme'.

Voilà c'est des petits conseils qui font de Codes-Sources une grande communauté ;).

Bonne continuation,

Warning
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
3 avril 2006 à 16:02
Merci Jannoman pour tes infos !

1/ "asc(lettre)" je ne connaissais pas et c'est bon à savoir.
2/ "3 ^ i", c'est vrai que c'est un peu léger, à l'origine j'avais fait un truc du genre sin(asc(lettre)) ^ i, le probleme c'est que le résultat (par ex 1,3E14) est le meme à quelques lettres près, en clair, si mon mot de passe est "abc" et que tu tapes "abg", et bien ça passe !?

Conclusion : je vais le faire en DLL (si j'y arrive car j'en ai jamais fait mais c'est comme ça qu'on apprend) et de rajouter dans le code plein de "goto" pour embrouiller les sauts inconditionnels en cas de désassemblage.

Mortalino
jannoman Messages postés 256 Date d'inscription jeudi 17 avril 2003 Statut Membre Dernière intervention 20 février 2008 1
2 avril 2006 à 16:05
autre chose :
je ne suis pas sur qu'UN SEUL mot de passe convienne : le 3^ n'est pas suffisant. il faudrait au moins 256 ^ , mais ca dépasserait rapidement la limite en nombre de caractères
jannoman Messages postés 256 Date d'inscription jeudi 17 avril 2003 Statut Membre Dernière intervention 20 février 2008 1
2 avril 2006 à 16:03
oui c'est pas mal comme principe pour coder un mot de passe

pour le VB :
Asc(c) renvoie le code ascii correspondant au caractère c
chr(n) renvoie le n_ieme caractère du code ascii

ca simplifiera les choses !

autre chose :
il y a un petit bug, c'est quand tu fais lettre(1 to 16)
comment es tu sur que le mot de passe qu'on entre fait moins de 16 caractères ?
soit : dans la textbox, propriété maxlength = 16
soit : tu n'as pas besoin de sauvegarder les lettres du mot :

dim lettre as string

nbc = 7
For i = 1 To NbCaractere
lettre = Mid(SaisieMotPasse, i, 1)
NbC = nbC + asc(lettre) * (3 ^ i)
Next i

voila !
Thomas.