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