readelf -l /bin/bash
이 나에게주는 MemSiz FileSiz 대이 :ELF 프로그램 헤더 :
Program Headers: Type Offset VirtAddr PhysAddr FileSiz MemSiz Flags Align PHDR 0x0000000000000040 0x0000000000400040 0x0000000000400040 0x00000000000001f8 0x00000000000001f8 R E 8 INTERP 0x0000000000000238 0x0000000000400238 0x0000000000400238 0x000000000000001a 0x000000000000001a R 1 [Requesting program interpreter: /lib/ld-linux-x86-64.so.2] LOAD 0x0000000000000000 0x0000000000400000 0x0000000000400000 0x00000000000aeef4 0x00000000000aeef4 R E 200000 LOAD 0x00000000000afde0 0x00000000006afde0 0x00000000006afde0 0x0000000000003cec 0x000000000000d3c8 RW 200000 DYNAMIC 0x00000000000afdf8 0x00000000006afdf8 0x00000000006afdf8 0x0000000000000200 0x0000000000000200 RW 8 NOTE 0x0000000000000254 0x0000000000400254 0x0000000000400254 0x0000000000000044 0x0000000000000044 R 4 GNU_EH_FRAME 0x000000000009dbc0 0x000000000049dbc0 0x000000000049dbc0 0x0000000000002bb4 0x0000000000002bb4 R 4 GNU_STACK 0x0000000000000000 0x0000000000000000 0x0000000000000000 0x0000000000000000 0x0000000000000000 RW 8 GNU_RELRO 0x00000000000afde0 0x00000000006afde0 0x00000000006afde0 0x0000000000000220 0x0000000000000220 R 1
이 왜 어떤 LOAD
세그먼트에 대한 FileSiz
동일하지 MemSiz
입니까? MemSiz
에 포함되어 있지만 FileSiz
이 아닌 메모리 영역은 어떻게 처리해야합니까?
세그먼트가 나타내는 내용에 따라 다릅니다. –
다음 섹션이 포함되어 있습니다 : '.init_array .fini_array .jcr .dynamic .got .got.plt .data .bss' – gvl
'.bss' 섹션은 항상 로더에 의해 제로 아웃됩니다. 따라서 파일에 0 톤을 가져 오는 데는 아무런 문제가 없습니다. –