[Tutoriel] Mot de passe renforcé.

    Publicités

Users Who Are Viewing This Thread (Total: 0, Members: 0, Guests: 0)

Exetra

Membre d'Honneur
V
Dec 17, 2010
916
0
441
Parce que j'en ai marre de voir des soi-disant trainers avec mot de passe, qui sont découverts en moins de 10s, je vais vous expliquer COMMENT protéger des fonctions par mot de passe sans que celui-ci sois découvert.

Tout d'abord créez une Form avec Koda, en plaçant un Input (où on insère du texte), une ou 2 checkbox et un bouton.

Bien, que çela va-t-il nous faire ? Lorsque l'utilisateur cliquera sur le bouton, le programme vérifiera le HASH du mot de passe entré !

Hash ? kézako ?

Un hash, est une chaine de caractères irréversibles. Le plus connu des algorithmes, et le plus utilisés à ce jour, est le MD5, un de ses proches s'appele aussi le SHA-1

Exemple ?

Mot de passe : JeSuisUnProgrammeur
Hash : fc54d6a4062d075c7d4dacbeee4c11d0

Donc préparons notre fonction pour connaitre le hash de notre mot de passe

Code:
#include <Crypt.au3>

MsgBox(0,"Hash MDP",_Crypt_HashData("JeSuisUnProgrammeur",$CALG_MD5))

La messagebox affichera donc 0xFC54D6A4062D075C7D4DACBEEE4C11D0 (on ne dirais pas sur la messagebox, c'est vrai)

Donc maintenant imaginons que vous voulez protéger votre cheat par mot de passe :

- On crée la Form, 1 bouton,1 Input, 2 checkbox
- On désactive la checkbox protégée
Code:
GuiCtrlSetState($Checkbox1,$GUI_DISABLE)
While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit
	EndSwitch
WEnd

- On attribue la fonction VerifPass() à notre bouton

Code:
GuiCtrlSetState($Checkbox1,$GUI_DISABLE)
While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit
                Case $Button1
                        VerifPass()
	EndSwitch
WEnd

Et on prépare la fonction VerifPass après le WEnd

Code:
Func VerifPass()
;~ 	On vérifie que l'entrée dans l'input donne le même hash au MD5
	If _Crypt_HashData(GuiCtrlRead($Input1),$CALG_MD5) = "0xFC54D6A4062D075C7D4DACBEEE4C11D0" Then
;~ 	Dans ce cas, on y est
		MsgBox(0,"GG !","Bon mot de passe")
;~ 	On dévérouille la CheckBox bloquée
		GuiCtrlSetState($Checkbox1,$GUI_ENABLE)
	Else
;~ 	Dans ce cas, ce n'est pas le bon
		MsgBox(16,"Sorry :( !","Mauvais mot de passe")
	EndIf
EndFunc

Pour que tout marche bien, on doit ajouter l'include Crypt.au3 au début de notre script !

Et normalement, vous devriez, en rentrant JeSuisUnProgrammeur dans votre Input, puis en cliquant sur le bouton, dévérouiller la première Checkbox.

Si ce n'est pas le cas, jetez un coup d'oeil là dessus :

Code:
#include <Crypt.au3>

#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Tutoriel Kintow", 306, 84, 192, 124)
$Checkbox1 = GUICtrlCreateCheckbox("Checkbox1", 16, 8, 97, 17)
$Checkbox2 = GUICtrlCreateCheckbox("Checkbox2", 16, 32, 97, 17)
$Input1 = GUICtrlCreateInput("", 16, 56, 273, 17)
$Button1 = GUICtrlCreateButton("Vérifier", 112, 8, 177, 41)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
GuiCtrlSetState($Checkbox1,$GUI_DISABLE)
While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit
		Case $Button1
			VerifPass()

	EndSwitch
WEnd

Func VerifPass()
;~ 	On vérifie que l'entrée dans l'input donne le même hash au MD5
	If _Crypt_HashData(GuiCtrlRead($Input1),$CALG_MD5) = "0xFC54D6A4062D075C7D4DACBEEE4C11D0" Then
;~ 	Dans ce cas, on y est
		MsgBox(0,"GG !","Bon mot de passe")
;~ 	On dévérouille la CheckBox bloquée
		GuiCtrlSetState($Checkbox1,$GUI_ENABLE)
	Else
;~ 	Dans ce cas, ce n'est pas le bon
		MsgBox(16,"Sorry :( !","Mauvais mot de passe")
	EndIf
EndFunc

En éspérant vous avoir aidé
 

TheHardButcher

Programmeur C/C++
V
Dec 14, 2009
1,461
58
964
France
Je me permet de rajouter un petit truc pour les personne qui compte d'un coup sécuriser leurs application comme ça :

Tout d'abord, nous pouvons decrypter le hash avec un site du genre :
Ce lien n'est pas visible, veuillez vous connecter pour l'afficher. Je m'inscris!
Ou bien même le cracker grâce a des logiciel déjà existant qui bruteforce le md5

Et enfin, la plus marrante, bien que plus longue, modifier le programme pour qu'il s'auto crack ^^


Donc faite toujours attention !


Sinon, le tuto est vraiment bien construit, bravo !
 

Dyazz

Haskell &amp;amp;amp;amp;amp;amp; a mp; amp; amp;
V
Dec 28, 2009
618
0
922
Ou encore plus facile, desassembler, et modifier (voir supprimer) le Jump (le if mais version ASM)
 

Nearyu

Programmeur
V
Sep 25, 2010
6,942
18
944
28
Merci

Tout d'abord, nous pouvons decrypter le hash avec un site du genre :
D
Ou bien même le cracker grâce a des logiciel déjà existant qui bruteforce le md5

Et enfin, la plus marrante, bien que plus longue, modifier le programme pour qu'il s'auto crack ^

+1 , mais il n'y a pas beaucoups de kikoo qui sont aussi fort
 

Powneddu73

-Owned By Me-
V
Oct 3, 2010
2,044
0
942
Savoie(73)
Beaux tutoriel mais de toutes façon quoi qu'il arrive si un mec veut le mot de passe et qu'il s'y connait un peux il décompile et garde se qu'il veut :hap:
 

Exetra

Membre d'Honneur
V
Dec 17, 2010
916
0
441
Je me permet de rajouter un petit truc pour les personne qui compte d'un coup sécuriser leurs application comme ça :

Tout d'abord, nous pouvons decrypter le hash avec un site du genre :
Ce lien n'est pas visible, veuillez vous connecter pour l'afficher. Je m'inscris!
Ou bien même le cracker grâce a des logiciel déjà existant qui bruteforce le md5

Et enfin, la plus marrante, bien que plus longue, modifier le programme pour qu'il s'auto crack ^^


Donc faite toujours attention !


Sinon, le tuto est vraiment bien construit, bravo !

M'ouais enfin, le sois disant un-hash de ces sites ne sont juste le fait qu'elles crée un entrée à chaque création d'un hash, pour refaire l'inverse après, mais si tu fais un des mots de passe des plus compliqué, il est perdu ! :D

Sinon merci