Сейчас на форуме: rmn, exp50848 (+7 невидимых)

 eXeL@B —› Основной форум —› Новичкам: процесс загрузки PE наглядно и доступно
Посл.ответ Сообщение


Ранг: 209.5 (наставник), 42thx
Активность: 0.10
Статус: Участник
WinCE ARM M@sTeR

Создано: 19 июля 2012 04:30 · Поправил: Getorix
· Личное сообщение · #1

Просветляемся

P.S. Даже на русский перевели

-----
Get busy living or get busy dying ©


| Сообщение посчитали полезным: Exaktus_, igorca, VodoleY, SergX, sivorog, neomant, -=AkaBOSS=-, yashechka, Xlab0s, OnLyOnE, _ruzmaz_, upss, Chris, Carpe DiEm, Dart Sergius, Abraham

Ранг: 0.8 (гость)
Активность: 0.010
Статус: Участник

Создано: 19 июля 2012 13:48 · Поправил: Lumpy
· Личное сообщение · #2

Не понятно только почему у них ExitProcess расположен по адресу 0х402068
Должно быть тогда уж:
Exported fn(): ExitProcess - Ord:00B7h
:7C81CB12 8BFF mov edi, edi

Т.е. код должен быть:
Code:
  1. push 00000000
  2. call 7C81CB12  ;Kernel32.ExitProcess





Ранг: 990.2 (! ! !), 380thx
Активность: 0.680
Статус: Модератор
Author of DiE

Создано: 19 июля 2012 14:00
· Личное сообщение · #3

Lumpy ещё раз изучаем и внимательно.

Code:
  1. push 00000000
  2. call [402068] ;указатель на Kernel32.ExitProcess


а если оставить код как у вас, то будет привязка к адресу, а значит не везде работать.

-----
[nice coder and reverser]





Ранг: 340.0 (мудрец), 22thx
Активность: 0.120
Статус: Участник
THETA

Создано: 19 июля 2012 14:05
· Личное сообщение · #4

Lumpy пишет:
Не понятно только почему у них ExitProcess расположен по адресу 0х402068

Так все верно - адреса записаны в RVA, относительно ImageBase. В этом примере он стандартный и = 400000h.

-----
Программист SkyNet





Ранг: 568.2 (!), 464thx
Активность: 0.550.57
Статус: Участник
оптимист

Создано: 19 июля 2012 14:20
· Личное сообщение · #5

Getorix пишет:
Просветляемся

Просветление то обрубленное в данных по секциям нет упоменания про
Code:
  1. PointerToRelocations;
  2. PointerToLinenumbers;
  3. NumberOfRelocations;
  4. NumberOfLinenumbers;

как будто их и впомине нет если и читать то лучше маны от мелкомягких,а точто перевели на русик толку 0.

-----
Чтобы правильно задать вопрос, нужно знать большую часть ответа. Р.Шекли.





Ранг: 340.0 (мудрец), 22thx
Активность: 0.120
Статус: Участник
THETA

Создано: 19 июля 2012 20:37 · Поправил: FrenFolio
· Личное сообщение · #6

ClockMan пишет:
Просветление то обрубленное в данных по секциям нет упоменания про

Ка и всегда, самое важное внизу, мелким шрифтом:
Code:
  1. Это полноценный PE-файл, однако, большинство PE-файлов содержат большее количество элементов. Для простоты объяснения упущены.

В принципе, тут много о чем не говорится, нет, например, ничего о TLS или о Bound import. Также ни слова не сказано об отличиях между exe-файлом и динамическими библиотеками dll, их структуре, и т.д. и т.п. Однако, учитывая, что это некое вводное пособие для новичков, то оно вполне неплохо. Ведь можно на примере, да еще и с картинками наглядно увидеть и разобраться в структуре PE-файла, в 1-ом приближении, в отличие от тех же манов от мелкомягких, где вообще мало что понятно, особенно для новичков.

-----
Программист SkyNet




Ранг: 0.8 (гость)
Активность: 0.010
Статус: Участник

Создано: 19 июля 2012 22:03 · Поправил: Lumpy
· Личное сообщение · #7

Чтобы сделать нормальный мануал по структуре PE ,надо брать конкретный файл,открывать его в PETools и каждую опцию подробно расписывать со скриншотами.
Новичкам достаточно знать,как файл PE загружается в память,что такое RVA,VA,ImageBase, как работать с секциями добавлять\удалять\менять аттрибуты. Остальные опции не очень то нужны
FrenFolio пишет:
Также ни слова не сказано об отличиях между exe-файлом и динамическими библиотеками dll, их структуре, и т.д. и т.п

Это точно.Я например нифига так и не понял,как библиотеки грузятся в память.Почему у них ImageBase всегда разная,и как разница в какую область памяти грузить модуль.
Как работают релоки тоже большинство чайников не понимают,и я в том числе.




