Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.09.11;
Скачать: CL | DM;

Вниз

Опять PE   Найти похожие ветки 

 
Bobby   (2005-07-21 16:28) [0]

Уважаемые знатоки.
PE, DLL.
Читаю, читаю умных. Мож чего-то туплю, но не могу найти простых и ясных ответов на вопросы в которые уперся. Делов-то и всего :
получить списки экспорта и импорта функций в DLL.

Можно ли коротко (Да-Нет) меня поправить.

1) Неважно, загружена Dll или лежит на диске. Относительный адрес ВСЕХ PE-структур и полей одинаков. Разница одна - точка отсчета.
  Если загружена GetModuleHandle(), если нет - 0 (начало файла)
2) ВСЕ RVA привязаны к началу файла (или HMODULE)

Я пишу программку и на пробу взял aclui.dll (w2k SP4 размер 79120 байт);

Все заголовки читаются нормально.
Читаю таблицу каталогов(IMAGE_DIRECTORY_ENTRY_EXPORT - 1-я запись.)
Нахожу VirtualAddress = $DE40
      Size           = $BD

3) Значит по адресу  $DE40 должна находится таблица TImageExportDirectory.

4) Я читаю файл с диска. Иду по этому смещению и получаю явный мусор.
  Получается, что с какого-то момента Смещение в файле
  и RVA начинают отличаться.

5) Это связано с выравниванием секций (или страниц) в памяти?

У меня есть программка-просмотрщик PE. Она показывает величину RVA как и
меня. Но если в качестве смещения выбрать просто линейный адрес, то получается
не $DE40 , а $D440. Я посмотрел файл бинарно, действительно, по $D440 лежит
TImageExportDirectory. Куда пропала разница $A00.

К чему прибавлять RVA?????

Устал гадать, а мозги ничего не подсказывают.

Help!!!
Спасибо.


 
Digitman ©   (2005-07-21 16:56) [1]


> Но если в качестве смещения выбрать просто линейный адрес


лин.адрес чего ?


 
Bobby   (2005-07-21 16:59) [2]

Линейный адрес файла (0-начало Size- конец)


 
Eraser ©   (2005-07-21 18:36) [3]

Bobby   (21.07.05 16:59) [2]

"Линейный адрес файла" тут не причём... по моему на wasm.ru есть статья по структуре PE... да и вообще в нете на эту тему много чего есть.


 
Leonid Troyanovsky ©   (2005-07-21 21:12) [4]


> Bobby   (21.07.05 16:28)  

> простых и ясных ответов на вопросы в которые уперся. Делов-то
> и всего :
> получить списки экспорта и импорта функций в DLL.


От:Peter Below (TeamB) (100113.1...@compuXXserve.com)
Заголовок:Re: How to extract exported function names from .DLL
Группы новостей:borland.public.delphi­.objectpascal
Число:2000/01/09

И на rsdn есть статьи. Кажись, Макса Гумерова

--
Regards, LVT.



Страницы: 1 вся ветка

Текущий архив: 2005.09.11;
Скачать: CL | DM;

Наверх




Память: 0.45 MB
Время: 0.011 c
1-1124273583
Novice
2005-08-17 14:13
2005.09.11
Определение параметров при запуске приложения


14-1124122766
Andy BitOff
2005-08-15 20:19
2005.09.11
Как узнать что это за адреса?


6-1116951646
Vladd
2005-05-24 20:20
2005.09.11
связка IdHTTP - IdSSLIOHandlerSocket


4-1121961733
***_Diman_***
2005-07-21 20:02
2005.09.11
преобразование типов


3-1122901908
Начинающий3
2005-08-01 17:11
2005.09.11
TADOQUERY





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский