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

 C Discussion :

comment utiliser la structure IMAGE_FILE_HEADER du handle ?


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Collégien
    Inscrit en
    Janvier 2020
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Janvier 2020
    Messages : 13
    Par défaut comment utiliser la structure IMAGE_FILE_HEADER du handle ?
    bonjour je suis en train de creer en soft en c , je me demande si on peut extraire du handle des information comme par exemple la structure IMAGE_FILE_HEADER pour diverse utilité ,en gros d'ou extraire les info , et comment
    en gros comment utiliser une structure typedef :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    typedef struct _IMAGE_NT_HEADERS {
      DWORD                   Signature;
      IMAGE_FILE_HEADER       FileHeader;
      IMAGE_OPTIONAL_HEADER32 OptionalHeader;
    } IMAGE_NT_HEADERS32, *PIMAGE_NT_HEADERS32;
    en gros comment faire pour utiliser cette structure ? comment l'initialiser merci de vos reponse

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 392
    Par défaut
    Ça dépend des infos que tu veux, et à quoi tu veux accéder.
    Par exemple, je ne sais pas lire les infos de débogage, mais il est possible de lire les ressources d'un exécutable.

    Dans la structure IMAGE_FILE_HEADER elle-même, les infos les plus utiles "telles quelles" seront la timestamp de l'éditeur de liens (TimeDateStamp), qui indique quand l'exécutable a été compilé (sauf quand ce n'est pas le cas) et la "machine", qui indique la bitness de l'exécutable.
    Après, il faut creuser plus: SizeOfOptionalHeader et NumberOfSections indiquent la position et la taille de la table des sections, indispensable pour pouvoir lire quoi que ce soit d'intéressant (et si l'exécutable n'est pas mappé en mémoire, indispensable pour convertir une Relative Virtual Address (RVA) en offset dans le fichier).
    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.

  3. #3
    Membre averti
    Homme Profil pro
    Collégien
    Inscrit en
    Janvier 2020
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Janvier 2020
    Messages : 13
    Par défaut
    je veux lister les section et savoir a quel adresse est l l'OEP donc lesinfo que je veux sont dans IMAGE_FILE_HEADER
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    IMAGE_FILE_HEADER       FileHeader;
    peut on a partir d'un handle utilier la structure pour avoir : la taille de l'imagebase ,le nombre de section , etc ... et comment? un petit code en exemple m'aiderait beaucoup .
    je precise que j'obtient l'handle avec openprocess , je n'est pas compris l'histoire du timestamp*
    Merci de vos reponse

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 392
    Par défaut
    Un HANDLE de processus ne donne pas directement accès aux structures de données de l'exécutable. Toutefois il donne accès à EnumProcessModules(), qui lui donne plus ou moins accès (tu auras besoin de ReadProcessMemory() pour obtenir les infos).
    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.

  5. #5
    Membre averti
    Homme Profil pro
    Collégien
    Inscrit en
    Janvier 2020
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Janvier 2020
    Messages : 13
    Par défaut
    comment avoir accès aux structures de données de l'exécutable en execution et comment les lister ?(avec un code pour plus de comprehension )
    je pensait que avec le handle du process on pouvait le faire
    merci de vos futur reponse

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 392
    Par défaut
    Pour avoir accès à tes propres données, c'est là le plus simple: Utiliser le HMODULE de l'exécutable du processus courant, qui correspond à l'adresses de base où l'exécutable est chargé (du moins le début de l'exécutable, car ce qui suit la table des sections est géré un peu différemment).
    On obtient ce HMODULE avec GetModuleHandle(NULL).
    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.

  7. #7
    Membre Expert
    Femme Profil pro
    ..
    Inscrit en
    Décembre 2019
    Messages
    667
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 95
    Localisation : Autre

    Informations professionnelles :
    Activité : ..

    Informations forums :
    Inscription : Décembre 2019
    Messages : 667
    Par défaut
    Citation Envoyé par risk69 Voir le message
    comment avoir accès aux structures de données de l'exécutable en execution et comment les lister ?(avec un code pour plus de comprehension )
    Regarde les deux excellents articles de Matt Pietrek (http://www.wheaty.net/) au sujet du
    format PE ainsi que le code source de PEDUMP.

Discussions similaires

  1. [WD16] Comment utiliser 1 structure dans 1 WebService ?
    Par GEOFDEN dans le forum WinDev
    Réponses: 9
    Dernier message: 14/02/2011, 14h20
  2. Réponses: 2
    Dernier message: 10/11/2009, 08h43
  3. [DÉBUTANT] Structure d'un programme / Comment utiliser les modules ?
    Par Le Barde dans le forum Développement 2D, 3D et Jeux
    Réponses: 1
    Dernier message: 10/10/2007, 10h20
  4. [XSLT] Comment utiliser une structure de type if-then-ELSE ?
    Par ribrok dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 27/11/2006, 12h39
  5. Réponses: 7
    Dernier message: 18/04/2006, 17h44

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