Protéger un programme par mot de pass : help !

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Nombre
Messages : 24
Inscription : mar. 04/sept./2007 12:23

Protéger un programme par mot de pass : help !

Message par Nombre »

Bonsoir ! Je suis en train de faire une sorte de navigateur internet(ou plutot ca utilise le système d'Internet Explorer).
Et je voudrais que seuls les membres que j'autorise puissent utiliser mon prog.

J'ai pensé a ceci : la gestion du programme par base de donées ?
Genre : je défini 4 membres,ces 4 membres devront rentrer leur pseudo et mot de pass,sinon le programme ne se lancera pas.

Voila a peu près comment j'imagine la fenêtre :

Code : Tout sélectionner

Enumeration
  #Window_0
  #Frame3D_0
  #String_0
  #String_1
  #Button_0
  #Text_0
  #bouton = 2
  #web = 0
  #toto
EndEnumeration



  If OpenWindow(#Window_0, 308, 18, 430, 198, "New window ( 0 )",  #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar )
    If CreateGadgetList(WindowID(#Window_0))
      Frame3DGadget(#Frame3D_0, 10, 10, 410, 100, "Entrez votre identifiant")
      StringGadget(#String_0, 80, 40, 250, 20, "                                   Pseudo")
      StringGadget(#String_1, 80, 70, 250, 20, "                                     Pass")
      ButtonGadget(#Button_0, 110, 130, 210, 30, "Enregistrer")
      TextGadget(#Text_0, 20, 170, 400, 20, "Sinon,demandez un identifiant a Nombre", #PB_Text_Center)
      
     Repeat 
      Select WaitWindowEvent() 
        Case  #PB_Event_CloseWindow 
          End 
        Case  #PB_Event_Gadget 
          Select EventGadget()
            Case #Button_0
              MessageRequester("Info","Merci de vous être identifié",#PB_MessageRequester_Ok)
            url$ = "www.google.fr"
OpenWindow(1,0,0,1000,500,"Internet",#PB_Window_SystemMenu|#PB_Window_MinimizeGadget|#PB_Window_SizeGadget)

;gadgets
CreateGadgetList(WindowID(1))
WebGadget(#web,0,40,1009,700,url$)
StringGadget(#toto,400,10,400,25,"http://www.google.fr")
ButtonGadget(#bouton,820,10,25,25,"=>")
;boucle
Repeat
  event = WaitWindowEvent()
  If event = #PB_Event_Gadget
    event = EventGadget()
    Select event
      Case #bouton
        url$ = GetGadgetText(#toto)
        WebGadget(#web,0,40,1009,700,url$)
    EndSelect
  EndIf
Until event = #PB_Event_CloseWindow
End
          EndSelect
      EndSelect 
    ForEver 
  EndIf

EndIf
Pour l'instant tous les indentifiants sontr corects,les pass aussi.
Je travaillerai sur le navigateu((je mettrai des images,des raccourci,un bouton précédent,suivant...)plus tard,la on reconnais franchement d'où je tiens cette source(merci #PB_IS_COOL ! ) :P


Donc si vous savez faire ca je vous serai reconnaisant de modifier la source que j'ai faite(je vous donnerai un code sou...enfin on verra)
Et ce forum est avant tout un forum d'entraide donc vous pouvez juste me donner les moyens :
je trouverai un moyen de le faire,pas besoin de vous tuer a crééer un source(enfin si vous avez envie ne vous génez pas :P )
Et rebonsoir :wink:
Avatar de l’utilisateur
venom
Messages : 3138
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Message par venom »

salut a toi Nombre

si tu veut j'ai ce vieux code mais bon sa fonctionne c'est le principal :wink: .

j'ai supprimé le code car sa ne fonctionner pas :oops:

voila



@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Message par Ar-S »

Base de donnée base de donnée ? tu peux développer ?
A partir d'un txt ? d'une base mysql ? etc ????

Voilà ton code que j'ai bien bidouillé. J'ai defini 4 utilisateurs et 4 passes.


Code : Tout sélectionner

;//Modifié par Ar-S

Enumeration
  #Window_0
  #Window_1
  #Frame3D_0
  #String_0
  #String_1
  #Button_0
  #Text_0
  #bouton = 2
  #web = 0
  #Barre_Adresse
  #txt1
EndEnumeration

;- On définit les membres et les passwords----
membre01$="pierre"
membre02$="paul"
membre03$="jacques"
membre04$="jambon"
pass01$="aaa"
pass02$="bbb"
pass03$="ccc"
pass04$="ddd"
;---------------------------------------------
Global url$ = "http://google.fr"

;Procédure d'ouverture de la fenetre accés membres
Procedure FenetrePrincipale()
  If OpenWindow(#Window_0, 308, 18, 430, 198, "Acces Membres",  #PB_Window_SystemMenu | #PB_Window_TitleBar )
    If CreateGadgetList(WindowID(#Window_0))
      ButtonGadget(#Button_0, 110, 130, 210, 30, "Enregistrer")
      ;   Frame3DGadget(#Frame3D_0, 308, 18, 410, 188, "Entrez votre identifiant")
      TextGadget(#txt1, 60, 15, 200, 40, "Login"+Chr(10)+Chr(10)+"Pass")
      StringGadget(#String_0, 100, 15, 250, 20, "",#PB_String_LowerCase)
      StringGadget(#String_1, 100, 37, 250, 20, "",#PB_String_Password)
      TextGadget(#Text_0, 20, 170, 400, 20, "Sinon,demandez un identifiant a Nombre", #PB_Text_Center)
    EndIf
  EndIf
EndProcedure  
;}

; ouverture et gestion du navigateur web
Procedure navig()
  If OpenWindow(#Window_1,0,0,1000,500,"Internet",#PB_Window_SystemMenu|#PB_Window_MinimizeGadget|#PB_Window_SizeGadget)
    HideWindow(#Window_0,1)
    If CreateGadgetList(WindowID(#Window_1))
      ;gadgets
      StringGadget(#Barre_Adresse,400,10,400,25,url$)
      ;  SetGadgetText(#Barre_Adresse,400,10,400,25,url$)
      WebGadget(#web,0,40,990,700,url$) 
      ButtonGadget(#bouton,820,10,25,25,"=>")
    EndIf
  EndIf
  
  Repeat
    Event = WaitWindowEvent()
    Select Event
     Case #PB_Event_Gadget
        EventGadget = EventGadget()
        EventType = EventType()
        If EventGadget=#bouton
          url$=GetGadgetText(#Barre_Adresse)
          WebGadget(#web,0,40,990,700,url$)
          ;  MessageRequester("info","Navigation en cours vers : "+url$)
        ElseIf EventGadget=#web
        ElseIf EventGadget=#Barre_Adresse
        EndIf
        
      Case  #PB_Event_CloseWindow
        EventWindow = EventWindow()
        If EventWindow = #Window_1
          CloseWindow(#Window_1)
          CloseWindow(#Window_0)
          End
        EndIf
    EndSelect 
  ForEver
EndProcedure
;}

; appel de la page d'accés
FenetrePrincipale()
Repeat
  Event = WaitWindowEvent()
  Select Event
    ; ///////////////////
    Case #PB_Event_Gadget
      EventGadget = EventGadget()
      EventType = EventType()
      If EventGadget=#Button_0
        choux$=GetGadgetText(#String_0) ;pseudo
        fleur$=GetGadgetText(#String_1) ; pass
        If choux$=membre01$ And fleur$=pass01$ ; Vérifie si membre1 est ok
          navig()
        ElseIf choux$=membre02$ And fleur$=pass02$ ; Sinon vérifie si membre2 est ok
          navig()
        ElseIf choux$=membre03$ And fleur$=pass03$ ; Sinon vérifie si membre3 est ok
          navig()
        ElseIf choux$=membre04$ And fleur$=pass04$ ; Sinon vérifie si membre4 est ok
          navig()
        Else
          MessageRequester("Alert","Login et/ou mot de passe incorrect") ; Sinon Affiche le message d'erreur
        EndIf
      EndIf   
    Case  #PB_Event_CloseWindow
      EventWindow = EventWindow()
      If EventWindow = #Window_0
        CloseWindow(#Window_0)
        Break
      EndIf
  EndSelect
ForEver
J'espere que ça t'aidera.

PS : Inclure un mot de passe et login dans l'exe reste cependant bien facile à contourner pour celui qui connait un peu l'assembleur et sait placer quelques NOP...

Sans être incontournable, je te conseils de t'intéresser à la fonction MD5Fingerprint pour rendre tes login/pass plus difficile à trouver...

. :wink:
Nombre
Messages : 24
Inscription : mar. 04/sept./2007 12:23

Message par Nombre »

Oulala mais moi je connais pas tout ca,Ar-S :lol:
Enfin pas grave ton script est cool

Kwai : ok pas grave,merci d'avoir au moins proposé :wink:
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message par Flype »

venom tu veux dire ?
Image
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Message par Kwai chang caine »

Surement parce que moi, CHAMPAGNE, j'avais rien dit pour une fois, sur ce POST.
Du coup, j'aurais quand meme été obligé de dire quelque chose :D

Comme quoi, meme quand je cause pas, on me remercie, c'est peut etre parce que je n'avais pas parlé que NOMBRE me remerciait :lol:

Enfin merci de me dire merci, une gentillesse, c'est toujours bon à prendre, mais si c'est une erreur, et qu'elle ne vous est pas adressée :D

Bon courage NOMBRE :wink:
Dernière modification par Kwai chang caine le lun. 24/sept./2007 19:42, modifié 1 fois.
Avatar de l’utilisateur
venom
Messages : 3138
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Message par venom »

venom tu veux dire ?
ba rien :D .


@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
Nombre
Messages : 24
Inscription : mar. 04/sept./2007 12:23

Message par Nombre »

Comme quoi, meme quand je cause pas, on me remercie, c'est peut etre parce que je n'avais pas parlé que NOMBRE me remerciait :lol:

Eh merde j'ai dis Kwai Laughing
Je voulais dire venom Wink

Kwai=>Je crois que j'ai dit toi car tu as posté le dernier message sur le forum quand je suis venu et j'ai dit "Kwai est passé par la" donc...

Merci pour la prochaine fois ou tu me proposera un tuto(si tu m'en donne un,si j'ai une question et si j'ai envie de la posé naa d'abord :lol: )
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Message par Kwai chang caine »

:lol:
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message par Flype »

"Kwai est passé par la" donc...
de toutes façons il est temps là, tu peux pas le louper :lol:
Image
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Message par Kwai chang caine »

de toutes façons il est temps là, tu peux pas le louper
...............................Citation du jour............................

Le "Kwai" est un peu pour un forum, ce qu'est la chaude pisse à l'homme. :lol:
Répondre