Анализ ELF макета памяти - PullRequest
0 голосов
/ 02 июня 2018

Я анализировал исполняемый файл ELF с помощью readelf и получал следующую программу и заголовок.

|Type         | Offset   | VirtAddr   | PhysAddr   | FileSiz | MemSiz  | Flg | Align | size | start addr | end addr |
|PHDR         | 0x000034 | 0x08048034 | 0x08048034 | 0x00120 | 0x00120 | R E | 0x4 | 288 | 52 | 340 |
|INTERP       | 0x000154 | 0x08048154 | 0x08048154 | 0x00013 | 0x00013 | R   | 0x1 | 19 | 340 | 359 |
|LOAD         | 0x000000 | 0x08048000 | 0x08048000 | 0x00600 | 0x00600 | RE  | 0x1000 | 1536 | 0 | 1536 |
|LOAD         | 0x000f0c | 0x08049f0c | 0x08049f0c | 0x0010c | 0x00114 | RW  | 0x1000 | 276 | 3852 | 4128 |
|DYNAMIC      | 0x000f14 | 0x08049f14 | 0x08049f14 | 0x000e8 | 0x000e8 | RW  | 0x4 | 232 | 3860 | 4092 |
|NOTE         | 0x000168 | 0x08048168 | 0x08048168 | 0x00044 | 0x00044 | R   | 0x4 | 68 | 360 | 428 |
|GNU_EH_FRAME | 0x0004c4 | 0x080484c4 | 0x080484c4 | 0x0003c | 0x0003c | R   | 0x4 | 60 | 1220 | 1280 |
|GNU_STACK    | 0x000000 | 0x00000000 | 0x00000000 | 0x00000 | 0x00000 | RW  | 0x10 |  |  |  |
|GNU_RELRO    | 0x000f0c | 0x08049f0c | 0x08049f0c | 0x000f4 | 0x000f4 | R   | 0x1 | 244 | 3852 | 4096 |

1).Почему GNU_STACK в таблице заголовков программ не имеет размера или начального адреса?

2).При компоновке, почему в позиции памяти от 1536 до 3852 (2316 байт) нет информации?Для чего используется это пространство?

3).Какие изменения в этом формате необходимы для добавления дополнительного текстового раздела?

...