Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 2 054

/ вопрос открыт /

Здравствуйте, уважаемые эксперты.Скажите пожалуйста, каким образо можно узнать какие процедуры и функции содержит dll?

Женя Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: Женя (статус: Посетитель)
Вопрос отправлен: 5 ноября 2008, 19:39
Состояние вопроса: открыт, ответов: 2.

Ответ #1. Отвечает эксперт: DNK

Здравствуйте, Женя!
Вы должно быть слышали о программе Total Commander. Я, например, пользуюсь 7-й версией. Выбираете DLL вызываете внутренний просмотрщик файлов (F3). Получаете прорву информации об исколой библиотеке. Вас интересует закладка "Image File Header" с довольно объемным текстом. Ближе к концу должен быть кусок начинающийся со строки EXPORTS TABLE. См. примеч.

Приложение:
  1. EXPORTS TABLE:
  2. Name: engine.dll
  3. Characteristics: 00000000h
  4. TimeDateStamp: 4076AE02h -> 09/04/2004 18:06:58
  5. Version: 0.00
  6. Ordinal base: 00000001h
  7. # of functions: 0000001Ch (28)
  8. # of Names: 0000001Ch (28)
  9.  
  10. Entry Pt Ordn Name
  11. 00049F20h 1 GetFieldText
  12. 0001B940h 2 GetRuntime
  13. 0001A8C0h 3 OutpostPlugInEntry
  14. 0001B920h 4 OutpostPlugInEventHandler
  15. 0001A900h 5 OutpostPlugInUnLoad
  16. 0001A710h 6 RunProcess
  17. 0001A910h 7 SetProtectionCode
  18. 0001A740h 8 _OutpostPlugInEntry
  19. 0001ABD0h 9 _OutpostPlugInEventHandler
  20. 0001A8E0h 10 _OutpostPlugInUnLoad
  21. 00050380h 11 _get_address_text
  22. 00050640h 12 _get_connection_text
  23. 00050AE0h 13 _get_process_text
  24. 00029810h 14 calc_md5
  25. 00005AD0h 15 create_adapters
  26. 00007F30h 16 create_context_man
  27. 0000B550h 17 create_dnscache
  28. 0000C640h 18 create_driver
  29. 00022150h 19 create_event_report
  30. 00026D50h 20 create_host_list
  31. 000288D0h 21 create_learning
  32. 0002A780h 22 create_modules
  33. 00036EB0h 23 create_netstat
  34. 0004FBE0h 24 format_host_name
  35. 0004FA90h 25 format_port
  36. 0004F990h 26 format_protocol
  37. 0004FED0h 27 format_time
  38. 0000E3E0h 28 get_prot_data
  39.  


Ответ отправил: DNK (статус: Студент)
Время отправки: 5 ноября 2008, 20:16
Оценка за ответ: 5

Комментарий к оценке: Вы прям открыле мне глаза

Ответ #2. Отвечает эксперт: min@y™

Неплохая утилитка идёт вместе в delphi - TDump.exe (в папке bin). Она консольная, но можно заставить её выводить инфу в файл.
Для пробы я взял DLL от компонента-архиватора bzip2 - libbz2.dll и натравил на неё TDump.exe. Результаты - в приложении.

Приложение:
  1. Turbo Dump Version 5.0.16.12 Copyright (c) 1988, 2000 Inprise Corporation
  2. Display of File LIBBZ2.DLL
  3.  
  4. Old Executable Header
  5.  
  6. DOS File Size 18E00h (101888. )
  7. Load Image Size 450h ( 1104. )
  8. Relocation Table entry count 0000h ( 0. )
  9. Relocation Table address 0040h ( 64. )
  10. Size of header record (in paragraphs) 0004h ( 4. )
  11. Minimum Memory Requirement (in paragraphs) 0000h ( 0. )
  12. Maximum Memory Requirement (in paragraphs) FFFFh ( 65535. )
  13. File load checksum 0000h ( 0. )
  14. Overlay Number 0000h ( 0. )
  15.  
  16. Initial Stack Segment (SS:SP) 0000:00B8
  17. Program Entry Point (CS:IP) 0000:0000
  18.  
  19.  
  20. Portable Executable (PE) File
  21.  
  22. Header base: 00000080
  23.  
  24. CPU type 80386
  25. Flags 210E [ executable backwards 32bit library ]
  26. DLL flags 0000 [ ]
  27. Linker Version 5.0
  28. Time stamp 37B17A62 : Wed Aug 11 17:28:02 1999
  29. O/S Version 4.0
  30. User Version 0.0
  31. Subsystem Version 4.0
  32. Subsystem 0002 [ Windows GUI ]
  33. Object count 00000005
  34. Symbols offset 00000000
  35. Symbols count 00000000
  36. Optional header size 00E0
  37. Magic # 10B
  38. Code size 00013400
  39. Init Data size 00006C00
  40. Uninit Data size 00000000
  41. Entry RVA 0000E200
  42. Image base 10000000
  43. Code base 00001000
  44. Data base 00015000
  45. Object/File align 00001000/00000200
  46. Reserved 00000000
  47. Image size 0001E000
  48. Header size 00000400
  49. Checksum 00000000
  50. Stack reserve/commit 00100000/00001000
  51. Heap reserve/commit 00100000/00001000
  52. Number interesting RVAs 00000010
  53. Name RVA Size
  54. ------------------ -------- --------
  55. Exports 00015460 0000021B
  56. Imports 0001C000 00000028
  57. Resources 00000000 00000000
  58. Exceptions 00000000 00000000
  59. Security 00000000 00000000
  60. Fixups 0001D000 00000790
  61. Debug 00000000 00000000
  62. Description 00000000 00000000
  63. Global Ptr 00000000 00000000
  64. TLS 00000000 00000000
  65. Callbacks 00000000 00000000
  66. Bound Imports 00000000 00000000
  67. Import Addr Table 0001C0D4 000000AC
  68. Delayed Imports 00000000 00000000
  69. COM Runtime 00000000 00000000
  70. reserved 00000000 00000000
  71.  
  72. Object table:
  73. # Name VirtSize RVA PhysSize Phys off Flags
  74. -- -------- -------- -------- -------- -------- --------
  75. 01 .text 00013390 00001000 00013400 00000400 60000020 [CER]
  76. 02 .rdata 0000067B 00015000 00000800 00013800 40000040 [IR]
  77. 03 .data 00005264 00016000 00003E00 00014000 C0000040 [IRW]
  78. 04 .idata 00000462 0001C000 00000600 00017E00 C0000040 [IRW]
  79. 05 .reloc 000008DE 0001D000 00000A00 00018400 42000040 [DIR]
  80.  
  81. Key to section flags:
  82. C - contains code
  83. D - discardable
  84. E - executable
  85. I - contains initialized data
  86. R - readable
  87. W - writeable
  88.  
  89. ******************************************************************************
  90. Section: Import
  91. ImportLookUpTblRVA:0001C028
  92. Time Stamp: 00000000
  93. Forwarder Chain: 00000000 (index of first forwarder reference)
  94.  
  95. Imports from KERNEL32.dll
  96. (hint = 026E) WideCharToMultiByte
  97. (hint = 0246) TerminateProcess
  98. (hint = 00D3) GetCurrentProcess
  99. (hint = 0168) HeapAlloc
  100. (hint = 016E) HeapFree
  101. (hint = 00AA) GetCommandLineA
  102. (hint = 0116) GetProcAddress
  103. (hint = 00FE) GetModuleHandleA
  104. (hint = 014C) GetVersion
  105. (hint = 021B) SetHandleCount
  106. (hint = 012A) GetStdHandle
  107. (hint = 00EF) GetFileType
  108. (hint = 0128) GetStartupInfoA
  109. (hint = 016C) HeapDestroy
  110. (hint = 016A) HeapCreate
  111. (hint = 025E) VirtualFree
  112. (hint = 025B) VirtualAlloc
  113. (hint = 00F4) GetLastError
  114. (hint = 027B) WriteFile
  115. (hint = 008E) FlushFileBuffers
  116. (hint = 01D6) ReadFile
  117. (hint = 0018) CloseHandle
  118. (hint = 006B) ExitProcess
  119. (hint = 012B) GetStringTypeA
  120. (hint = 012E) GetStringTypeW
  121. (hint = 01AB) MultiByteToWideChar
  122. (hint = 00FC) GetModuleFileNameA
  123. (hint = 00A3) GetCPInfo
  124. (hint = 009D) GetACP
  125. (hint = 0109) GetOEMCP
  126. (hint = 0096) FreeEnvironmentStringsA
  127. (hint = 0097) FreeEnvironmentStringsW
  128. (hint = 00E1) GetEnvironmentStrings
  129. (hint = 00E3) GetEnvironmentStringsW
  130. (hint = 0051) DisableThreadLibraryCalls
  131. (hint = 0219) SetFilePointer
  132. (hint = 0229) SetStdHandle
  133. (hint = 0031) CreateFileA
  134. (hint = 0190) LoadLibraryA
  135. (hint = 018D) LCMapStringA
  136. (hint = 018E) LCMapStringW
  137. (hint = 0210) SetEndOfFile
  138.  
  139. ******************************************************************************
  140. Section: Exports
  141. Flags: 00000000
  142. Time Stamp: 37B17A62 : Wed Aug 11 17:28:02 1999
  143. Major Version: 0000
  144. Minor Version: 0000
  145.  
  146. Exports from LIBBZ2.dll
  147. 22 exported name(s), 22 export addresse(s). Ordinal base is 1.
  148. Sorted by Name:
  149. RVA Ord. Hint Name
  150. -------- ---- ---- ----
  151. 00006ECA 1 0000 bzBuffToBuffCompress
  152. 00006FCC 2 0001 bzBuffToBuffDecompress
  153. 00003EB0 3 0002 bzCompress
  154. 00004875 4 0003 bzCompressEnd
  155. 00003B65 5 0004 bzCompressInit
  156. 00004AB7 6 0005 bzDecompress
  157. 0000603B 7 0006 bzDecompressEnd
  158. 0000493F 8 0007 bzDecompressInit
  159. 00006ACB 9 0008 bzRead
  160. 00006A12 10 0009 bzReadClose
  161. 00006DEF 11 000A bzReadGetUnused
  162. 000067CC 12 000B bzReadOpen
  163. 00006304 13 000C bzWrite
  164. 00006537 14 000D bzWriteClose
  165. 00006117 15 000E bzWriteOpen
  166. 00007479 16 000F bzclose
  167. 000073E0 17 0010 bzdopen
  168. 00007470 18 0011 bzflush
  169. 000070C5 19 0012 bzlibVersion
  170. 000070CF 20 0013 bzopen
  171. 000073FB 21 0014 bzread
  172. 00007443 22 0015 bzwrite
  173.  
  174.  
  175.  


Ответ отправил: min@y™ (статус: Доктор наук)
Время отправки: 7 ноября 2008, 08:26


Мини-форум вопроса

Всего сообщений: 1; последнее сообщение — 6 ноября 2008, 14:23; участников в обсуждении: 1.
Vetalion

Vetalion (статус: Посетитель), 6 ноября 2008, 14:23 [#1]:

Программа ADLLExports. С исходниками!

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:40
Выполнено за 0.02 сек.