Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

DÉCODEUR DE L'HISTORIQUE "CACHÉ" DE WINDOWS 2000/XP


Information sur la source

Catégorie :Base de registre Classé sous : historique, windows, 2000, xp Niveau : Débutant Date de création : 26/08/2005 Date de mise à jour : 26/08/2005 20:26:49 Vu / téléchargé: 19 044 / 1 166

Note :
9,42 / 10 - par 12 personnes
9,42 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (41)
Ajouter un commentaire et/ou une note


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

  • 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
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...
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Historique

26 août 2005 20:26:49 :
>on le réécrit encore une fois pour être sympa envers le parser de colorisation du code du gentil Nix --> "

Commentaires et avis

signaler à un administrateur
Commentaire de violent_ken le 26/08/2005 20:52:28

Aha aha !
Bien joué !
Non, sincèrement, bien joué !
Cela dit, je ne peux pas noter cette source (je vois pas combien je pourrais lui mettre), mais je l'aime bien !

signaler à un administrateur
Commentaire de Elektordi le 26/08/2005 21:56:21

Ben t'a qu'a mettre 10 ;-)

signaler à un administrateur
Commentaire de violent_ken le 26/08/2005 22:02:19

Je suis trop bon....

signaler à un administrateur
Commentaire de draluorg le 26/08/2005 23:41:54

Yep pas mal du tout bien joue ;)

je mets 9 pcq j'aurai prefere voir une enumeration de la cle avec un traitement "direct" plutot qu'un regedit /E puis reouvrir le fichier et le traiter ;)

Bonne prog @+

signaler à un administrateur
Commentaire de Elektordi le 27/08/2005 00:10:10

Merci, mais la dernière fois que j'ai voulu énumérer une clé, on m'a dit que, contrairement aux fonctions le lecture et écriture de la base de reg, les fonctions d'énum n'existaient que a travers le wsql ou je sais plus quoi... (C'est une sorte de framework qui permet d'intéroger le système sur sa config, me souvient plus comment ca s'appelle)

J'ai commancé a chercher et je me suis vite tourné vers la solution avec l'exportation !

signaler à un administrateur
Commentaire de jack le 27/08/2005 02:36:08 administrateur CS

Oh le pirate qui possède des crack et des Keygen ! pas bien !
Tu aurais pu masquer, quand même.

PS : T'inquiète pas, si tu entends sonner à la porte à 6h du mat, ce n'est que la police.

signaler à un administrateur
Commentaire de Sechaud le 27/08/2005 10:21:54

Il est super ton code.J'aime beaucoup.
J'ai sauvegardé le dossier UserAssist en UserAssist.reg puis je l'ai vidé.
Apparemment la bécane marche sans problème.
Si tout va bien,je vais ajouter un bouton à ton programme pour effacer ces traces indiscrètes à volonté.
Merci beaucoup.

signaler à un administrateur
Commentaire de draluorg le 27/08/2005 11:15:28

Eh alors la je ne vois pas ou tu es aller chercher qu'on ne pouvait pas enumerer les cles du regsitre...

Tu peux le faire via l'api RegEnumKey et RegEnumValue ou via WMI

@+

signaler à un administrateur
Commentaire de ShareVB le 27/08/2005 15:01:06

salut,

bonne source sauf que les apis d'énumérations sont mieux quand même...

si tu veux en savoir un peu plus sur ces clés : les valeurs contiennent le nombre d'exécution et la date de dernière exec... et windows XP s'en sert pour la Most Frequently Used Programs List...le tout codé en ROT13...

je vais bientot mettre une source qui reproduit la MFU...avec un décodage encore plus complet...

ShareVB

signaler à un administrateur
Commentaire de JJDai le 27/08/2005 17:49:37

Super, je me demandais justement ou windows stockait ces informations.

signaler à un administrateur
Commentaire de nico1610 le 27/08/2005 22:40:09

Super petit exe moi qui chechai quelque chose comme ca!
MAGNIFIQUE !!

signaler à un administrateur
Commentaire de Elektordi le 28/08/2005 00:03:51

Si j'ai le temps, le vais essayer de le refaire en plus propre mais avec la rentrée scolaire qui se présente dans quelques jours, je pense pas trop...

Et pour répondre a jack, ca peut être très intéressant a étudier un code source de keygen niveau programmation ! Sisi, je t'assure... ;-)

Au passage, dans mon précédant post je parlait de WSQL mais je voulait en fait dire WMI... Merci draluorg !

signaler à un administrateur
Commentaire de 106 le 29/08/2005 08:47:50

Cela laisse rèveur quand aux autres traces pouvant exister dans Windows.
En plus, les outils Ad-Aware ou SpyBot ne les enlèvent apparement pas!

bravo !

signaler à un administrateur
Commentaire de nico1610 le 29/08/2005 13:13:19

Windows Regorge de petit logiciel comme ca.
Je sais qu'il exsiste un logiciel espion made in Microsoft qui surveil l'ordinateur, il y a aussi pas trés longtemps Gates voulait ajouter un Controle ActiveX capable de bloquer les téléchargements et mis à jour windows si on est sur une version pirate ! La chose étonante c'est que cette activeX ne bloquera pas les mis a jour de sécurité critique.

Comme quoi Bille Gates prefere voir ces bébé copié que endormi par un virus !

signaler à un administrateur
Commentaire de Sechaud le 29/08/2005 16:33:21

Bonjour ELEKTORDI
Comme annoncé dans mon commentaire du 27 août j'ai ajouté un bouton d'effacement à ton
programme.
   Cela marche bien.Windows recrée le début du Count mais au moins il est vierge.
Petite remarque, j'ai deux comptes.Cela doit être dû au fait que nous sommes deux utilisateurs.

Si tu es d'accord, j'ajoute ton source modifié sur VBFRANCE.

signaler à un administrateur
Commentaire de Sechaud le 29/08/2005 16:34:16

Bonjour ELEKTORDI
Comme annoncé dans mon commentaire du 27 août j'ai ajouté un bouton d'effacement à ton
programme.
   Cela marche bien.Windows recrée le début du Count mais au moins il est vierge.
Petite remarque, j'ai deux comptes.Cela doit être dû au fait que nous sommes deux utilisateurs.

Si tu es d'accord, j'ajoute ton source modifié sur VBFRANCE.

signaler à un administrateur
Commentaire de Elektordi le 30/08/2005 21:34:53

En naviguant sur google, j'ai trouvé ca:

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\UserAssist\Settings] (éventuellement a créer)

Pour enlever le cryptage ROT13: NoEncrypt(DWORD) = 1
Pour que windows arrète d'écrire là: NoLog(DWORD) = 1

/!\ ne s'applique qu'a l'utilisateur actuel/concerné !

Et sinon, le fait de le déactiver ne semble affecter aucune des liste de docs et de progs récents de windows !!! Dons cette liste ne servirait pas à cela...

Quand aux réponses aux autres messages:

>sechaud
Si tu veut, mais laisse un lien verre celle ci... Quand a mon astuce ci dessus elle devrait t'intéresser...

>nico1610
Ca existe et ca s'appelle le "Genuine Test", va voir sur windows update ou microsoft downloads...
Quand a l'histoire des MAJ critiques, il y a deux raisons:
-Ms a été obligé de laisser public (pr l'europe) les MAJ critiques a la demande de la cour de justice européenne !!!
-Ils ont donc décidé de les laisser vraiement public pr éviter que tout ceux qui ont windows en piraté e prennent plein de virus et, soit ternissent l'image de windows, sont décident de passer sur linux (par ex.) et donc de ne plus utiliser d'autres produits MS qu'ils auraient éventuellement payé (ex: des jeux) !!!

signaler à un administrateur
Commentaire de ShareVB le 31/08/2005 09:47:31

salut,

si tu supprimes le contenu de UserAssist, la liste ne sera pas mise à jour tout de suite car elle est en cache...mais au prochain rafraîchissement la liste sera vide...

NoLog désactive bien le log dans UserAssist...mais désactive aussi l'évolution de la liste des progs récents...Si l'on met NoLOg avec UserAssist vide, au redémarrage, la liste sera vide...

ShareVB

signaler à un administrateur
Commentaire de nico1610 le 31/08/2005 17:13:47

j'ai essayé etca marche ! super on peut l'effacer

signaler à un administrateur
Commentaire de SkyRocKo le 01/09/2005 19:59:09

Salut Elektordi, bien joué !

Une fois de plus, MicroSoft fait de l'espionnage ^^

Bonne continuation !

++

signaler à un administrateur
Commentaire de stinguerr le 25/03/2006 09:24:59

jsuis débutant et g c pas ou il faut taper ta source et sous quel format l'enregistrer

signaler à un administrateur
Commentaire de stinguerr le 07/04/2006 21:47:08

dite j'ai télécharger le zip mais comment ouvrir le décodeur??

signaler à un administrateur
Commentaire de nico1610 le 07/04/2006 21:51:35

vu que tu est nouveau je suppose que tu ne sais ce qu'est visual Basic.
Cette source à été crée avec un éditeur/compilteur : visual basic 6, il te faut donc ce programme (de microsoft) pour pouvoir ouvrir le décodeur !
voila !
Bonne soirée !

signaler à un administrateur
Commentaire de Elektordi le 07/04/2006 21:56:47

Tu veut que je mette le .exe dans le zip ?

signaler à un administrateur
Commentaire de sheorogath le 07/04/2006 22:00:13 administrateur CS

pas la peine il sont supprimer a l'upload

signaler à un administrateur
Commentaire de stinguerr le 07/04/2006 22:52:47

dommage qu'il soit suprimé a l'up car j'aurai bien aimer le zip
je vais cherche visual basic 6
merci

signaler à un administrateur
Commentaire de stinguerr le 07/04/2006 22:53:50

scuzer je voulait dire l'exe

signaler à un administrateur
Commentaire de stinguerr le 07/04/2006 23:18:15

en faite il n'y aurait pas un moyen d'avoir l'exe car je trouve pas visual basic...
merci d'avance

signaler à un administrateur
Commentaire de Elektordi le 07/04/2006 23:30:41

Les fichiers en .exe sont supprimées, mais y'a pas de vrai contrôle... Il sufft par exemple de le renommer en .e_x_e et ca passe !

Je le metterait demain soir !

signaler à un administrateur
Commentaire de stinguerr le 08/04/2006 13:04:32

ok c'est super cool de ta part

signaler à un administrateur
Commentaire de nico1610 le 08/04/2006 19:19:05

si VbFrance supprime les exe a l'upload c'est pour deux raison :
la premiere est de ne pas prendres trops de place sur les serveurs !
la seconde est de prevenir au cas ou le contenu de l'exe soit infécté !

il est donc préférable que stinguerr te donne son mail en MP et que tu lui envoyer ton Email, sinon tu risque de te faire suprimé ta source !!

signaler à un administrateur
Commentaire de sheorogath le 08/04/2006 19:31:08 administrateur CS

oui c'est fort possible ^^
si tous le monde faisait ca ...

++

signaler à un administrateur
Commentaire de stinguerr le 08/04/2006 19:47:17

je suis d'accord avec eux ne prend pas de risque, mon adresse e-mail est fab_lebreton@hotmail.com

signaler à un administrateur
Commentaire de stinguerr le 08/04/2006 21:43:08

et si par exemple l'executable n'était disponnible que demain, sa serait grave?

signaler à un administrateur
Commentaire de Elektordi le 09/04/2006 00:18:48

C'est bon... Envoyé par mail...

signaler à un administrateur
Commentaire de stinguerr le 09/04/2006 10:09:42

hotmail est désespérent quand il bloque les pieces jointes...

signaler à un administrateur
Commentaire de violent_ken le 09/04/2006 11:12:01

Le mieux est de zipper l'exécutable et de mettre un mot de passe sur l'archive (pour que l'AV de hotmail ne puisse pas déterminer qu'il s'agisse d'un executable...).

signaler à un administrateur
Commentaire de stinguerr le 09/04/2006 15:13:23

ou si on change carrément l'extension???

stp elektordi pourrais tu me le renvoyer de façon a se qu'il ne se fasse pas bloquer.....
merci d'avance

signaler à un administrateur
Commentaire de violent_ken le 09/04/2006 19:52:59

Méthode d'envoi d'un exécutable sur une messagerie hotmail:

Pour l'envoi :
-archiver le fichier (*.rar ou *.zip)
-crypter l'archive avec un mot de passe
-envoyer en piece jointe (et donner le mot de passe dans le message)

Pour la réception :
-tenter de télécharger le fichier
-lire le message d'erreur
-cliquer sur "plus d'informations" ou "en savoir plus" ou ce qui ressemble à cela (en haut de l'écran)
-confirmer vouloir quand même télécharger
-télécharger
-désarchiver avec le mot de passe

@+

signaler à un administrateur
Commentaire de Elektordi le 09/04/2006 20:01:13

Ou tout simplement changer de fournisseur de mails...

[Mail réenvoyé avec le .exe renommé !]

signaler à un administrateur
Commentaire de stinguerr le 14/04/2006 19:08:47

merci ça cartonne (dsl de pas avoir répondu avant je suis interne) ! !  !

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

VB6 SP5 et Windows XP [ par krazitchek ] Bonjour, lorsque j'insére un optionbutton dans un frame dans un projet vb6sp5 sous windows XP, le fond de l'option est noir sans possibilité de change DirectX + Windows XP = ??? [ par Xentor ] J'ai un problème au niveau de la transparence sous XP avec DirectX : rien ne transparait ! Aidez-moi !!! :) Interface Windows XP ? [ par Arnotic ] Bonjour, Je voudrai bien savoir comment on peut intégrer à notre logiciel l'interface de Windows XP et non pas l'ancienne (par défaut). En vous re PB install sur xindows xp [ par looping ] Bonjour !J'ai fais un prog qui tourne bien sous windows 98SE mais sous windows XP au lancement du prog un message indique « erreur 50002 manque de mém Ocx pour controles windows XP [ par patcui ] Je cherche un controle pour faire des controles windows xpMerci, arret de windows xp [ par PBDLpc13 ] bonjour, je voudrais savoir comment faire pour arreter mon pc sachant qu'il fonctionne sous win xp.je cherche depuis 3 semaines et je trouve pas alors passage de win98 à win XP [ par bbs ] j' ai installe windows XP professionnellors de l 'execution du source fonctionnant sous windows 98 , le message suivant est apparu:&lt;&lt; bibliotheq HELP WINDOWS XP !! [ par rvbenoit ] J'ai réalisé un logiciel de Tarot en VB5 qui marche très bien sous win95/98.(voir mon site: http://perso.libertysurf.fr/rvbenoit)Des utilisateurs m'on User actif ds windows xp... [ par Pof ] j'aimerais savoir comment faire pour faire une fonction que quand je l'appelle, elle me retourne le nom de l'user actif... en fait, ds windows xp, on Arrêt Windows XP [ par Stru ] Salut,Quelle est la ligne de code pour arrêter un système sous windows XP ? Merci.A+,Stru.


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version

Photothèque Nouveau !



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
Temps d'éxécution de la page : 0,437 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.