Ранг: 337.6 (мудрец), 224thx
Активность: 0.210.1
Статус: Участник
born to be evil

Создано: 19 июля 2012 22:19
· Личное сообщение · #8

Lumpy
английский + сайт мелкомягких = бинго

-----
От многой мудрости много скорби, и умножающий знание умножает печаль





Ранг: 568.2 (!), 464thx
Активность: 0.550.57
Статус: Участник
оптимист

Создано: 20 июля 2012 05:57
· Личное сообщение · #9

Lumpy пишет:
Это точно.Я например нифига так и не понял,как библиотеки грузятся в память.Почему у них ImageBase всегда разная,и как разница в какую область памяти грузить модуль.

Купите себе книжку расскраску

-----
Чтобы правильно задать вопрос, нужно знать большую часть ответа. Р.Шекли.





Ранг: 622.6 (!), 521thx
Активность: 0.330.89
Статус: Участник
_Вечный_Студент_

Создано: 20 июля 2012 06:11 · Поправил: plutos
· Личное сообщение · #10

Lumpy пишет:
Я нифига так и не понял,как библиотеки грузятся в память.Почему у них ImageBase всегда разная,и как разница в какую область памяти грузить модуль

"What Goes On Inside Windows 2000: Solving the Mysteries of the Loader" :
http://msdn.microsoft.com/en-us/magazine/cc301727.aspx

Статья хоть и старая, но объяснено все до тонкостей.

-----
Give me a HANDLE and I will move the Earth.





Ранг: 527.7 (!), 381thx
Активность: 0.160.09
Статус: Участник
Победитель турнира 2010

Создано: 26 июля 2012 11:38
· Личное сообщение · #11

Lumpy пишет:
Это точно.Я например нифига так и не понял,как библиотеки грузятся в память.


Для еще большего просветления можно глянуть на -- старт ДЛЛ из памяти --

-----
127.0.0.1, sweet 127.0.0.1


| Сообщение посчитали полезным: sivorog


Ранг: 57.7 (постоянный), 49thx
Активность: 0.070
Статус: Участник

Создано: 17 августа 2012 01:16 · Поправил: inffo
· Личное сообщение · #12

И еще информации подкину:

PE File Format Graphs
http://blog.dkbza.org/

--> СкАчАтЬ <--

| Сообщение посчитали полезным: plutos, res, hlmadip, upss


Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 31 августа 2012 11:55
· Личное сообщение · #13

http://code.google.com/p/corkami/wiki/HackInParis2012
про ту же доку только чем то разбавили рассказ



Ранг: 2.2 (гость)
Активность: 0=0
Статус: Участник

Создано: 14 марта 2013 22:07
· Личное сообщение · #14

А кто-нибудь нибудь может мне помочь разобраться что конкретно лежит в секции .text кроме кода, Import Adress Table, Debug Directory, Load Config Table и Import Directory у данного файла??

4173_14.03.2013_EXELAB.rU.tgz - notepad.exe




Ранг: 136.0 (ветеран), 360thx
Активность: 0.270.14
Статус: Участник
Qt Developer

Создано: 14 марта 2013 22:13
· Личное сообщение · #15

cooller01 пишет:
А кто-нибудь нибудь может мне помочь разобраться что конкретно лежит в секции .text кроме кода, Import Adress Table, Debug Directory, Load Config Table и Import Directory у данного файла??

4173_14.03.2013_EXELAB.rU.tgz - notepad.exe


А что Вас смущает в секции .text ?

-----
http://ntinfo.biz




Ранг: 2.2 (гость)
Активность: 0=0
Статус: Участник

Создано: 14 марта 2013 22:34
· Личное сообщение · #16

hors пишет:
А что Вас смущает в секции .text ?

по смещению 100136F до 10018A4 и 10018ED по 1001929 лежат какие то данные, не могу найти описатель.




Ранг: 136.0 (ветеран), 360thx
Активность: 0.270.14
Статус: Участник
Qt Developer

Создано: 14 марта 2013 22:57
· Личное сообщение · #17

cooller01 пишет:
по смещению 100136F до 10018A4 и 10018ED по 1001929 лежат какие то данные, не могу найти описатель.


Данные, как данные. Только почему-то засунутые компилятором в секцию кода. А вообще notepad.exe всегда отличался от других файлов со своим баунд импортом в заголовке, не знаю уж почему.

-----
http://ntinfo.biz





Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

Создано: 14 марта 2013 23:06
· Личное сообщение · #18

Весьма убедительная просьба, не надо один и тот же вопрос раскидывать по нескольким топикам сразу.


 eXeL@B —› Основной форум —› Новичкам: процесс загрузки PE наглядно и доступно
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати