Програма tdump в CBuilder

Програма tdump – ще одна утиліта CBuilder, яку можна застосовувати різними способами до файлів вашої системи В основному tdump дозволяє вам подивитися структуру файлу, розбивши його на компоненти У застосуванні до виконуваних файлів tdump може показати вам список модулів експортованих идентифика торів і, що найважливіше, імпортованих ідентифікаторів цього виконуваного файлу

Також програма tdump може працювати як звичайна програма дампа файлів, тобто подання їх в шістнадцятковому вигляді Якщо ви запустите її на звичайному двійковому файлі, то можете подивитися на шістнадцяткове уявлення файлу, що корисно при налагодженні для зясування, чому ваш файл не зберігає те, що повинен, або чому файл бази даних відмовляється відкриватися

Коротше кажучи, tdump – інструмент програміста, що дає доступ до внутрішньої структурі файлу Враховуючи всю складність програм під Windows 95 і NT, в наші дні така програма цінується на вагу золота

У табл 85 наведені основні параметри програми tdump, які ви можете задавати в командному рядку

Таблиця 85 Основні параметри програми tdump

-A Виводити результат у вигляді ASCII Це відображає всі ASCII символи у файлі Дуже корисно для пошуку рядків у виконуваному файлі

-A7 Як і-a, але відображає тільки другу частину ASCII-таблиці

-B # Почати відображення зі зміщенням в # байт у вхідному файлі Корисний, коли вам потрібно подивитися щось в середині або в кінці файлу

-E Обробляє файл як виконуваний, незалежно від його розширення

-El Не додавати номери рядків у висновку За замовчуванням номери рядків присутні у виводі

-H Шістнадцятков висновок Для типів файлів, які tdump «розуміє» (наприклад, EXE), висновок являє собою звичайний лістинг, що складається із записів

-M Заборонити розпізнавання перетворених імен C + +

-Oc Перевіряти цілісність записів у OBJ-файлі В основному необхідний для визначення, чи правильні записи в OBJ-файлі

-XID Не додавати налагоджувальні записи для типу ID

-R Зробити дамп обраних місць в записах

-R Для файлів PE (portable executable) зробити дамп таблиці переміщуються входів

(relocatable entries)

-V Режим з докладними повідомленнями

-O форсує програму tdump для обробки даного файла як обєктного (OBJ)

Синтаксис програми tdump представлений наступним рядком: tdump [options] InputFile [Listing]

де options – Або порожньо, або містить параметри з табл 85, InputFile – Імя виконуваного файлу, вміст якого ви хочете подивитися, а Listing – Імя вихідного файлу лістингу Якщо ви не поставите імя файлу лістингу, то програма видасть результати на консоль

Як бачите, програма tdump може дати вам чимало інформації про фото Давайте розглянемо два простих прикладу використання програми

По-перше, візьміть виконуваний файл у вашій системі і запустіть на ньому tdump Це може бути будь-який файл в каталозі Windows з розширенням EXE

У даному прикладі я вибрав ExporerEXE для програми tdump Коли ви запустите tdump, то отримаєте приблизно наступне: Turbo Dump Version 50131 Copyright (c) 1988, 1997 Borland International

Display of File EXPLOREREXE Old executable header

DOS File Size 31e00h (204288 ) Load Image Size 450h ( 1104 )

Relocation Table entry count 0000h ( 0 ) Relocation Table address 0040h ( 64 )

Size of header record (in paragraphs)0004h ( 4 )  Minimum Memory requirement (in paragraphs)0000h ( 0 )

Maximum Memory requirement (in paragraphs)FFFFh ( 65535 ) File load checksum 0000h ( 0 )

Overlay number 0000h ( 0 )

Initial Stack Segment (SS:SP) 0000:00B8 Program Entry Point (CS:IP) 0000:0000 Portable Executable (PE) File

Header base: 00000080

CPU type 80386

Flags 10E [ executable backwards 32bit ] DLL flags 0000 [ ]

Linker Version 232 Time stamp 2FF35DC9 O/S Version 10

User Version 00

Subsystem Version 40 Subsystem 002 [ Windows GUI ] Object count 00000005

Symbols offset 00000000

Symbols count 00000000 Optional header size 00E0 Magic # 10B

Code size 00021800 Init Data size 00010200

Uninit Data size 00000000 Entry RVA 0000DEF1

Image base 00400000

Code base 00001000

Data base 00023000

Object/File align 00001000/00000200 Reserved 00000000

Image size 00035000

Header size 00000400

Checksum 00034598

Stack reserve/commit 00100000/00001000 Heap reserve/commit 00400000/00001000 Number interesting RVAs 00000010

Вся ця інформація говорить вам що-небудь про файл: розмір коду, розмір даних, розмір образу завантажувача Більш цікаві речі, однак, перебувають у цій секції:

Imports from USER32dll DispatchMessageA(hint = 0086)

RedrawWindow(hint = 0194) RegisterWindowMessageA(hint = 01a0) SetScrollPos(hint = 01de) ScrollWindowEx(hint = 01ac) RegisterClassExA(hint = 0196) GetClassInfoExA(hint = 00c7) SendNotifyMessageA(hint = 01b5) IsWindowEnabled(hint = 0151)

UnionRect(hint = 0212)

GetMenu(hint = 00f3) SetWindowTextA(hint = 01ee)

Записи в секції «Imports from» показують вам, які динамічні бібліотеки (DLL) цей модуль вимагає для запуску Тому ви за допомогою tdump можете дізнатися, які DLL повинні бути присутніми в системі, щоб дана програма працювала в ній Більш цікава ідея – подивитися, звідки у програми певна функциональ ність, глянувши на набір імпортованих нею функцій І нарешті, ви можете дізнатися дещо про Windows API, подивившись на списки імпорту з таких системних дінамічес ких бібліотек (DLL) Windows, як USER32 і GDI32 Ви зможете знайти функції, про які ви ніколи не чули, зариті глибоко в надрах однієї з DLL і при цьому експортуються

Другий спосіб використання tdump – генерація шістнадцятирічного дампа програми Замість списку функцій програми Explorer ми можемо поглянути на деякі рядки тексту, поховані всередині файлу, використовуючи команду:

tdump -a explorerexe

Це призведе приблизно до такого висновку: C: \ WINDOWS> tdump-a explorerexe

Turbo Dump Version 50131 Copyright (c) 1988, 1997 Borland International Display of File EXPLOREREXE

000000: MZ …………. е ….. @ ………………….. ………. А ..

000040: . є … Н ЕLН This program cannot be run in DOS mode … $ …… 000080: PE . L . § ¤ 0 . ………… 2 ……………….. 0 … @ ……..

0000C0: ……………. P …. Р …………… @ …. ……………

000100: @ . М $ .. p . l «………………… * ………. …………..

000140:  ………………………………………………..text..

000180: ……………………… .`data         0……………..

0001C0: … @ . Аidata . м $ .. @ .. & ..…………..@.@rsrc…°..p.

000200: ¬ .. F ………… @ . @ Reloc . d …… 0 .. т ….. …… @ . B

000240:  ………………………………………………………

000280:  ………………………………………………………

0002C0:  ………………………………………………………

000300:  ………………………………………………………

Те, що ви бачите, – це заголовок виконуваного файлу, «заглушка», яка завантажується при запуску файлу Тут ми бачимо знайоме повідомлення «This program cannot be run in DOS mode» («програма не може бути запущена в режимі DOS »), яке зявляється, коли ви намагаєтеся запустити програму explorer поза середовища Windows Якщо подивитися весь файл, то можна побачити повідомлення про помилки для різних випадків, а також імена файлів і каталогів за замовчуванням і т д

Програма tdump в основному використовується для перегляду інформації про імпорт та експорт

програми, але, як ми бачили, її можна використовувати і для багато чого іншого

Джерело: Теллес М – Borland C + + Builder Бібліотека програміста – 1998

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*