ΠΡΠ±Π»ΠΈΠΊΡΠ²Π°Π½Π° Π΅ Π²Π΅ΡΡΠΈΡΡΠ° Π½Π° Π½Π°Π±ΠΎΡΠ° ΠΎΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈ ΠΏΠΎΠΌΠΎΡΠ½ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ GNU Binutils 2.39, ΠΊΠΎΠΉΡΠΎ Π²ΠΊΠ»ΡΡΠ²Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ ΠΊΠ°ΡΠΎ GNU linker, GNU Π°ΡΠ΅ΠΌΠ±Π»Π΅Ρ, nm, objdump, strings, strip.
Π Π½ΠΎΠ²Π°ΡΠ° Π²Π΅ΡΡΠΈΡ:
- Π€Π°ΠΉΠ»ΠΎΠ²ΠΈΡΡ Π»ΠΈΠ½ΠΊΠ΅Ρ ELF (ELF Π»ΠΈΠ½ΠΊΠ΅Ρ) Π²ΡΠ²Π΅ΠΆΠ΄Π° ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅, ΠΊΠΎΠ³Π°ΡΠΎ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ΄ Π² ΡΡΠ΅ΠΊΠ° Π΅ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½Π°, ΠΊΠ°ΠΊΡΠΎ ΠΈ Π°ΠΊΠΎ ΠΈΠΌΠ° ΡΠ΅Π³ΠΌΠ΅Π½ΡΠΈ ΠΎΡ ΠΏΠ°ΠΌΠ΅ΡΡΠ° Π² Π΄Π²ΠΎΠΈΡΠ½ΠΈΡ ΡΠ°ΠΉΠ», ΠΊΠΎΠΈΡΠΎ ΠΈΠΌΠ°Ρ Π΅Π΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π·Π°Π΄Π°Π΄Π΅Π½ΠΈ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ Π·Π° ΡΠ΅ΡΠ΅Π½Π΅, Π·Π°ΠΏΠΈΡ ΠΈ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅.
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΎΠΏΡΠΈΡ β--package-metadataβ ΠΊΡΠΌ ELF Π»ΠΈΠ½ΠΊΠ΅Ρ Π·Π° Π²Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΠΈ Π²ΡΠ² ΡΠΎΡΠΌΠ°Ρ JSON, ΡΡΠΎΡΠ²Π΅ΡΡΡΠ²Π°Ρ Π½Π° ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡΡΠ° Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠ½ΠΈΡΠ΅ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΠΈ Π²ΡΠ² ΡΠ°ΠΉΠ».
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° Π΅ΡΠΈΠΊΠ΅ΡΠ° TYPE= Π² ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ΡΠΎ Π½Π° ΡΠ΅ΠΊΡΠΈΡΡΠ° ΠΊΡΠΌ ΡΠΊΡΠΈΠΏΡΠΎΠ²Π΅ Π·Π° ΡΠ²ΡΡΠ·Π²Π°Π½Π΅ Π·Π° Π΄Π° Π·Π°Π΄Π°Π΄Π΅ΡΠ΅ ΡΠΈΠΏΠ° Π½Π° ΡΠ΅ΠΊΡΠΈΡΡΠ°.
- ΠΠΎΠΌΠΎΡΠ½Π°ΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ° objdump Π²Π΅ΡΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΠΏΠΎΠ΄ΡΠ΅ΡΡΠ°Π²Π°Π½Π΅ Π½Π° ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Π² ΡΠ°Π·Π³Π»ΠΎΠ±Π΅Π½ ΠΈΠ·Ρ ΠΎΠ΄ Π·Π° AVR, RiscV, s390, x86 ΠΈ x86_64 Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠΈ.
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΎΠΏΡΠΈΡ β--no-weakβ (β-Wβ) ΠΊΡΠΌ ΠΏΠΎΠΌΠΎΡΠ½Π°ΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ° nm Π·Π° ΠΈΠ³Π½ΠΎΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ»Π°Π±ΠΈ Π·Π½Π°ΡΠΈ.
- ΠΠΏΡΠΈΡΡΠ° "-wE" Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° ΠΊΡΠΌ ΠΏΠΎΠΌΠΎΡΠ½ΠΈΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ readelf ΠΈ objdump, Π·Π° Π΄Π° Π·Π°Π±ΡΠ°Π½ΠΈ Π΄ΠΎΡΡΡΠΏΠ° Π΄ΠΎ ΡΡΡΠ²ΡΡΠΈ Π·Π° ΠΎΡΡΡΡΠ°Π½ΡΠ²Π°Π½Π΅ Π½Π° Π³ΡΠ΅ΡΠΊΠΈ ΠΏΡΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° Π²ΡΡΠ·ΠΊΠΈ.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru