begin process at 2010 02 10 11:07:20
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Sécurité

 > MOT DE PASSE À L'OUVERTURE D'UN FICHIER EXCEL AVEC TRAÇABILITÉ DANS UN FICHIER TEXT

MOT DE PASSE À L'OUVERTURE D'UN FICHIER EXCEL AVEC TRAÇABILITÉ DANS UN FICHIER TEXT


 Information sur la source

Note :
1 / 10 - par 1 personne
1,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Sécurité Classé sous :mot, passe, sécurité, espion Niveau :Débutant Date de création :21/03/2006 Vu :20 621

Auteur : mortalino

Ecrire un message privé
Site perso
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (11)
Ajouter un commentaire et/ou une note


 Description

J'ai des fichiers sur le PC du boulot, je souhaite que personne ne les ouvrent mais tout en sachant quand cela s'est produit. Le problème avec le mot de passe Excel, s'est que l'évènement WorkBook_Open ne se déclenche pas si le mot de passe est erronné.
Je propose donc une petite bidouille pour tracer la tentative d'ouverture et déshinniber la fonction Ctrl + Pause

Source

  • ' Si 1 erreur se produit (suite à l'appuie sur Ctrl Pause => débogage), saute la procédure
  • On Error GoTo ArretOuverture
  • ' Permet de créer une erreur si il y a un appuie sur Ctrl Pause
  • Application.EnableCancelKey = xlErrorHandler
  • ' demande de mot de passe
  • yoyo = InputBox("Indiquez le mot de passe pour rentrer dans mon fichier !", "Identification", , 0, 10000)
  • ' Si mot de passe bon, sort de la procédure
  • If yoyo = ThisWorkbook.Sheets("Liste").Range("A100").Text Then
  • ' Annule l'activation de l'erreur suite à l'appuie sur Ctrl Pause
  • Application.EnableCancelKey = xlDisabled
  • On Error GoTo 0
  • frmCache.Hide
  • Exit Sub
  • Else
  • ' sinon, un fichier texte, ici, nommé "Adobe" (ça passe à l'As) s'ouvre et inscrit
  • ' le jour et l'heure d'ouverture de tel fichier
  • Open "C:\Program Files\Adobe\Adobe.txt" For Append As #1
  • Print #1, "Ouverture tour nico : " & Now
  • Print #1, "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
  • Close #1
  • ' message d'info pour l'"utilisateur", l'incite à ne pas recommencer
  • MsgBox ("Qui que tu sois , tu n'es pas autorisé : " & Chr(10) & _
  • "1/ Tu es pisté 2/ Ce fichier va se fermer !")
  • Application.DisplayAlerts = False
  • ThisWorkbook.Close
  • End If
  • ' suite à l'erreur induit par l'appuie sur "Ctrl Pause", exécute la procédure ParerCtrlPause
  • ArretOuverture:
  • Module1.ParerCtrlPause
  • _______________________________________________________________________________________________________
  • Sub ParerCtrlPause()
  • ' Annule l'activation de l'erreur suite à l'appuie sur Ctrl Pause
  • Application.EnableCancelKey = xlDisabled
  • MsgBox ("Qui que vous soyez , vous n'êtes pas autorisé : " & Chr(10) & _
  • "1/ Vous êtes pisté 2/ Ce fichier va se fermer !" & Chr(10) & Chr(10) & _
  • "La touche Ctrl+Pause est interdite ! Eh ouais, on ne me la fait pas !!")
  • ' un fichier texte, tjs nommé "Adobe" s'ouvre et inscrit
  • ' le jour et l'heure d'ouverture de tel fichier + le fait que Ctrl Pause a été appuyé
  • Open "C:\Program Files\Adobe\Adobe.txt" For Append As #1
  • Print #1, "Ouverture tour nico : " & Now
  • Print #1, "~~~~~~~~~~~~~~~~ Ctrl Pause a été tenté ~~~~~~~~~~~~~~~~"
  • Close #1
  • Application.DisplayAlerts = False
  • ThisWorkbook.Close
  • End Sub
' Si 1 erreur se produit (suite à l'appuie sur Ctrl Pause => débogage), saute la procédure
On Error GoTo ArretOuverture

' Permet de créer une erreur si il y a un appuie sur Ctrl Pause
Application.EnableCancelKey = xlErrorHandler

' demande de mot de passe
yoyo = InputBox("Indiquez le mot de passe pour rentrer dans mon fichier !", "Identification", , 0, 10000)

' Si mot de passe bon, sort de la procédure
If yoyo = ThisWorkbook.Sheets("Liste").Range("A100").Text Then
' Annule l'activation de l'erreur suite à l'appuie sur Ctrl Pause
    Application.EnableCancelKey = xlDisabled
    On Error GoTo 0
    frmCache.Hide
    Exit Sub
Else
' sinon, un fichier texte, ici, nommé "Adobe" (ça passe à l'As) s'ouvre et inscrit
' le jour et l'heure d'ouverture de tel fichier
    Open "C:\Program Files\Adobe\Adobe.txt" For Append As #1
    Print #1, "Ouverture tour nico : " & Now
    Print #1, "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
    Close #1
    
' message d'info pour l'"utilisateur", l'incite à ne pas recommencer
    MsgBox ("Qui que tu sois ,   tu n'es pas autorisé : " & Chr(10) & _
            "1/ Tu es pisté   2/ Ce fichier va se fermer !")
        Application.DisplayAlerts = False
        ThisWorkbook.Close
End If

' suite à l'erreur induit par l'appuie sur "Ctrl Pause", exécute la procédure ParerCtrlPause
ArretOuverture:
Module1.ParerCtrlPause
_______________________________________________________________________________________________________
Sub ParerCtrlPause()
    
' Annule l'activation de l'erreur suite à l'appuie sur Ctrl Pause
    Application.EnableCancelKey = xlDisabled
    
        MsgBox ("Qui que vous soyez ,   vous n'êtes pas autorisé : " & Chr(10) & _
        "1/ Vous êtes pisté   2/ Ce fichier va se fermer !" & Chr(10) & Chr(10) & _
        "La touche Ctrl+Pause est interdite ! Eh ouais, on ne me la fait pas !!")
        
' un fichier texte, tjs nommé "Adobe" s'ouvre et inscrit
' le jour et l'heure d'ouverture de tel fichier + le fait que Ctrl Pause a été appuyé
    Open "C:\Program Files\Adobe\Adobe.txt" For Append As #1
    Print #1, "Ouverture tour nico : " & Now
    Print #1, "~~~~~~~~~~~~~~~~ Ctrl Pause a été tenté ~~~~~~~~~~~~~~~~"
    Close #1
    
        Application.DisplayAlerts = False
        ThisWorkbook.Close

End Sub

 Conclusion

la 1ère partie du code est à mettre dans WorkBook_Open est la deuxième est placée dans un Module (ici appelé Module1)

Pour infos, si l'utilisateur met la sécurité des macros au niveau "moyen", il pourra accéder au fichier


 Sources du même auteur

Source avec Zip Source avec une capture MIDDLEBUTTON COPYPASTE [ADDIN VB6]
Source avec Zip Source avec une capture [CLASS] RESTREINDRE LE CURSEUR DE LA SOURIS À UNE ZONE DE CO...
Source avec Zip Source avec une capture [ADD-IN] COMPLÉMENT VB6 POUR CALCULER LE TEMPS D'EXÉCUTION D...
Source avec Zip Source avec une capture COMMONDIALOG AVEC PREVIEW IMAGE [USERCONTROL]
Source avec Zip Source avec une capture SUIVRE LE COURS D'UNE ACTION, POSSIBILITÉ D'AJOUTER LE MONTA...

 Sources de la même categorie

Source avec Zip Source avec une capture Source .NET (Dotnet) APPARTENANCE AUX GROUPES DE SÉCURITÉ par legranche
Source avec Zip Source avec une capture Source .NET (Dotnet) REMOTE KEYLOGGER par elguevel
Source avec Zip PETITE IMPLEMENTATION DE L'ALGO SERVANT AU CRYPTAGE RSA par ccgousset
Source avec Zip SAUVEGARDES FICHIERS par claude440
Source avec Zip Source avec une capture VEROUX PC AVEC API par Galactus13

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture COMPLEXITE DES MOTS DE PASSE par Renfield
Source avec Zip MOT DE PASSE ACCESS par Toukal
Source avec Zip Source avec une capture CONNEXION PAR MOT DE PASSE GRÂCE À UNE BDD par chouchou270403
Source avec Zip PROGRAMME DE PROTECTION DE DOSSIERS PAR MOT DE PASSE ET DE P... par yoan15
Source avec Zip TENTATIVE DE CRYPTAGE SIMPLE par mortalino

Commentaires et avis

Commentaire de bouv le 21/03/2006 11:20:05

Excel propose de protéger ses fichier par mot de passe (mais sans traçage effectivement).
De plus le mot de passe n'est même pas crypté... Le premier demeuré passe au travers sans problème..

Commentaire de mortalino le 21/03/2006 14:20:19

Ami Bouv bonjour, (à tout le monde aussi)

En fait, pour être plus explicit, mon fichier se trouve sur le poste du travail, sachant que plusieurs utilisateurs s'y rendent avec le même log que moi, n'importe qui peut accéder aux fichiers perso. Etant donné que c'est l'ordi du boulot et sachant que je bosse pour une grosse boite (Escota / Asf), notre système informatique est très surveillé et ne pouvons installer des logiciels ou composants autre que ce qui est déjà installé.
Le système informatique prévoit également la non possibilité de modifier la Sécurité des Macros, celles-ci se lancent obligatoirement, sans menu contextuelle.

De plus je veux obligatoirement un traçage pour savoir qui tente de l'ouvrir.
Donc sans possibilité de modifier la Sécurité des Macros, je pense qu'il est quand même effectivement difficile à ouvrir (mon administrateur réseau/système a tenté avec echec) et j'ai regardé mon fichier en hexadécimale et tu retrouves difficilement le mot de passe, et je ne connais pas de désassembleur qui ouvre des fichier Excel.

Par contre si tu as des idées pour faire évoluer mon code, je suis preneur !
PS : 1/10 pour ma 1ère source déposé, c'est un peut sévère !?

Amicalement,   Mortalino

Commentaire de etniqs le 21/03/2006 14:52:52

Bonjour,

je vois ce que tu veux faire, et je pense à une autre façon de voir les choses,...avec l'hypothèse suivante : tu peux toujours copier/coller/exécuter une application .exe, quelquesoit le niveau de sécurité (sinon comment tu ouvrirais tes fichiers ... ?)

donc sous VB, tu programmes dans ton coin un truc "transparent" qui fait ce que tu veux faire, MAIS dont le nom après compilation sera... excel.exe, puisque tu auras renommer le vrai excel.exe en excelVB.exe par exemple....

bref, le principe est que ce programme pourra lire un fichier txt avant (exemple : où seront répertoriés les fichiers que tu veux protéger, puis l'ouvrir directement si le fichier n'a pas besoin de mot de passe ou bien demander le mot de passe...) et de toute façon enregistrer l'événement que le gars ait le mot de passe ou pas dans un autre .txt, .log,...

tu pourras toujours à partir de là, gérer les droits d'accès à ces fichiers (renommer,écriture ...)

Y'a encore d'autres solutions, mais le pb est que tu ne peux pas te permettre de mettre du code VBA sans provoquer l'ouverture du message de sécurité : chose qui mettrait trop de puces à l'oreille ...

Commentaire de bouv le 21/03/2006 20:51:25

Non un simple cryptage du fichier sera suffisant à mon avis.
Tu stocke le mot de passe en crypté.
Quand l'utilisateur entre son mot de passe tu le crypte et tu compare les deux.
Cherche à propos du MD5 sur le site.

Sinon je n'ai pas essayé mais que se passe-t-il si quelqu'un ouvre le fichier depuis la suite OpenOffice ?

Commentaire de bouv le 21/03/2006 20:52:03

oups sur la premiere ligne il faut lire cryptage du mot de passe et non cryptage du fichier

Commentaire de celiphane le 23/03/2006 01:29:57

Bonjour,
vous semblez oublier que le fait de laisser enfoncer la touche MAJ pendant l'ouverture de n'importe quel document Office annule toutes les procédures liées au évènement Open, quelque soit le niveau de sécurité...

Bien à vous,
@+
Celiphane

Commentaire de mortalino le 24/03/2006 10:38:57

Merci Bouv pour le MD5, je vais me rencarder.
Merci aussi à Celiphane, je t'avouerai que la coup du Maj, je ne connaissais pas et c'est effectivement à prendre en considération.

Mortalino

Commentaire de kalobit le 31/03/2006 09:48:08

salut,

Pourquoi ne pas créer une macro complémentaire qui gère l'accès aux fichiers.

Cette macro pourraît stocker les chemins fichiers protégés.
En contrôlant les évènement application d'Excel, tu repère si on tente l'ouverture d'un de ces fichiers et tu code un password ou une manip à exécuter pour débloquer l'accès.

par contre on est plus en niveau débutant là mais bon c'est non plus insurmontable.

Pour le MD5, rien ne t'empêche de créer ton propre algo de Hash

un dizaine de ligne suffit et le mot de passe n'est pas décryptable.

bonne prog
K@lobit

Commentaire de mortalino le 31/03/2006 11:50:11

Merci K@LOBIT,
En fait je n'avais encore jamais fait de Macro complémentaire, et, en ayant fait une récemment, j'ai effectivement remarqué, que même avec la sécurié des Macros de niveau fort, le code de la Macro complémentaire s'exécute.

Donc je vais m'y attelé, et dès que c'est fait, je transmettrai la Macro complémentaire à la place de mon code Pourrave !!

Merci à tous pour vos savoirs que vous partagez..
Mortalino

Commentaire de mortalino le 01/04/2006 11:42:28

Salut la compagnie, en fait je vais donc faire une Macro Complementaire avec les noms de mes fichiers, dans cette Macro je vais intégrer un Algorithme que je viens de faire, en tout cas la vérification a une lettre pret, ca marche bien.

A vous de me dire si ça peut etre pas mal :
(pour le tester, j'avais créé un UserForm1, avec 2 controle : TextBox1 & CommandButton1)

Sub Verifier_Mot_De_Passe()

    Dim SaisieMotPasse As String, NbCaractere As Long, i As Long, j As Long, k As Long

SaisieMotPasse = Me.TextBox1.Text
NbCaractere = Len(SaisieMotPasse)

    Dim Lettre(1 To 16) As String, NbA(1 To 16) As Variant, NbC(1 To 16) As Variant
    
For i = 1 To NbCaractere
    Lettre(i) = Mid(SaisieMotPasse, i, 1)
    For j = 1 To 256
        If Lettre(i) = Cells(j, 1).Value Then
            NbA(i) = Cells(j, 2).Value
            NbC(i) = (NbA(i)) * (3 ^ i)
        End If
    Next j
Next i

    Dim MotC As Variant
MotC = 7

For k = 1 To NbCaractere
    MotC = MotC + NbC(k)
Next k

MotZ = Range("D1").Value

If MotZ = MotC Then
    MsgBox ("Bon Mot de Passe")
Else
    MsgBox "Mauvais Mot de Passe"
End If

End Sub
_________________________________________________________________________________________
Sub Saisir_Mot_De_Passe()
    Dim SaisieMotPasse As String, NbCaractere As Long, i As Long, j As Long, k As Long

SaisieMotPasse = Me.TextBox1.Text
NbCaractere = Len(SaisieMotPasse)

    Dim Lettre(1 To 16) As String, NbA(1 To 16) As Variant, NbC(1 To 16) As Variant
    
For i = 1 To NbCaractere
    Lettre(i) = Mid(SaisieMotPasse, i, 1)
    For j = 1 To 256
        If Lettre(i) = Cells(j, 1).Value Then
            NbA(i) = Cells(j, 2).Value
            NbC(i) = (NbA(i)) * (3 ^ i)
        End If
    Next j
Next i

    Dim MotC As Variant
MotC = 7

For k = 1 To NbCaractere
    MotC = MotC + NbC(k)
Next k

Range("D1").Value = MotC

End Sub

C'est pas tant où je stocke le mot de passe qui m'importe (là c'est temporaire), c'est plus au niveau algo, serait il facile à casser ?
Merci de vos précisions

Mortalino

Commentaire de mortalino le 02/04/2006 08:20:24

Bon ben en fait, c'est pas que c'est inutile ce que j'ai fait mais presque... car, même si on passe au travers de la sécurité des macros avec une Macro Complémentaire, si on décoche l'option "Faire confiance", je suis piné et le fichier s'ouvre sans demande de mot de passe

Par contre, j'ai bifurquer sur une autre idée, je vais essayé de retranscrire ça en VB6 pour le lancement des Applications (code qui sera donc facilement modifiable pour une sorte d'enregistrement du .exe, avec écriture dans le Regedit)

Affaire à suivre...

Mortalino

PS : promis, c'est mon dernier commentaire sur cette source

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

include config et sécurité? [ par stroubinou ] Bonjour! Voila, je vous explique mon probleme, j'ai une galerie photo (visible ici ) ... je l'ai installée chez un copain (ben ouai, faut bien se Tester sécurité mot de passe [ par J_il ] Bonjour à toutes et tous, voici quelques jours que je cherche mais que je n'arrive pas à mes fins !J'aimerai dans un de mes projets, pouvoir créer un Acces Annuaire LDAP par mot de passe [ par alexis1972 ] bonjour,je cherche à modifier mon script de connexion ldap pour me connecter avec un user + mdp.actuellement il se connecte en anonyme et ne recupere enlever mot de passe de protection d'un fichier excel [ par marie78 ] Bonjour,afin de pouvoir réouvrir un de mes fichiers dont j'ai oublié le mot de passe, j'ai suivi cette méthode(ci-dessous). je précise que je ne suis Contrôle du code d'une application VB6 [ par Krama ] Bonjour;J'ai développé une application permettant de réinitialiser un routeur CISCO par le port com.L'idée est d'offrir à l'utilisateur final d'une pl Proteger et partager un classeur excel avec mot de passe [ par janobrasil ] Bonjour,Je suis en train de faire un classeur excel qui sera installé sur plusieurs ordinateurs.Je voudrais placer un mot de passe à l'ouverture du cl création de login et mot de passe avec VBA [ par kekouradem ] Je  suis un débutant en programmation et je suis confronter à un problème. Car, je voudrais créer un formulaire en access avec le champs comme login, mot de passe sms [ par valerian64 ] Bonjour,Comment trouver le mot de passe sur sms.be ( j'ai le numéro de tél )?Réponse sur dodododo1@live.beMerci


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,234 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales