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 :

les fonctions sur les modules


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 les fonctions sur les modules
    bonjour
    je voudrais savoir si il est possible de faire un programme de façon que :

    quand on le lance ; et qu'avec un autre programme on lance les fonctions enumprocessmodules et GetModuleFileNameEx (http://msdn.microsoft.com/en-us/libr...8VS.85%29.aspx)

    -une de ces deux fonctions retourne forcément faux;

    - GetModuleFileNameEx retourne un mauvais nom de module.


    (je ve dire ca pourrait etre une technique de furtivité pour un virus)

    merci d'avance.

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 058
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 058
    Points : 12 093
    Points
    12 093
    Par défaut
    Oui.

    Mais généralement, les virus sont bien moins complexes que vous semblez le croire.

  3. #3
    Membre éclairé Avatar de homeostasie
    Homme Profil pro
    Inscrit en
    Mai 2005
    Messages
    939
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 939
    Points : 862
    Points
    862
    Par défaut
    Oui en effet, cela pourrait être le cas en programmant un rootkit "kernel land" ou "user land" même si ce dernier reste bien moins évolué en terme de furtivité mais plus portable sur les différents noyaux Windows.

    Disons que la mise en place de telle technique est plutôt utilisé dans le but de maintenir discrètement un accès à distance sur une machine corrompu.

  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
    merci. en fait je voudrais savoir quel cas est possible:

    -une de ces deux fonctions retourne forcément faux si oui laquelle

    - GetModuleFileNameEx retourne un mauvais nom de module.

  5. #5
    Membre éclairé Avatar de homeostasie
    Homme Profil pro
    Inscrit en
    Mai 2005
    Messages
    939
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 939
    Points : 862
    Points
    862
    Par défaut
    Citation Envoyé par dvechamb Voir le message
    une de ces deux fonctions retourne forcément faux si oui laquelle
    Ah bon, pourquoi il y en aurait forcément une qui retournerait faux...
    Ici, si je comprends bien, on cherche à cacher un processus. Donc oui cela est possible et EnumProcessModules() ne le listera pas car on l'aura cacher soit à un niveau plus bas, soit avec un hook d'API.
    Puis GetModuleFileNameEx() fournit le chemin complet d'un module chargé dans un processus donné, donc je ne vois pas trop le rapport de faire ensuite appel à cet API puisque le processus n'existe plus. La cuillère n'existe pas. (c.f. Matrix).

    Citation Envoyé par dvechamb
    GetModuleFileNameEx retourne un mauvais nom de module.
    Sinon oui, cela est toujours possible.

    Bref, je ne comprends ou tu veux en venir...

    N.B.: Inutile de m'envoyer en PV le message que tu postes dans ton topic!

  6. #6
    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
    merci.

    "on l'aura cacher soit à un niveau plus bas, soit avec un hook d'API."
    et dans ce cas est ce que tu sais si enumprocessmodules retourne faux ou vrai?

  7. #7
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 058
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 058
    Points : 12 093
    Points
    12 093
    Par défaut
    enumprocessmodules n'est pas un détecteur de root kit.

    Il retournera "true" si le piratin à fait correctement son travail.

  8. #8
    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
    merci et je voudrais savoir si GetmodulesFileNameEx retourne un mauvais nom de module, est ce qu'il est possible que ce soit un nom d'un autre fichier existant ou est ce que ce sera forcément une chaîne de caractères qui ne veut rien dire.

  9. #9
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 518
    Points
    41 518
    Par défaut
    S'il y a un rootkit, ça peut être absolument tout ce que le pirate veut, non?
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  10. #10
    Membre éclairé Avatar de homeostasie
    Homme Profil pro
    Inscrit en
    Mai 2005
    Messages
    939
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 939
    Points : 862
    Points
    862
    Par défaut
    Citation Envoyé par bacelar Voir le message
    enumprocessmodules n'est pas un détecteur de root kit.
    Il retournera "true" si le piratin à fait correctement son travail.
    C'est clair et net. ;-)
    En fait que cela soit enumprocess() ou enumprocessmodules(), au final ces APIs font leur travail et récupèrent seulement ce que les appels systèmes leurs retournent. Elles y voient que du feu et ne peuvent pas être du tout consciente que plus bas on leur a caché l'existence de processus. Elles retourneront tout naturellement TRUE.

    S'il y a un rootkit, ça peut être absolument tout ce que le pirate veut, non?
    Théoriquement oui, tant que l'on se place toujours à un niveau plus bas ou égal à celui du détecteur de rootkit.
    On peut cacher des fichiers, des registres, des processus, des modules, des connexions réseaux, les photos et vidéos pornographiques de sa soeur...

  11. #11
    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
    "EnumProcessModules() ne le listera pas car on l'aura cacher à un niveau plus bas,"

    Pour faire ça est ce qu'il faut forcément executer un code
    ou est ce possible qu'un exe ayant été compilé d'une façon spéciale puisse cacher un de ses modules avant qu' il ne commence à s'executer.(On lance enumprocessmodule entre le moment où il a chargé ses premiers modules et celui où il commence à s'exécuter)

  12. #12
    Rédacteur
    Avatar de Neitsa
    Homme Profil pro
    Chercheur sécurité informatique
    Inscrit en
    Octobre 2003
    Messages
    1 041
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chercheur sécurité informatique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 041
    Points : 1 956
    Points
    1 956
    Par défaut
    Bonjour,

    Citation Envoyé par dvechamb Voir le message
    "EnumProcessModules() ne le listera pas car on l'aura cacher à un niveau plus bas,"

    Pour faire ça est ce qu'il faut forcément executer un code
    ou est ce possible qu'un exe ayant été compilé d'une façon spéciale puisse cacher un de ses modules avant qu' il ne commence à s'executer.(On lance enumprocessmodule entre le moment où il a chargé ses premiers modules et celui où il commence à s'exécuter)
    Il est possible d'exécuter du code avant le point d'entré d'un programme (certains malwares se servent de ce mécanisme pour se déchiffrer), donc de faire un unlink des modules (non visibles mais bien mappés dans l'espace d'adressage du processus) avant la première instruction du programme.

    De toute manière, je rejoint les commentaires des autres participants. Dans l'hypothèse ou un module noyau hook la création de processus (cf. PsSetCreateProcessNotifyRoutine), il est tout à fait possible pour lui "d'unlinker" des modules (i.e. des DLLs) d'un process et ceci au niveau kernel.

    Dans ce dernier cas, il est impossible pour un processus en user-land de voir quoi que ce soit...

  13. #13
    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
    merci et est ce possible quand on a le pid d'un process de retrouver le nom de l'exe si le premier module est caché?

  14. #14
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 518
    Points
    41 518
    Par défaut
    Si c'est caché, impossible en mode user. Peut-être possible en mode kernel si on arrive à descendre "plus bas" que le rootkit, et si le Kernel a besoin de conserver le nom de l'EXE pour que celui-ci tourne.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  15. #15
    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
    je repose la question est ce possible quand on a le pid d'un process de retrouver le nom de l'exe si le premier module est caché?

    mais pas dans le cas ou il ya un rootkit mais dans le cas exposé par Neitsa ou le virus se rend furtif lui meme avant meme de commencer a s'executer.

  16. #16
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 518
    Points
    41 518
    Par défaut
    Si le virus se rend furtif, c'est qu'il contient un rootkit.

    De toute façon, si ça se trouve le virus n'est même plus dans le même processus: Il peut avoir extrait une DLL de son exe (ou même directement du code en mémoire) et s'injecter dans ton processus Explorer.exe...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  17. #17
    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
    merci et est ce quelqu'un saurait comment faire pour trouver le nom des modules cachés, en allant plus bas que le rootkit, avec le mode kernel

  18. #18
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 518
    Points
    41 518
    Par défaut
    Ben non, ça dépend des rootkits, et ça suppose qu'il n'est pas possible de détruire carrément l'information sans faire couler le programme, ce qui n'est pas certain.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  19. #19
    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
    est ce que quelqu'un sait comment faire pour trouver la listes des modules chargés par un process, en mode kernel , qu'il y ait un rootkit ou pas?

  20. #20
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 518
    Points
    41 518
    Par défaut
    Comme je l'ai dit, il n'est même pas sûr que ce soit possible.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

Discussions similaires

  1. Réponses: 1
    Dernier message: 03/11/2012, 18h11
  2. Question sur les pointeurs avec les fonctions
    Par Loester dans le forum Débuter
    Réponses: 2
    Dernier message: 01/02/2012, 23h56
  3. Questions sur les fonctions et les variables
    Par dam28800 dans le forum jQuery
    Réponses: 2
    Dernier message: 10/08/2010, 10h54
  4. Pb avec les fonctions sur les chaines de caractères.
    Par arnold95 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 07/04/2008, 20h09

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