PDA

Просмотр полной версии : [ASM]Получение адреса исполняемого файла


артём612
20.11.2013, 19:42
Мне надо на асм не прибегая к win api получить адрес модуля исполняемого файла тобишь узнать адрес по которому загружен модуль *.exe

NerdyCodingKid
23.11.2013, 16:35
Презанятнейше. Можно полюбопытствовать - почему без winapi?

twice
25.11.2013, 07:56
Читай PEB. Пример на асме можно в гугле найти или реверся серьезную малварь.

[Ссылки могут видеть только зарегистрированные и активированные пользователи]

На сколько понимаю тебе ImageBaseAddress нужен.

NerdyCodingKid
25.11.2013, 08:27
Читай PEB. Пример на асме можно в гугле найти или реверся серьезную малварь.

[Ссылки могут видеть только зарегистрированные и активированные пользователи]

На сколько понимаю тебе ImageBaseAddress нужен.
Мне вот что интересно - у тебя есть подозрения о том, на кой ляд ему этот ImageBase без winapi понадобился?

артём612
25.11.2013, 10:48
Презанятнейше. Можно полюбопытствовать - почему без winapi?

Я пишу шелкод.
Расклад такой что структура pe мне известна.
Без вин апи потому что в виндовс от версии к версии меняются адреса функций и я просто не знаю как найти их.

Но с вопросом адреса модуля я разобрался я просто получал текущий eip и вычитал смещение точки входа.

NerdyCodingKid
25.11.2013, 10:50
Я пишу шелкод.
Расклад такой что структура pe мне известна.
Без вин апи потому что в виндовс от версии к версии меняются адреса функций и я просто не знаю как найти их.

Но с вопросом адреса модуля я разобрался я просто получал текущий eip и вычитал смещение точки входа.
Так и надо было сказать что пишешь шеллкод да дельту ищешь.

артём612
25.11.2013, 10:57
NerdyCodingKid, ты случаем не знаешь как найти адреса винапи функций?

twice
25.11.2013, 11:56
ты случаем не знаешь как найти адреса винапи функций?

Читаешь :

TEB -> PEB -> PEB_LDR_DATA structure -> InLoadOrderModuleList

Далее проходишь по списку загруженных модулей в поисках нужного тебе, например kernel32.dll.
Как нашел нужный модуль, далее читаешь его таблицу экспорта, а от туда ты получаешь адрес нужной win api функции.

NerdyCodingKid
25.11.2013, 13:27
NerdyCodingKid, ты случаем не знаешь как найти адреса винапи функций?
Один из самых простых способов изложен тут ([Ссылки могут видеть только зарегистрированные и активированные пользователи]). Ничего парсить не требуется, всё сводится к поиску kernelbase.