TDUMP.EXE, l'utilitaire de vidage de fichier

De RAD Studio
Aller à : navigation, rechercher

Remonter à Utilitaires de ligne de commande - Index

TDUMP.EXE produit un vidage montrant la structure d'un fichier.

TDUMP divise un fichier de manière structurelle et utilise son extension pour déterminer le format d'affichage de sortie. TDUMP reconnaît de nombreux formats de fichier, tels que.EXE, .OBJ et .LIB. Si TDUMP ne reconnaît pas une extension, il produit un vidage hexadécimal du fichier. Vous pouvez contrôler le format de sortie en utilisant les options de la ligne de commande TDUMP au lancement du programme.

La capacité de TDUMP à visualiser la structure interne d'un fichier permet non seulement de voir le contenu d'un fichier, mais aussi de savoir comment il est construit. De plus, comme TDUMP vérifie que la structure d'un fichier correspond à son extension, vous pouvez aussi l'employer pour tester l'intégrité des fichiers.

TDUMP peut lire son entrée depuis stdin par redirection (en utilisant un symbole supérieur à >) ou par canal (en utilisant une barre verticale |).

TDUMP64.EXE est l'utilitaire de vidage de fichier pour Windows 64 bits, et il possède les mêmes options et la même syntaxe que TDUMP.EXE.

Syntaxe de la ligne de commande

TDUMP [<options>] <inputfile> [<listfile>]

Où :

  • <inputfile> désigne le fichier dont vous voulez afficher (ou "vider") la structure.
  • <listfile> est un nom facultatif de fichier de sortie (vous pouvez aussi utiliser la commande standard de redirection >).
  • <options> représente des options de la ligne de commande TDUMP.


Pour afficher l'aide de la ligne de commande, entrez :

tdump

ou

tdump -?

pour afficher l'écran d'aide étendu de la ligne de commande.


Options de la ligne de commande

Vous pouvez utiliser le caractère de préfixe / ou - devant les options. Par exemple, les deux commandes suivantes sont équivalentes :

TDUMP -e1 -v demo.exe
TDUMP /el /v demo.exe

TDUMP.EXE supporte les options de ligne de commande listées dans le tableau suivant :

Options de la ligne de commande TDUMP

Option Description
-?

Affiche l'écran d'aide étendu.

-a
-a7

TDUMP ajuste automatiquement l'affichage de sortie en fonction du type de fichier. Vous pouvez forcer un affichage de fichier au format ASCII en incluant l'option --a ou -a7.

  • -a -- produit un affichage de fichier ASCII qui montre le décalage et le contenu en caractères ASCII affichables. Un caractère non affichable (comme un caractère de contrôle) apparaît sous la forme d'un point.
  • -a7 -- convertit les caractères de la partie haute du tableau ASCII en leurs équivalents de la partie basse du tableau ASCII. Cela est utile si le fichier en cours de vidage utilise des caractères ASCII hauts comme indicateurs.
-b#

Permet d'afficher les informations commençant à un offset # décimal spécifié (préfixe hexadécimal avec 0x). Par exemple, pour obtenir un vidage de MYFILE à partir de l'offset 100, vous pouvez taper :
TDUMP -b100 MYFILE

-C

TDUMP renvoie les informations contenues dans les fichiers de format COFF (.OBJ et .LIB). Cette option est utile lors de l'établissement de liaison avec des fichiers.OBJ et .LIB Microsoft. (COFF seulement.)

-d

TDUMP renvoie les éventuelles informations de débogage C++Builder 32 bits contenues dans le fichier .OBJ. Si cette option est absente, TDUMP n'affiche que des données brutes. (OMF seulement.)

-e
-ea[:v]
-ed
-ee[=x]
-eh
-eiID
-el
-em[=x]
-em.[x]
-ep
-er
-es[=x]
-et
-ex

Toutes ces options forcent TDUMP à afficher le fichier sous la forme d'un fichier exécutable (.EXE/DLL).
L'affichage d'un fichier exécutable se compose des informations contenues dans le fichier qui sont utilisées par le système d'exploitation pour charger ce fichier. Si des informations symboliques de débogage sont présentes, TDUMP les affiche.
TDUMP affiche des informations pour les fichiers exécutables DOS, les fichiers exécutables de NOUVEAU style (.DLLs et .EXEs OS/2 et Windows 16 bits), les fichiers exécutables linéaires (Linear Executable) et les fichiers exécutables portables (Portable Executable, PE) utilisés par Windows 32 bits (Windows 95/98/Me, Windows NT/2000/XP, et ainsi de suite).

  • -e -- Affiche le fichier comme un exécutable (EXE/DLL, DOS, Win16, OS/2, PE).
  • -ea[:v] -- Définit comment afficher tous les éléments exportés. (PE seulement.)
    • -ea -- Affiche tous les éléments exportés non triés.
    • -ea:v -- Affiche tous les éléments exportés non triés par RVA.
Par défaut, effectue seulement un vidage des éléments exportés nommés, avec tri sur le nom.
  • -ed -- Désactive les informations de débogage EXE.
  • -ee[=x] -- Liste les éléments exportés seulement depuis EXE/DLL (le paramètre facultatif x permet de ne lister que les correspondances). (PE seulement.)
  • -eh -- Désactive l'affichage des en-têtes EXE. (Elf seulement.)
  • -eiID -- Inclut seulement l'ID de table .EXE (HDR, OBJ, FIX, NAM, ENT). (PE seulement.)
  • -el -- Supprime les numéros de ligne dans l'affichage.
  • -em[=x] -- Liste les éléments importés seulement depuis EXE/DLL (le paramètre facultatif x permet de ne lister que les correspondances). (PE seulement.)
  • -em.[x] -- Liste les modules importés seulement depuis EXE/DLL (le paramètre facultatif x permet la recherche dans les chaînes). (PE seulement.)
  • -ep -- Désactive l'affichage de l'en-tête EXE PE. (PE seulement.)
  • -er -- Empêche l'affichage de la table de relogement.
  • -es[=x] -- Vidage hexadécimal des sections de programme. Utilisez x pour spécifier une section particulière. (Elf seulement.)
  • -et -- Désactive les tables de symboles EXE. (Elf seulement.)
  • -ex -- Empêche l'affichage des informations d'exécutables de Nouveau style. Cela signifie que TDUMP n'affiche que des informations pour les programmes DOS "stub".
-h[O|=x]

Affiche le fichier de vidage au format hexadécimal.

  • O -- peut prendre la valeur :
    • r -- Imprime les offsets relatifs à l'offset de début.
    • a -- Imprime les offsets absolus.
  • =x -- Offset début de fichier (identique à -b#).

Le format hexadécimal comprend une colonne de numéros d'offset, 16 colonnes de nombres hexadécimaux et leurs équivalents ASCII (un point apparaît lorsque le caractère ASCII n'est pas affichable).
Si TDUMP ne reconnaît pas l'extension du fichier d'entrée, il affiche le contenu du fichier au format hexadécimal (sauf si une option est utilisée pour indiquer un autre format).

-iID

Spécifie l'ID de la table de débogage à utiliser. ID=[?/abc...rst]. (Pas Elf.)

-xID

Spécifie l'ID de la table de débogage à exclure. ID=[?/abc...rst]. (Pas Elf.)

-l
-le[=x]
-li[=x]

Affiche le fichier de sortie sous la forme d'un fichier de bibliothèque (.LIB). (OMF LIB seulement.)
Un fichier bibliothèque est un ensemble de fichiers objet (voir l'option -o pour plus d'informations sur les fichiers objet).
Le vidage d'un fichier bibliothèque affiche les informations propres à la bibliothèque, les fichiers objet et les enregistrements qu'ils contiennent.

  • -li -- Indique à TDUMP d'afficher un format court des enregistrements IMPDEF lors du vidage de bibliothèques d'importation. Vous pouvez aussi spécifier une chaîne de recherche à l'aide de la syntaxe suivante :
-li=<string>
Par exemple, la commande suivante :
tdump -li=codeptr import32.lib
produit la sortie suivante :
Impdef:(ord) KERNEL32.0336=ISBADCODEPTR
Cette sortie montre que la fonction est exportée par ordinal, dont la valeur (décimale) est 336. En outre, la sortie affiche le nom du module et celui de la fonction.
Si vous entrez la commande suivante :
tdump -li=walk import32.lib
TDUMP affiche :
Impdef:(name) KERNEL32.????=HEAPWALK
Il s'agit là de la sortie correspondant à une fonction exportée par nom.
  • -le -- Indique à TDUMP d'afficher une forme courte des enregistrements EXDEF lors du vidage des fichiers OBJ. Vous pouvez aussi spécifier une chaîne de recherche à l'aide de la syntaxe suivante :
-le=<string>
-lm[=x]

Affiche le vidage des membres (x liste seulement les correspondances). (ELF LIB seulement.)

-lh

Affiche la liste des membres de l'archive. (ELF LIB seulement.)

-lt

Affiche les symboles exportés de l'archive. (ELF LIB seulement.)

-m

Laisse les noms C++ présents dans les fichiers objet, les fichiers exécutables et les fichiers d'informations symboliques du débogueur en format "abrégé". Cette option est utile pour déterminer comment le compilateur C++ "abrège" un nom de fonction particulier et ses arguments. (Pas Elf.)

-M

Affiche le fichier MACH. (MACH seulement.)

-ns

Désactive le support de la redirection stdin.

-o
-oc
-oiID[=x]
-oxID[=x]

