WWW2Exec - .dtors & .fini_array

рд╣реИрдХрдЯреНрд░рд┐рдХреНрд╕ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░реЗрдВ

.dtors

рдЖрдЬрдХрд▓ рдХрд┐рд╕реА рднреА рдмрд╛рдЗрдирд░реА рдореЗрдВ .dtors рд╕реЗрдХреНрд╢рди рдкрд╛рдирд╛ рдмрд╣реБрдд рдЕрдЬреАрдм рд╣реИ!

рдбрд┐рд╕реНрдЯреНрд░рдХреНрдЯрд░реНрд╕ рд╡реЗ рдлрд╝рдВрдХреНрд╢рди рд╣реИрдВ рдЬреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЪрд▓рд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ (рдЬрдм main рдлрд╝рдВрдХреНрд╢рди рд╡рд╛рдкрд╕ рд▓реМрдЯрддрд╛ рд╣реИ)ред рдЗрди рдлрд╝рдВрдХреНрд╢рдиреЛрдВ рдХреЗ рдкрддреЗ рдмрд╛рдЗрдирд░реА рдХреЗ .dtors рд╕реЗрдХреНрд╢рди рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реЛрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕рд▓рд┐рдП, рдпрджрд┐ рдЖрдк рд╢реЗрд▓рдХреЛрдб рдореЗрдВ рдкрддреЗ рдХреЛ рд▓рд┐рдЦрдиреЗ рдореЗрдВ рд╕рдлрд▓ рд╣реЛрддреЗ рд╣реИрдВ __DTOR_END__ , рддреЛ рд╡рд╣ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЪрд▓рд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдЗрд╕ рд╕реЗрдХреНрд╢рди рдХрд╛ рдкрддрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ:

objdump -s -j .dtors /exec
rabin -s /exec | grep тАЬ__DTORтАЭ

рд╕рд╛рдорд╛рдиреНрдпрдд: рдЖрдкрдХреЛ DTOR рдорд╛рд░реНрдХрд░ рдХреЗ рдмреАрдЪ рдорд╛рди ffffffff рдФрд░ 00000000 рдХреЗ рдмреАрдЪ рдкрд╛рдП рдЬрд╛рдПрдВрдЧреЗред рддреЛ рдЕрдЧрд░ рдЖрдк рд╕рд┐рд░реНрдл рдЙрди рдорд╛рдиреЛрдВ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╡рд╣рд╛рдБ рдХреЛрдИ рдлрд╝рдВрдХреНрд╢рди рд░рдЬрд┐рд╕реНрдЯрд░ рдирд╣реАрдВ рд╣реИред рдЗрд╕рд▓рд┐рдП 00000000 рдХреЛ рд╢реИрд▓рдХреЛрдб рдХреЗ рдкрддреЗ рд╕реЗ рдУрд╡рд░рд░рд╛рдЗрдЯ рдХрд░реЗрдВ рддрд╛рдХрд┐ рдЗрд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред

рдмрд┐рд▓реНрдХреБрд▓, рдкрд╣рд▓реЗ рдЖрдкрдХреЛ рд╢реИрд▓рдХреЛрдб рдХреЛ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдерд╛рди рдЦреЛрдЬрдирд╛ рд╣реЛрдЧрд╛ рддрд╛рдХрд┐ рдЖрдк рдмрд╛рдж рдореЗрдВ рдЗрд╕реЗ рдмреБрд▓рд╛ рд╕рдХреЗрдВред

.fini_array

рдореВрд▓ рд░реВрдк рд╕реЗ рдпрд╣ рдПрдХ рд╕рдВрд░рдЪрдирд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдлрд╝рдВрдХреНрд╢рди рд╣реЛрддреЗ рд╣реИрдВ рдЬреЛ рдХрд╛рд░реНрдпрдХреНрд░рдо рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдмреБрд▓рд╛рдП рдЬрд╛рдПрдВрдЧреЗ, рдЬреИрд╕реЗ .dtorsред рдпрд╣ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ рдЕрдЧрд░ рдЖрдк рдЕрдкрдиреЗ рд╢реИрд▓рдХреЛрдб рдХреЛ рдмрд╕ рдПрдХ рдкрддреЗ рдкрд░ рдЬрд╛рдХрд░ рдмреБрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╛ рдЙрди рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЬрд╣рд╛рдБ рдЖрдкрдХреЛ main рдкрд░ рд╡рд╛рдкрд╕ рдЬрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рддрд╛рдХрд┐ рдЖрдк рд╕реБрд░рдХреНрд╖рд╛ рджреЛрд╖ рдХрд╛ рджреВрд╕рд░реА рдмрд╛рд░ рд╢рд╛рд░рдг рдХрд░ рд╕рдХреЗрдВред

objdump -s -j .fini_array ./greeting

./greeting:     file format elf32-i386

Contents of section .fini_array:
8049934 a0850408

#Put your address in 0x8049934

рд╢рд╛рд╢реНрд╡рдд рд▓реВрдк

.fini_array рдХрд╛ рджреБрд░реБрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╢рд╛рд╢реНрд╡рдд рд▓реВрдк рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк рдпрд╣рд╛рдБ рдХреНрдпрд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдпрд╣ рдЬрд╛рдВрдЪ рд╕рдХрддреЗ рд╣реИрдВ: рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХрдо рд╕реЗ рдХрдо 2 рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдБ .fini_array рдореЗрдВ рд╣реИрдВ, рддреЛ рдЖрдк:

  • рдЕрдкрдиреА рдкрд╣рд▓реА рд▓реЗрдЦрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рд╡рд┐рдХрд▓реНрдкреА рд▓реЗрдЦрди рдХрд╛рд░реНрдп рдХреЛ рдлрд┐рд░ рд╕реЗ рдмреБрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП

  • рдлрд┐рд░, __libc_csu_fini рджреНрд╡рд╛рд░рд╛ рд╕рдВрдЧреНрд░рд╣рд┐рдд рд╕реНрдЯреИрдХ рдореЗрдВ рд╡рд╛рдкрд╕реА рдкрддрд╛ рдХрд░реЗрдВ (рдЬреЛ рд╕рднреА .fini_array рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдмреБрд▓рд╛рдиреЗ рд╡рд╛рд▓рд╛ рд╣реИ) рдФрд░ рд╡рд╣рд╛рдБ __libc_csu_fini рдХрд╛ рдкрддрд╛ рдбрд╛рд▓реЗрдВ

  • рдЗрд╕рд╕реЗ __libc_csu_fini рдЦреБрдж рдХреЛ рдлрд┐рд░ рд╕реЗ рдмреБрд▓рд╛рдПрдЧрд╛ рдФрд░ .fini_array рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдлрд┐рд░ рд╕реЗ рдмреБрд▓рд╛рдПрдЧрд╛ рдЬреЛ рд╡рд┐рдХрд▓реНрдкреА WWW рдлрд╝рдВрдХреНрд╢рди рдХреЛ 2 рдмрд╛рд░ рдмреБрд▓рд╛рдПрдЧрд╛: рдПрдХ рдмрд╛рд░ рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд▓реНрдкреА рд▓реЗрдЦрди рдФрд░ рдПрдХ рдФрд░ рдмрд╛рд░ __libc_csu_fini рдХреЗ рд╡рд╛рдкрд╕реА рдкрддреЗ рдХреЛ рдлрд┐рд░ рд╕реЗ рдУрд╡рд░рд░рд╛рдЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдЯреИрдХ рдкрд░ рдЕрдкрдиреЗ рдЖрдк рдХреЛ рдлрд┐рд░ рд╕реЗ рдмреБрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП.

рдкреВрд░реНрдг RELRO** рдХреЗ рд╕рд╛рде рдзреНрдпрд╛рди рджреЗрдВ,** рдЦрдВрдб .fini_array рдХреЛ рдХреЗрд╡рд▓ рдкрдврд╝рдиреЗ рдпреЛрдЧреНрдп рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ, [рдЖрдВрд╢рд┐рдХ RELRO] рдХреЗ рд╕рд╛рде рдЦрдВрдб .fini_array рдХреЛ рдХреЗрд╡рд▓ рдкрдврд╝рдиреЗ рдпреЛрдЧреНрдп рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

HackTricks рдХрд╛ рд╕рдорд░реНрдерди рдХрд░реЗрдВ

Last updated