A teszt 32 bites Linux rendszeren van.
Ezt a parancsot használom a .text
.rodata
és .data
szakasz:
objdump -s -j .text elf_binary objdump -s -j .rodata elf_binary objdump -s -j .data elf_binary
De alapvetően amikor megpróbáltam ezt használni az .bss
szakasz tartalmának megszerzéséhez, mindig az alább látható hibát kapom:
objdump -s -j .bss elf_binary objdump: section ".bss" mentioned in a -j option, but not found in any input file
Alapvetően hogyan tudom megszerezni az .bss
szakasz tartalmát az ELF bináris fájlból?
Válasz
A .bss
nem tartalmaz tartalmat. Ez egyszerűen egy tipp a betöltőnek, hogy előre foglaljon helyet a program indításakor. A végrehajtáskor mind 0 lesz, és addig nem tárol semmilyen hasznos információt, amíg a program nem ír neki. Ezt követően egy hibakeresővel használhatja a memória kiürítését és tartalmának felfedezését.
További információkért ellenőrizze a Wikipedia oldalt .
Válasz
A .bss
szimbólum által indított blokk ( Inicializálatlan adatszegmensnek is nevezik – bss
egy régi szerelési utasítás egy ősi IBM chipen) szakasznak állítólag tartalmaznia kell: global variables
és static variables
nem inicializálva vagy inicializálva 0 vagy NULL értékre. A .bss
szakasz általában nem létezik, amíg a program nem kezdi el a végrehajtást, ezért “nem lehet statikusan lekérni a tartalmát. Elég fontos megjegyezni, hogy ez a szakasz segít csökkenteni a programot” Az & méret gyorsabbá teszi a betöltést.