Cette commande affiche le fichier sous la forme d'un fichier objet (.OBJ). (OMF seulement.)

  • -o -- affiche le fichier sous la forme d'un fichier objet (.OBJ). L'affichage d'un fichier objet contient des descriptions des enregistrements de commandes qui passent des commandes et des données au lieur, pour lui indiquer comment créer un fichier .EXE. Le format d'affichage montre chaque enregistrement et ses données associées, enregistrement par enregistrement.
  • -oc -- demande à TDUMP d'effectuer un test de redondance cyclique (CRC) sur chaque enregistrement rencontré. L'affichage ne diffère de celui produit par l'option -o que si un code CRC incorrect est rencontré (la valeur CRC de TDUMP est différente de l'octet CRC de l'enregistrement).
  • -oi<ID> -- n'inclut dans le vidage du module objet que les types d'enregistrement OMF spécifiés.
-ox<ID>[=x] -- exclut du vidage du module objet les types d'enregistrement OMF spécifiés.
Remplacez <ID> par le nom de l'enregistrement à afficher. Par exemple :
TDUMP -oiPUBDEF MYMODULE.OBJ produit un affichage de module objet pour MYMODULE.OBJ qui n'affiche que les enregistrements PUBDEF.
Les options -ox et -oi sont utiles pour trouver les erreurs se produisant pendant la liaison. En examinant l'orthographe et la casse des symboles EXTDEF et PUBDEF, vous pouvez résoudre de nombreux problèmes de liaison. Par exemple, si vous recevez du lieur un message du type "symbole externe non résolu", vous pouvez utiliser
TDUMP -oiEXTDEF pour afficher les définitions externes contenues dans le module qui provoque l'erreur. Utilisez ensuite :
TDUMP -oiPUBDEF sur le module contenant le symbole public pour lequel le lieur n'a pas trouvé de correspondance.
Le commutateur -oi permet aussi de connaître les noms et tailles des segments générés dans un module particulier. Par exemple :
TDUMP -oiSEGDEF MYMODULE.OBJ affiche les noms, attributs et tailles de tous les segments de MYMODULE.

Remarque : Pour obtenir une liste des types d'enregistrement pour -oi et -ox, utilisez les options de ligne de commande -oi? et -ox?.

-q

Supprime le message de copyright.

-r

TDUMP affiche des données brutes. (OMF seulement.)

-R

TDUMP vide les tables de relogement des images au format 32 bits PE (Win32). Par défaut, ces vidages ne sont pas présentés. (PE seulement.)

-s[=x]
-su[=x]
-s[xx]

Indique à TDUMP d'afficher des chaînes.

  • -s[=x] -- Par défaut -s affiche toutes les chaînes d'un fichier donné. x = chaîne de recherche. Vous pouvez spécifier une chaîne, ou une partie de chaîne, à l'aide de la syntaxe suivante :
-s=<string>
Par exemple, la commande :
TDUMP -s=black GoGame.exe
génère toutes les chaînes suivantes contenant black :
56840  IDI_BLACK 81965: Capture Black 85038: black.bmp
L'argument string facultatif est insensible à la casse. Pour spécifier plusieurs mots d'une chaîne, utilisez des guillemets. Par exemple :
TDUMP -s="game of go" GoGame.exe
  • -su[=x] -- indique à TDUMP d'afficher les chaînes de style Unix, c'est-à-dire sans offset (ou des offsets décimaux, -h pour les valeurs hexadécimales). L'option -su[=x] est utilisée de la même façon que -s[=x]. L'argument chaîne x facultatif définit la chaîne de recherche.
Par exemple, la commande :
TDUMP -su=black GoGame.exe
produit la sortie suivante :
IDI_BLACK Capture Black black.bmp
  • -s[xx] -- Affiche les chaînes visualisables. xx peut prendre la valeur :
    • # -- Longueur de chaîne minimale à rechercher (par défaut : 4).
    • b# -- Offset début de fichier (-b# est équivalent à -sb#).
    • e# -- Offset fin de fichier.
    • f -- Formatage (enveloppement) des chaînes longues.
    • s -- Recherche des chaînes en tenant compte de la casse (par défaut : non).
-t#

Offset fin de fichier -b# pour l'affichage (préfixe hexadécimal avec 0x). (Elf seulement.)

-ua

Désassemble en source asm. (OMF seulement.)

-um

Affiche les noms substantypés comme non substantypés. Vous n'avez pas besoin de reformater le texte pour n'éditer que les noms substantypés avant d'utiliser cette option. Vous pouvez passer une sortie présentant des noms substantypés n'importe où dans le texte, et seuls les noms substantypés seront affectés. (Pas Elf.)

-v

Affichage détaillé. (OMF et COFF seulement.)
Si elle est utilisée avec un fichier .OBJ ou .LIB, TDUMP produit un vidage hexadécimal du contenu de l'enregistrement sans générer de commentaires sur les enregistrements.
Si vous utilisez TDUMP sur une table de symboles du débogueur, elle affiche les tables d'informations dans l'ordre dans lequel elle les rencontre. TDUMP ne combine pas les informations de plusieurs tables, pour fournir un affichage plus significatif par module.

-w
-wq[#]

Définit comment utiliser les caractères génériques dans les spécifications de fichier.

  • -w -- Autorise les caractères génériques dans les spécifications de fichier.
  • -wq[#] -- Commutateur caractères génériques silencieux. # est la largeur.

Voir aussi