IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Discussion :

chaines cachées dans regedit


Sujet :

Windows

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 61
    Points : 34
    Points
    34
    Par défaut chaines cachées dans regedit
    Bonjour
    Etant donné qu'un virus est capable de cacher une chaine de regedit ;
    est ce qu'il existe un code qui permet de savoir toutes les chaines d'une clef y compris celles cachés?
    je connais déja les fonctions pour avoir les chaines d'une clef mais je ne sais pas si ca va donner aussi les chaines cachées.

  2. #2
    Expert éminent
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Points : 8 389
    Points
    8 389
    Par défaut
    En fait il n'existe pas de clé cachée, seulement certaines clés ne peuvent pas être affichées dans regedit. Utilise plutôt reg qui fonctionne en ligne de commandes (reg /? pour obtenir l'aide) et qui est un peu plus puissant que regedit. Si tu veux accéder à ces chaînes cachées avec l'API Windows, il faudra utiliser les fonctions non documentées de ntdll.dll (NtCreateKey et co.) et non de advapi32.dll (RegCreateKeyEx et co.). Plusieurs raisons peuvent empêcher regedit d'afficher une chaîne : elle contient plus de 255 caractères, le nom de la chaîne commence par '\0' (ce qu'on ne peut faire qu'avec les fonctions de ntdll.dll) et peut-être aussi d'autres raisons.

  3. #3
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 222
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 222
    Points : 28 210
    Points
    28 210
    Par défaut
    Il existe le même phénomène pour les noms de dossier et fichiers dans une structure NTFS

    Il existe un petit logiciel qui s'appelle RootKitRevealer de SysInternals (devenu Microsoft depuis) qui scanne aussi bien le registre que les disques et qui te révèle justement ce genre de chose.

    ATTENTION, toutes les entrées cachées (ou non affichable ) ne sont pas forcément malignes, Windows en contient lui-même déjà pas mal.

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 61
    Points : 34
    Points
    34
    Par défaut
    ok et est ce que quelqu'un sait si je crée une chaine caché de plus de 256 caractères avec les fonctions ntcreatekey... est ce que je vais la voir avec mes fonctions Regcreatekey,... de advapi.dll si je fais la liste des chaine ds une clef?

  5. #5
    Expert éminent
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Points : 8 389
    Points
    8 389
    Par défaut
    Non, tu ne les verras pas. C'est aussi pourquoi regedit ne peut pas les voir, parce qu'il utilise les fonctions d'advapi32.dll alors que reg peut, parce qu'il utilise les fonctions de ntdll.dll.

    est ce que quelqu'un sait si je crée une chaine caché de plus de 256 caractères avec les fonctions NtCreateKey (....)
    Pas la peine d'appeler NtCreateKey pour ça. T'as qu'à créer une MyKey contenant une sous-clé MySubKey et renommer MyKey de façon à ce que la chaîne " (...)\MyKey\MySubKey" fasse plus de 255 cacartères. Tu peux aussi jouer à ça avec les dossiers, sauf que les dossiers/fichiers lointains ne deviendront pas invisibles mais inaccessibles et que la longueur limite n'est pas de 255 mais de 260 caractères.

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 140
    Points : 49
    Points
    49
    Par défaut
    Bonjour,

    On peut "cacher" certaines données de valeurs dans le registre avec les API win32, mais uniquement pour les valeurs. Elles ne seront pas visible par Reg.exe ou regedit.exe. Mais bon, suffit de lire la donnée octect par octect pour tout afficher, donc rien d'exceptionnel. Par contre, pour cacher des clés entières, il faut avoir recours aux API natives.

    Je suis en train de coder ma propre version de reg.exe avec l'api win32 et je me suis rendu compte que pour aller plus loin, je vais devoir m'initier aux api natives, mais pas tout de suite, vu que je suis débutant en C.

  7. #7
    Expert éminent
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Points : 8 389
    Points
    8 389
    Par défaut
    On peut "cacher" certaines données de valeurs dans le registre avec les API win32, mais uniquement pour les valeurs. Elles ne seront pas visible par Reg.exe ou regedit.exe.
    Avec quelles fonctions ?

  8. #8
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Points : 50 367
    Points
    50 367
    Par défaut
    Un petit truc que j'avais repéré et diffusé dans les news :
    Conséquences d'une incohérence subtile de spécification

    Cela explique comment il est possible de cacher certaines clés/valeurs à regedit.

    Enfin c'est du niveau de "comment cacher un secret à ma petite soeur"

  9. #9
    Expert éminent
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Points : 8 389
    Points
    8 389
    Par défaut
    J'ai lu tout l'article. C'est à peu près de ça qu'on a parlé depuis le début. Cependant, Merillym affirme qu'il connaît aussi des méthodes permettant de créer des valeurs "cachées" à l'aide de "fonctions Win32" (et là j'avoue que j'interprète ça en "fonctions Win32 documentées" puisqu'on a déjà parlé des fonctions non documentées) d'où ma question.

  10. #10
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 888
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 888
    Points : 15 325
    Points
    15 325
    Par défaut
    Citation Envoyé par Merillym Voir le message
    Par contre, pour cacher des clés entières, il faut avoir recours aux API natives.
    Cachées ? Non, plutôt inaccessibles à cause du caractère NULL dans le nom de la clé et du coup, en mode graphique avec Regedit on gagne un joli message d'erreur (me rappelle plus lequel).
    Du coup elles signalent leur emplacement !

    J'avais trouvé des sources Delphi qui démontrent ça très bien, hélas j'ai plus trop le temps de m'occuper de tout ça...

Discussions similaires

  1. Surligner une sous-chaine recherchée dans un TMemo
    Par zemeilleurofgreg dans le forum Delphi
    Réponses: 2
    Dernier message: 30/06/2006, 12h07
  2. Executer une chaine concatener dans une procedure stockée
    Par nic413 dans le forum SQL Procédural
    Réponses: 6
    Dernier message: 19/06/2006, 10h24
  3. [FPDF] Recherche chaine caractères dans fichier pdf
    Par licorne dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 28/10/2005, 11h55
  4. [IO]Récupérer une chaine texte dans un flux HTTP
    Par elitost dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 16/03/2005, 10h39
  5. installation cachée dans batch
    Par zorian dans le forum Windows
    Réponses: 5
    Dernier message: 24/05/2004, 19h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo