Page 1 sur 1

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

Publié : dim. 23/sept./2007 18:18
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:

Publié : dim. 23/sept./2007 19:47
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



@++

Publié : lun. 24/sept./2007 1:09
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:

Publié : lun. 24/sept./2007 19:31
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:

Publié : lun. 24/sept./2007 19:33
par Flype
venom tu veux dire ?

Publié : lun. 24/sept./2007 19:39
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:

Publié : lun. 24/sept./2007 19:42
par venom
venom tu veux dire ?
ba rien :D .


@++

Publié : lun. 24/sept./2007 19:55
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: )

Publié : lun. 24/sept./2007 19:58
par Kwai chang caine
:lol:

Publié : lun. 24/sept./2007 21:33
par Flype
"Kwai est passé par la" donc...
de toutes façons il est temps là, tu peux pas le louper :lol:

Publié : mar. 25/sept./2007 8:32
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: