- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠ΅ΡΠ²ΠΈΡΠ°
debuginfod , ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡΠ΅Π³ΠΎ ΡΠΎΠ±ΠΎΠΉ HTTP-ΡΠ΅ΡΠ²Π΅Ρ Π΄Π»Ρ ΠΎΡΠ΄Π°ΡΠΈ ΠΎΡΠ»Π°Π΄ΠΎΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ELF/DWARF ΠΈ ΠΈΡΡ ΠΎΠ΄Π½ΡΡ ΡΠ΅ΠΊΡΡΠΎΠ². ΠΡΠΈ ΡΠ±ΠΎΡΠΊΠ΅ Binutils Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ debuginfod, ΡΡΠΈΠ»ΠΈΡΡ readelf ΠΈ objdump ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠ΄ΡΠΎΠ΅Π΄ΠΈΠ½ΡΡΡΡΡ ΠΊ ΡΠ΅ΡΠ²Π΅ΡΠ°ΠΌ debuginfod Π΄Π»Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ Π½Π΅Π΄ΠΎΡΡΠ°ΡΡΠ΅ΠΉ ΠΎΡΠ»Π°Π΄ΠΎΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎΠ± ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΠΌΡΡ ΡΠ°ΠΉΠ»Π°Ρ . ΠΠ»ΡΡΠ±ΠΎΡΠΊΠΈ binutils Ρ debuginfod Π² ΡΠΊΡΠΈΠΏΡΠ΅ configure ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΠΊΠ°Π·Π°ΡΡ ΠΎΠΏΡΠΈΡ «—with-debuginfod» ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅ libdebuginfod, ΠΏΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΠΎΠΉ Π² Π½Π°Π±ΠΎΡΠ΅elfutils ; - Π Π΄ΠΈΠ·Π°ΡΡΠ΅ΠΌΠ±Π»Π΅Ρ (objdump —disassemble) Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΎΠΏΡΠΈΡ «—visualize-jumps» Π΄Π»Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ascii-Π³ΡΠ°ΡΠΈΠΊΠΈ Ρ Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ ΠΏΠ΅ΡΠ΅Ρ
ΠΎΠ΄ΠΎΠ², Π½Π°Π³Π»ΡΠ΄Π½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΠ΅ΠΉ ΡΠ²ΡΠ·ΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ΅Π»Π΅Π²ΠΎΠΉ ΡΠΎΡΠΊΠΎΠΉ ΠΈ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠΌ ΠΏΠ΅ΡΠ΅Ρ
ΠΎΠ΄Π° Π² ΠΏΠΎΡΠΎΠΊΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄. ΠΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π΄Π»Ρ Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡ x86, x86_64 ΠΈ ARM;
c6: | | \———-> be 00 00 00 00 mov $0x0,%esi
cb: | | /—-> 48 8b 3d 00 00 00 00 mov 0x0(%rip),%rdi # d2
d2: | | | 31 c0 xor %eax,%eax
d4: | | | /— e8 00 00 00 00 callq d9
d9: | | | \-> bf 02 00 00 00 mov $0x2,%edi
de: | +————|—— e8 00 00 00 00 callq e3
e3: | \————|—-> 48 89 da mov %rbx,%rdx
e6: | | be 00 00 00 00 mov $0x0,%esi
eb: | \—— eb de jmp cb
ed: \——————-> 48 8b 16 mov (%rsi),%rdx - Π Π°ΡΡΠ΅ΠΌΠ±Π»Π΅Ρ ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΡΠΈΠΊ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ELF-ΡΠ°ΠΉΠ»ΠΎΠ² Π΄Π»Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ Z80 (ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΡ Zilog Z180 ΠΈ Zilog eZ80 Π² ΡΠ΅ΠΆΠΈΠΌΠ°Ρ ADL ΠΈ Z80);
- Π ΡΡΠΈΠ»ΠΈΡΡ «ar» Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΎΠΏΡΠΈΡ «—output» Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° Π΄Π»Ρ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΡ ΠΈΠ· Π°ΡΡ ΠΈΠ²Π°;
- Π ΡΡΠΈΠ»ΠΈΡΡ «objcopy» ΠΈ «strip» Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΎΠΏΡΠΈΡ «—keep-section» Π΄Π»Ρ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ΅Π½ΠΈΡ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ ΡΠ΅ΠΊΡΠΈΠΈ.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru