Décodeur de l'historique "caché" de windows 2000/xp

Description

Je suis tombé par hasard sur une partie du registre qui paraissait bizzare et j'ai essayé de comprendre a quoi elle servait... Après avoir fait quelques tests, j'ai vu qu'il s'agissait d'un mini historique interne a Windows qui Microsoft avait "un peu" codé !

Voila donc le code du programme qui va lire le registre et qui récupère puis affiche ce qu'il a trouvé !!!

Au passage, j'ai essayé de me forcer a commenter mon code mais c'est pas facile ;-)

Source / Exemple :


Private Sub Form_Load()
'On définit le caract " et on le réécrit encore une fois pour être sympa envers le parser de colorisation du code du gentil Nix --> "
g = Chr(34)

'On récupére le contenu du registre
file = "registry.dat"
Shell "regedit /S /E " + file + " " + g + "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\UserAssist" + g, vbHide

'Gestion d'erreur
On Error GoTo Err
'On lit le fichier et on l'analyse
Dim l As String
Open file For Input As #1
While Not EOF(1)
    Line Input #1, l
    If Mid(l, 1, 6) = g + "HRZR_" Then  'Ligne codée
        list.AddItem Decode(l, 13)
    End If
    If Mid(l, 1, 6) = g + "UEME_" Then  'Ligne décodée
        list.AddItem Decode(l, 0)
    End If
Wend
'On ferme le fichier et on le détruit
Close #1
Kill file
Exit Sub

Err:
'On détruit le fichier et on affiche l'erreur
Kill file
MsgBox Err.Description, vbCritical, "Erreur n°" + Str(Err.Number)
End
End Sub

Public Function Decode(t As String, d As Integer) As String
Dim c As String, a As Integer, r As String
'On définit les valeurs ascii pour plus tard
ami = Asc("a")
ama = Asc("A")
zmi = Asc("z")
zma = Asc("Z")
'On définit aussi la valeur a retrancher pour plus tard
azmi = zmi - ami + 1
azma = zma - ama + 1
'On boucle...
For i = 2 To Len(t)
    c = Mid(t, i, 1)
    a = Asc(c)
    If a = 34 Then 'On a trouvé un ", fin...
        Decode = r
        Exit Function
    ElseIf a >= ami And a <= zmi Then 'Lettre en minuscule...
        a = a + d
        If a > zmi Then a = a - azmi
        c = Chr(a)
    ElseIf a >= ama And a <= zma Then 'Lettre en majuscule...
        a = a + d
        If a > zma Then a = a - azma
        c = Chr(a)
    End If
    r = r + c   'On ajoute le caractère décodé
Next i
Decode = r
End Function

Conclusion :


Pour ceux que ca intéresse, le mini-historique codé et spécifique a chaque utilisateur se trouve dans "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\UserAssist" !
On peut aussi passer pas HKEY_USERS pour les autres utilisateurs...

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.