Страница: 1 |
Вопрос: Работа с PE | Добавлено: 24.08.05 17:03 |
Автор вопроса: ![]() |
Здраствуйте. Прошу вашей помощи по следующему вопросу:
Работаю с Header'om PE файла, а конкретно со структурой: IMAGE_NT_HEADERS/IMAGE_OPTIONAL_HEADER И вот никак не могу заюзать данные структуры на VB, юзал на асме. а на ВБ не могу :) Знаний видать по языку недостаточно. Мне собственно и нужен-то только один параметр - AddressOfEntryPoint. Короче, если кто работал с этими структурами, можете помочь! Советом, кодом, чем угодно, но на VB... |
Ответы | Всего ответов: 11 |
Номер ответа: 1 Автор ответа: ![]() ![]() ![]() Вопросов: 0 Ответов: 1876 ![]() |
Профиль | Цитата | #1 | Добавлено: 24.08.05 17:10 |
Что именно не получается?
Объявить private type IMAGE_OPTIONAL_HEADER? Объявить переменную этого типа? Открыть файл как binary? Выполнить get? Что? |
Номер ответа: 2 Автор ответа: ![]() ![]() ![]() ![]() ![]() ICQ: 321186096 Вопросов: 30 Ответов: 347 |
Web-сайт: Профиль | Цитата | #2 | Добавлено: 24.08.05 21:25 |
Что именно не получается? А что, BUG(O)R неясно написал?
Мне собственно и нужен-то только один параметр - AddressOfEntryPoint Ну, значит, ему нужно получит адрес точки входа.
|
Номер ответа: 3 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Offline Client Вопросов: 236 Ответов: 8362 |
Профиль | Цитата | #3 | Добавлено: 24.08.05 21:51 |
http://vbrussian.com
там видел пример по работе с PE |
Номер ответа: 4 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Offline Client ICQ: 233286456 Вопросов: 34 Ответов: 5445 |
Web-сайт: Профиль | Цитата | #4 | Добавлено: 24.08.05 21:52 |
открыть файл:
dim nf as integer dim oep as long nf = ffeefile open lpFileName For Binary Access Read as nf get nf, offset_oep, oep close nf , где offset_oep - смещение DWORD значения адреса точки входа. Т.к. тебе требуется получить всего одно значение, считаю бессмысленным объявление типа... |
Номер ответа: 5 Автор ответа: ![]() ![]() ![]() Вопросов: 0 Ответов: 1876 ![]() |
Профиль | Цитата | #5 | Добавлено: 25.08.05 02:37 |
Заголовок PE может находиться в разных местах, поэтому сначала надо найти, где он.
Так что это будет получение двух значений... А структура - дык наверняка он одной цифирью не ограничится... |
Номер ответа: 6 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Offline Client ICQ: 233286456 Вопросов: 34 Ответов: 5445 |
Web-сайт: Профиль | Цитата | #6 | Добавлено: 25.08.05 03:08 |
2GSerg, сейчас попробовал, действительно не ограничился ![]() 2BUG(O)R, а тебе какой адрес нужен, тот что начинается секция кода или тот что адрес... по которому загрузчик проецирует PE образ в память? |
Номер ответа: 7 Автор ответа: ![]() ![]() ICQ: 827887 Вопросов: 13 Ответов: 142 |
Web-сайт: Профиль | Цитата | #7 | Добавлено: 25.08.05 08:13 |
GSergЯ не пойму каким образом заполняется эта структура!
Заголовок PE может находиться в разных местах
Заголовок один! Его смещение для каждого приложения разное! а тебе какой адрес нужен, тот что начинается секция кода или тот что адрес... по которому загрузчик проецирует PE образ в память?
EntryPoint(EP). Адрес, с которого начинают считываться инструкции для выполнения. dim nf as integer
dim oep as long nf = ffeefile open lpFileName For Binary Access Read as nf get nf, offset_oep, oep close nf Это я знаю ![]() IMAGE_NT_HEADERS/IMAGE_OPTIONAL_HEADER Вот в чём вопрос! Спасибо за внимание, очень на вас надеюсь ![]() |
Номер ответа: 8 Автор ответа: ![]() ![]() ICQ: 827887 Вопросов: 13 Ответов: 142 |
Web-сайт: Профиль | Цитата | #8 | Добавлено: 25.08.05 08:18 |
http://vbrussian.com
там видел пример по работе с PE Всё облазил, не нашёл ![]() |
Номер ответа: 9 Автор ответа: ![]() ![]() ICQ: 827887 Вопросов: 13 Ответов: 142 |
Web-сайт: Профиль | Цитата | #9 | Добавлено: 25.08.05 08:24 |
НАШЁЛ!!!!!!!!!!!!!!!!!!!!!!!!!!! |
Номер ответа: 10 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Offline Client Вопросов: 236 Ответов: 8362 |
Профиль | Цитата | #10 | Добавлено: 25.08.05 12:59 |
![]() ну кто ищет, всегда находит - 100% |
Номер ответа: 11 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Offline Client ICQ: 204447456 Вопросов: 180 Ответов: 4229 |
Web-сайт: Профиль | Цитата | #11 | Добавлено: 25.08.05 17:22 |
Значение точки входа находится по смещению в 40 байт относительно начала PE-заголовка. Это смещение RVA относительно Image Base. |
Страница: 1 |
|