рдкреЛрд░реНрдЯреЗрдмрд▓ рдПрдХреНрдЭрд┐рдХреНрдпреБрдЯреЗрдмрд▓ рдлрд╛рдЗрд▓реНрд╕рд╕рд╛рдареА рд╡рд┐рдХрд╕рд┐рдд рдХреЗрд▓реЗрд▓реНрдпрд╛ рд╕реНрдЯрдБрдбрд░реНрдб рд╕реА рд▓рд╛рдпрдмреНрд░рд░реА рдХреЙрд╕реНрдореЛрдкреЙрд▓рд┐рдЯрди 2.0 рдЪреЗ рдкреНрд░рдХрд╛рд╢рди

рдХреЙрд╕реНрдореЛрдкреЙрд▓рд┐рдЯрди 2.0 рдкреНрд░рдХрд▓реНрдкрд╛рдЪреЗ рдкреНрд░рдХрд╛рд╢рди рдкреНрд░рдХрд╛рд╢рд┐рдд рдЭрд╛рд▓реЗ рдЖрд╣реЗ, рдорд╛рдирдХ C рд▓рд╛рдпрдмреНрд░рд░реА рдЖрдгрд┐ рдПрдХ рд╕рд╛рд░реНрд╡рддреНрд░рд┐рдХ рдПрдХреНрдЭрд┐рдХреНрдпреБрдЯреЗрдмрд▓ рдлрд╛рдИрд▓ рдлреЙрд░рдореЕрдЯ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдд рдЖрд╣реЗ рдЬреНрдпрд╛рдЪрд╛ рд╡рд╛рдкрд░ рджреБрднрд╛рд╖реА рдЖрдгрд┐ рдЖрднрд╛рд╕реА рдорд╢реАрдирдЪрд╛ рд╡рд╛рдкрд░ рди рдХрд░рддрд╛ рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдорд╕рд╛рдареА рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╡рд┐рддрд░рд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдХреЗрд▓рд╛ рдЬрд╛рдК рд╢рдХрддреЛ. GCC рдЖрдгрд┐ Clang рдордзреНрдпреЗ рд╕рдВрдХрд▓рд┐рдд рдХрд░реВрди рдкреНрд░рд╛рдкреНрдд рдЭрд╛рд▓реЗрд▓реЗ рдкрд░рд┐рдгрд╛рдо рдПрдХрд╛ рд╕реНрдерд┐рд░рдкрдгреЗ рд▓рд┐рдВрдХ рдХреЗрд▓реЗрд▓реНрдпрд╛ рдпреБрдирд┐рд╡реНрд╣рд░реНрд╕рд▓ рдПрдХреНрдЭрд┐рдХреНрдпреБрдЯреЗрдмрд▓ рдлрд╛рдЗрд▓рдордзреНрдпреЗ рд╕рдВрдХрд▓рд┐рдд рдХреЗрд▓реЗ рдЬрд╛рддрд╛рдд рдЬреЗ рдХреЛрдгрддреНрдпрд╛рд╣реА Linux рд╡рд┐рддрд░рдг, macOS, Windows, FreeBSD, OpenBSD, NetBSD, рдЖрдгрд┐ рдЕрдЧрджреА BIOS рд╡рд░реВрди рдХреЙрд▓ рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддрд╛рдд. рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛрдб ISC рдкрд░рд╡рд╛рдиреНрдпрд╛рдЕрдВрддрд░реНрдЧрдд рд╡рд┐рддрд░рд┐рдд рдХреЗрд▓рд╛ рдЬрд╛рддреЛ (MIT/BSD рдЪреА рд╕рд░рд▓реАрдХреГрдд рдЖрд╡реГрддреНрддреА).

рдпреБрдирд┐рд╡реНрд╣рд░реНрд╕рд▓ рдПрдХреНрдЭрд┐рдХреНрдпреБрдЯреЗрдмрд▓ рдлрд╛рдЗрд▓реНрд╕ рд╡реНрдпреБрддреНрдкрдиреНрди рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдХрдВрдЯреЗрдирд░ рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдореНрд╕ (PE, ELF, MACHO, OPENBSD) рд╕рд╛рдареА рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕реЗрдЧрдореЗрдВрдЯ рдЖрдгрд┐ рд╢реАрд░реНрд╖рд▓реЗрдЦ рдПрдХрддреНрд░ рдХрд░реВрди, Unix, Windows рдЖрдгрд┐ macOS рдордзреНрдпреЗ рд╡рд╛рдкрд░рд▓реНрдпрд╛ рдЬрд╛рдгрд╛рд░реНтАНрдпрд╛ рдЕрдиреЗрдХ рднрд┐рдиреНрди рд╕реНрд╡рд░реВрдкрд╛рдВрдЪреЗ рд╕рдВрдпреЛрдЬрди рдпрд╛рд╡рд░ рдЖрдзрд╛рд░рд┐рдд рдЖрд╣реЗ. Windows рдЖрдгрд┐ Unix рд╕рд┐рд╕реНрдЯреАрдорд╡рд░ рдПрдХрдЪ рдПрдХреНрдЭрд┐рдХреНрдпреБрдЯреЗрдмрд▓ рдлрд╛рдЗрд▓ рдЪрд╛рд▓рддреЗ рдпрд╛рдЪреА рдЦрд╛рддреНрд░реА рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдереЙрдореНрдкрд╕рди рд╢реЗрд▓ "#!" рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдорд╛рд░реНрдХрд░ рд╡рд╛рдкрд░рдд рдирд╕рд▓реНрдпрд╛рдЪрд╛ рдлрд╛рдпрджрд╛ рдШреЗрдКрди Windows PE рдлрд╛рдЗрд▓реНрд╕ рд╢реЗрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕ рдореНрд╣рдгреВрди рдПрдиреНрдХреЛрдб рдХрд░рдгреНрдпрд╛рдЪреА рдпреБрдХреНрддреА рдЖрд╣реЗ. рдкреНрд░реЛрдЧреНрд░рд╛рдо рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЬреНрдпрд╛рдордзреНрдпреЗ рдЕрдиреЗрдХ рдлрд╛рдИрд▓реНрд╕ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдЖрд╣реЗрдд (рд╕рд░реНрд╡ рд╕рдВрд╕рд╛рдзрдиреЗ рдПрдХрд╛ рдлрд╛рдИрд▓рдордзреНрдпреЗ рдЬреЛрдбрдгреЗ), рддреЗ рд╡рд┐рд╢реЗрд╖рддрдГ рдбрд┐рдЭрд╛рдЗрди рдХреЗрд▓реЗрд▓реНрдпрд╛ рдЭрд┐рдк рдЖрд░реНрдХрд╛рдЗрд╡реНрд╣рдЪреНрдпрд╛ рд╕реНрд╡рд░реВрдкрд╛рдд рдПрдХреНрдЭрд┐рдХреНрдпреБрдЯреЗрдмрд▓ рдлрд╛рдЗрд▓рдЪреНрдпрд╛ рдирд┐рд░реНрдорд┐рддреАрд╕ рд╕рдорд░реНрдерди рджреЗрддреЗ. рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рд╕реНрд╡рд░реВрдкрд╛рдЪреА рдпреЛрдЬрдирд╛ (рдЙрджрд╛рд╣рд░рдг hello.com рдЕрдиреБрдкреНрд░рдпреЛрдЧ):

MZqFpD='BIOS рдмреВрдЯ рд╕реЗрдХреНрдЯрд░' exec 7 $(command -v $0) printf '\177ELF...LINKER-ENCODED-FREEBSD-HEADER' >&7 exec "$0" "$@" exec qemu-x86_64 "$0" "$ @" 1 рд░рд┐рдЕрд▓ рдореЛрдбрдордзреВрди рдмрд╛рд╣реЗрд░ рдкрдбрд╛тАж рдПрд▓реНрдл рд╕реЗрдЧрдореЗрдВрдЯреНрд╕тАж рдУрдкрдирдмреАрдПрд╕рдбреА рдиреЛрдЯтАж рдореЕрдХреЛ рд╣реЗрдбрд░тАж рдХреЛрдб рдЖрдгрд┐ рдбреЗрдЯрд╛тАж рдЭрд┐рдк рдбрд┐рд░реЗрдХреНрдЯрд░реАтАж

рдлрд╛рдЗрд▓рдЪреНрдпрд╛ рд╕реБрд░реБрд╡рд╛рддреАрд▓рд╛, "MZqFpD" рд▓реЗрдмрд▓ рд╕реВрдЪрд┐рдд рдХреЗрд▓реЗ рдЖрд╣реЗ, рдЬреЗ Windows PE рдлреЙрд░рдореЕрдЯ рд╣реЗрдбрд░ рдореНрд╣рдгреВрди рд╕рдордЬрд▓реЗ рдЬрд╛рддреЗ. рд╣рд╛ рдХреНрд░рдо тАЬpop %r10; jno 0x4a ; jo 0x4a", рдЖрдгрд┐ "jg 177x0" рдпрд╛ рд╕реВрдЪрдиреЗрд▓рд╛ "\47ELF" рдУрд│, рдЬреНрдпрд╛рдЪрд╛ рд╡рд╛рдкрд░ рдПрдВрдЯреНрд░реА рдкреЙрдЗрдВрдЯрдХрдбреЗ рдЕрдЧреНрд░реЗрд╖рд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдХреЗрд▓рд╛ рдЬрд╛рддреЛ. рдпреБрдирд┐рдХреНрд╕ рд╕рд┐рд╕реНрдЯрдо рд╢реЗрд▓ рдХреЛрдб рдЪрд╛рд▓рд╡рддрд╛рдд рдЬреЛ exec рдХрдорд╛рдВрдб рд╡рд╛рдкрд░рддреЛ, рдПрдХреНрдЭрд┐рдХреНрдпреБрдЯреЗрдмрд▓ рдХреЛрдб рдЕрдЬреНрдЮрд╛рдд рдкрд╛рдИрдкрджреНрд╡рд╛рд░реЗ рдкрд╛рд╕ рдХрд░рддреЛ. рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдкрджреНрдзрддреАрдЪреА рдорд░реНрдпрд╛рджрд╛ рдореНрд╣рдгрдЬреЗ рдереЙрдореНрдкрд╕рди рд╢реЗрд▓ рдХрдВрдкреЕрдЯрд┐рдмрд┐рд▓рд┐рдЯреА рдореЛрдбрд▓рд╛ рд╕рдкреЛрд░реНрдЯ рдХрд░рдгрд╛рд░реЗ рд╢реЗрд▓ рд╡рд╛рдкрд░реВрди рдпреБрдирд┐рдХреНрд╕ рд╕рд╛рд░рдЦреА рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯреАрдо рдЪрд╛рд▓рд╡рдгреНрдпрд╛рдЪреА рдХреНрд╖рдорддрд╛.

qemu-x86_64 рдХреЙрд▓ рдЕрддрд┐рд░рд┐рдХреНрдд рдкреЛрд░реНрдЯреЗрдмрд┐рд▓рд┐рдЯреА рдкреНрд░рджрд╛рди рдХрд░рддреЗ рдЖрдгрд┐ x86_64 рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░рд╕рд╛рдареА рд╕рдВрдХрд▓рд┐рдд рдХреЗрд▓реЗрд▓реНрдпрд╛ рдХреЛрдбрд▓рд╛ x86 рдирд╕рд▓реЗрд▓реНрдпрд╛ рдкреНрд▓реЕрдЯрдлреЙрд░реНрдорд╡рд░ рдЪрд╛рд▓рдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрддреЗ, рдЬрд╕реЗ рдХреА рд░рд╛рд╕реНрдкрдмреЗрд░реА Pi рдмреЛрд░реНрдб рдЖрдгрд┐ ARM рдкреНрд░реЛрд╕реЗрд╕рд░рд╕рд╣ рд╕реБрд╕рдЬреНрдЬ Apple рдЙрдкрдХрд░рдгреЗ. рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯреАрдо (рдмреЗрдЕрд░ рдореЗрдЯрд▓) рд╢рд┐рд╡рд╛рдп рдЪрд╛рд▓рдгрд╛рд░реЗ рд╕реНрд╡рдпрдВрдкреВрд░реНрдг рдЕрдиреБрдкреНрд░рдпреЛрдЧ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рджреЗрдЦреАрд▓ рдкреНрд░рдХрд▓реНрдкрд╛рдЪрд╛ рд╡рд╛рдкрд░ рдХреЗрд▓рд╛ рдЬрд╛рдК рд╢рдХрддреЛ. рдЕрд╢рд╛ рдНрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕рдордзреНрдпреЗ, рдПрдХ рдмреВрдЯрд▓реЛрдбрд░ рдПрдХреНрдЭрд┐рдХреНрдпреБрдЯреЗрдмрд▓ рдлрд╛рдЗрд▓рд╢реА рд╕рдВрд▓рдЧреНрди рдХреЗрд▓рд╛ рдЬрд╛рддреЛ рдЖрдгрд┐ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдмреВрдЯ рдХрд░рдгреНрдпрд╛рдпреЛрдЧреНрдп рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдореНрд╣рдгреВрди рдХрд╛рд░реНрдп рдХрд░рддреЛ.

рдкреНрд░рдХрд▓реНрдкрд╛рджреНрд╡рд╛рд░реЗ рд╡рд┐рдХрд╕рд┐рдд рдХреЗрд▓реЗрд▓реА рдорд╛рдирдХ C рд▓рд╛рдпрдмреНрд░рд░реА libc 2024 рдлрдВрдХреНрд╢рдиреНрд╕ рдСрдлрд░ рдХрд░рддреЗ (рдкрд╣рд┐рд▓реНрдпрд╛ рд░рд┐рд▓реАрдЬрдордзреНрдпреЗ рд╕реБрдорд╛рд░реЗ 1400 рдлрдВрдХреНрд╢рдиреНрд╕ рд╣реЛрддреА). рдХрд╛рд░реНрдпрдХреНрд╖рдорддреЗрдЪреНрдпрд╛ рдмрд╛рдмрддреАрдд, рдХреЙрд╕реНрдореЛрдкреЙрд▓рд┐рдЯрди glibc рдкреЗрдХреНрд╖рд╛ рд╡реЗрдЧрд╛рдиреЗ рдХрд╛рд░реНрдп рдХрд░рддреЗ рдЖрдгрд┐ Musl рдЖрдгрд┐ Newlib рдкреЗрдХреНрд╖рд╛ рд▓рдХреНрд╖рдгреАрдпрд░реАрддреНрдпрд╛ рдкреБрдвреЗ рдЖрд╣реЗ, рдХреЙрд╕реНрдореЛрдкреЙрд▓рд┐рдЯрди рд╣рд╛ glibc рдкреЗрдХреНрд╖рд╛ рдХреЛрдб рдЖрдХрд╛рд░рд╛рдд рд▓рд╣рд╛рди рдЖрдХрд╛рд░рд╛рдЪрд╛ рдСрд░реНрдбрд░ рдЕрд╕реВрдирд╣реА рдЖрдгрд┐ рдЕрдВрджрд╛рдЬреЗ Musl рдЖрдгрд┐ Newlib рд╢реА рд╕рдВрдмрдВрдзрд┐рдд рдЖрд╣реЗ. memcpy рдЖрдгрд┐ strlen рд╕рд╛рд░рдЦреНрдпрд╛ рд╡рд╛рд░рдВрд╡рд╛рд░ рдХреЙрд▓ рдХреЗрд▓реЗрд▓реНрдпрд╛ рдлрдВрдХреНрд╢рдиреНрд╕рд▓рд╛ рдЕрдиреБрдХреВрд▓ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, "рдЯреНрд░рд┐рдХрд▓-рдбрд╛рдЙрди рдкрд░рдлреЙрд░реНрдордиреНрд╕" рддрдВрддреНрд░рд╛рдЪрд╛ рдЕрддрд┐рд░рд┐рдХреНрдд рд╡рд╛рдкрд░ рдХреЗрд▓рд╛ рдЬрд╛рддреЛ, рдЬреНрдпрд╛рдордзреНрдпреЗ рдлрдВрдХреНрд╢рди рдХреЙрд▓ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдореЕрдХреНрд░реЛ рдмрд╛рдЗрдВрдбрд┐рдВрдЧрдЪрд╛ рд╡рд╛рдкрд░ рдХреЗрд▓рд╛ рдЬрд╛рддреЛ, рдЬреНрдпрд╛рдордзреНрдпреЗ рдХрдВрдкрд╛рдЗрд▓рд░рд▓рд╛ рдХреЛрдб рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрдордзреНрдпреЗ рд╕рд╛рдореАрд▓ рдЕрд╕рд▓реЗрд▓реНрдпрд╛ CPU рд░рдЬрд┐рд╕реНрдЯрд░реНрд╕рдмрджреНрджрд▓ рдорд╛рд╣рд┐рддреА рджрд┐рд▓реА рдЬрд╛рддреЗ. рдкреНрд░рдХреНрд░рд┐рдпрд╛, рдЬреА рдХреЗрд╡рд│ рдмрджрд▓рдгреНрдпрд╛рдпреЛрдЧреНрдп рдиреЛрдВрджрдгреА рдЬрддрди рдХрд░реВрди CPU рд╕реНрдерд┐рддреА рдЬрддрди рдХрд░рддрд╛рдирд╛ рд╕рдВрд╕рд╛рдзрдиреЗ рдЬрддрди рдХрд░рдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрддреЗ.

рдирд╡реАрди рдкреНрд░рдХрд╛рд╢рдирд╛рддреАрд▓ рдмрджрд▓рд╛рдВрдкреИрдХреА:

  • zip рдлрд╛рдЗрд▓рдордзреАрд▓ рдЕрдВрддрд░реНрдЧрдд рд╕рдВрд╕рд╛рдзрдирд╛рдВрдордзреНрдпреЗ рдкреНрд░рд╡реЗрд╢ рдХрд░рдгреНрдпрд╛рдЪреА рдпреЛрдЬрдирд╛ рдмрджрд▓рд▓реА рдЖрд╣реЗ (рдлрд╛рдЗрд▓ рдЙрдШрдбрддрд╛рдирд╛, zip:.. рдЙрдкрд╕рд░реНрдЧ рд╡рд╛рдкрд░рдгреНрдпрд╛рдРрд╡рдЬреА рдЖрддрд╛ рдиреЗрд╣рдореАрдЪреЗ /zip/... рдкрде рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рддрд╛рдд). рддреНрдпрд╛рдЪрдкреНрд░рдорд╛рдгреЗ, рд╡рд┐рдВрдбреЛрдЬрдордзреАрд▓ рдбрд┐рд╕реНрдХреНрд╕рдордзреНрдпреЗ рдкреНрд░рд╡реЗрд╢ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, тАЬC:/...тАЭ рдРрд╡рдЬреА тАЬ/c/...тАЭ рд╕рд╛рд░рдЦреЗ рдкрде рд╡рд╛рдкрд░рдгреЗ рд╢рдХреНрдп рдЖрд╣реЗ.
  • рдирд╡реАрди рдПрдкреАрдИ (рд╡рд╛рд╕реНрддрд╡рд┐рдХрдкрдгреЗ рдкреЛрд░реНрдЯреЗрдмрд▓ рдПрдХреНрдЭрд┐рдХреНрдпреБрдЯреЗрдмрд▓) рд▓реЛрдбрд░ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХреЗрд▓реЗ рдЖрд╣реЗ, рдЬреЗ рд╕рд╛рд░реНрд╡рддреНрд░рд┐рдХ рдПрдХреНрдЭрд┐рдХреНрдпреБрдЯреЗрдмрд▓ рдлрд╛рдЗрд▓реНрд╕рдЪреЗ рд╕реНрд╡рд░реВрдк рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ. рдирд╡реАрди рд▓реЛрдбрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд▓рд╛ рдореЗрдорд░реАрдордзреНрдпреЗ рдареЗрд╡рдгреНрдпрд╛рд╕рд╛рдареА mmap рдЪрд╛ рд╡рд╛рдкрд░ рдХрд░рддреЛ рдЖрдгрд┐ рдпрд╛рдкреБрдвреЗ рдлреНрд▓рд╛рдпрд╡рд░реАрд▓ рд╕рд╛рдордЧреНрд░реА рдмрджрд▓рдд рдирд╛рд╣реА. рдЖрд╡рд╢реНрдпрдХ рдЕрд╕рд▓реНрдпрд╛рд╕, рд╕рд╛рд░реНрд╡рддреНрд░рд┐рдХ рдПрдХреНрдЭрд┐рдХреНрдпреБрдЯреЗрдмрд▓ рдлрд╛рдЗрд▓ рд╡реИрдпрдХреНрддрд┐рдХ рдкреНрд▓реЕрдЯрдлреЙрд░реНрдорд╢реА рдЬреЛрдбрд▓реЗрд▓реНрдпрд╛ рдирд┐рдпрдорд┐рдд рдПрдХреНрдЭрд┐рдХреНрдпреБрдЯреЗрдмрд▓ рдлрд╛рдЗрд▓реНрд╕рдордзреНрдпреЗ рд░реВрдкрд╛рдВрддрд░рд┐рдд рдХреЗрд▓реА рдЬрд╛рдК рд╢рдХрддреЗ.
  • рд▓рд┐рдирдХреНрд╕ рдкреНрд▓реЕрдЯрдлреЙрд░реНрдорд╡рд░, APE рдкреНрд░реЛрдЧреНрд░рд╛рдореНрд╕ рдЪрд╛рд▓рд╡рдгреНрдпрд╛рд╕рд╛рдареА binfmt_misc рдХрд░реНрдирд▓ рдореЙрдбреНрдпреВрд▓ рд╡рд╛рдкрд░рдгреЗ рд╢рдХреНрдп рдЖрд╣реЗ. binfmt_misc рд╡рд╛рдкрд░рдгреЗ рд╣реА рд╕рд░реНрд╡рд╛рдд рдЬрд▓рдж рдкреНрд░рдХреНрд╖реЗрдкрдг рдкрджреНрдзрдд рдЖрд╣реЗ рдпрд╛рдЪреА рдиреЛрдВрдж рдЖрд╣реЗ.
  • рд▓рд┐рдирдХреНрд╕рд╕рд╛рдареА, OpenBSD рдкреНрд░рдХрд▓реНрдкрд╛рджреНрд╡рд╛рд░реЗ рд╡рд┐рдХрд╕рд┐рдд рдХреЗрд▓реЗрд▓реНрдпрд╛ pleg() рдЖрдгрд┐ unveil() рд╕рд┐рд╕реНрдЯрдо рдХреЙрд▓рдЪреНрдпрд╛ рдХрд╛рд░реНрдпрдХреНрд╖рдорддреЗрдЪреА рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХрд░рдгреНрдпрд╛рдд рдЖрд▓реА рдЖрд╣реЗ. C, C++, Python рдЖрдгрд┐ Redbean рдордзреАрд▓ рдкреНрд░реЛрдЧреНрд░рд╛рдореНрд╕рдордзреНрдпреЗ рд╣реЗ рдХреЙрд▓ рд╡рд╛рдкрд░рдгреНрдпрд╛рд╕рд╛рдареА API рддрд╕реЗрдЪ рдЕрдирд┐рдпрдВрддреНрд░рд┐рдд рдкреНрд░рдХреНрд░рд┐рдпрд╛рдВрдирд╛ рд╡реЗрдЧрд│реЗ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА pledge.com рдпреБрдЯрд┐рд▓рд┐рдЯреА рдкреНрд░рджрд╛рди рдХреЗрд▓реА рдЖрд╣реЗ.
  • рдмрд┐рд▓реНрдб рд▓рдБрдбрд▓реЙрдХ рдореЗрдХ рдпреБрдЯрд┐рд▓рд┐рдЯреАрдЪрд╛ рд╡рд╛рдкрд░ рдХрд░рддреЗ - рдЬреАрдПрдирдпреВ рдореЗрдХрдЪреА рдЖрд╡реГрддреНрддреА рдЕрдзрд┐рдХ рдХрдареЛрд░ рдЕрд╡рд▓рдВрдмрд┐рддреНрд╡ рддрдкрд╛рд╕рдгреА рдЖрдгрд┐ рд▓рдБрдбрд▓реЙрдХ рд╕рд┐рд╕реНрдЯрдо рдХреЙрд▓рдЪрд╛ рд╡рд╛рдкрд░ рдЙрд░реНрд╡рд░рд┐рдд рд╕рд┐рд╕реНрдЯрдордкрд╛рд╕реВрди рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╡реЗрдЧрд│реЗ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдгрд┐ рдХреЕрд╢рд┐рдВрдЧ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд╕реБрдзрд╛рд░рдгреНрдпрд╛рд╕рд╛рдареА. рдПрдХ рдкрд░реНрдпрд╛рдп рдореНрд╣рдгреВрди, рдирд┐рдпрдорд┐рдд GNU рдореЗрдХрд╕рд╣ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рдЪреА рдХреНрд╖рдорддрд╛ рд░рд╛рдЦреВрди рдареЗрд╡рд▓реА рдЬрд╛рддреЗ.
  • рдорд▓реНрдЯреАрдереНрд░реЗрдбрд┐рдВрдЧрд╕рд╛рдареА рдХрд╛рд░реНрдпреЗ рд▓рд╛рдЧреВ рдХреЗрд▓реА рдЧреЗрд▓реА рдЖрд╣реЗрдд - _spawn() рдЖрдгрд┐ _join(), рдЬреЗ рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдорд╕рд╛рдареА рд╡рд┐рд╢рд┐рд╖реНрдЯ API рд╡рд░ рд╕рд╛рд░реНрд╡рддреНрд░рд┐рдХ рдмрдВрдзрдиреЗ рдЖрд╣реЗрдд. POSIX рдереНрд░реЗрдбреНрд╕ рд╕рдорд░реНрдерди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рджреЗрдЦреАрд▓ рдХрд╛рдо рд╕реБрд░реВ рдЖрд╣реЗ.
  • рдкреНрд░рддреНрдпреЗрдХ рдереНрд░реЗрдбрд╕рд╛рдареА (TLS, Thread-Local Storage) рд╡реЗрдЧрд│реЗ рд╕реНрдЯреЛрд░реЗрдЬ рд╡рд╛рдкрд░рдгреНрдпрд╛рд╕рд╛рдареА _Thread_local рдХреАрд╡рд░реНрдб рд╡рд╛рдкрд░рдгреЗ рд╢рдХреНрдп рдЖрд╣реЗ. рдбреАрдлреЙрд▓реНрдЯрдиреБрд╕рд╛рд░, C рд░рдирдЯрд╛рдЗрдо рдореБрдЦреНрдп рдереНрд░реЗрдбрд╕рд╛рдареА TLS рд╕реБрд░реВ рдХрд░рддреЗ, рдЬреНрдпрд╛рдореБрд│реЗ рдХрд┐рдорд╛рди рдПрдХреНрдЭрд┐рдХреНрдпреБрдЯреЗрдмрд▓ рдЖрдХрд╛рд░ 12 KB рд╡рд░реВрди 16 KB рдкрд░реНрдпрдВрдд рд╡рд╛рдврд▓рд╛ рдЖрд╣реЗ.
  • тАЬ--ftraceтАЭ рдЖрдгрд┐ тАЬ--straceтАЭ рдкреЕрд░рд╛рдореАрдЯрд░реНрд╕рд╕рд╛рдареА рд╕рдорд░реНрдерди рд╕рд░реНрд╡ рдлрдВрдХреНрд╢рди рдХреЙрд▓реНрд╕ рдЖрдгрд┐ stderr рд╡рд░реАрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЙрд▓реНрд╕рдмрджреНрджрд▓ рдорд╛рд╣рд┐рддреА рдЖрдЙрдЯрдкреБрдЯ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдПрдХреНрдЭрд┐рдХреНрдпреВрдЯреЗрдмрд▓ рдлрд╛рдЗрд▓реНрд╕рдордзреНрдпреЗ рдЬреЛрдбрд▓реЗ рдЧреЗрд▓реЗ рдЖрд╣реЗ.
  • Linux 5.9+, FreeBSD 8+ рдЖрдгрд┐ OpenBSD рд╡рд░ рд╕рдорд░реНрдерд┐рдд, closefrom() рд╕рд┐рд╕реНрдЯрдо рдХреЙрд▓рд╕рд╛рдареА рд╕рдорд░реНрдерди рдЬреЛрдбрд▓реЗ.
  • рд▓рд┐рдирдХреНрд╕ рдкреНрд▓реЕрдЯрдлреЙрд░реНрдорд╡рд░, vDSO (рд╡реНрд╣рд░реНрдЪреНрдпреБрдЕрд▓ рдбрд╛рдпрдиреЕрдорд┐рдХ рд╢реЗрдЕрд░реНрдб рдСрдмреНрдЬреЗрдХреНрдЯ) рдпрдВрддреНрд░рдгрд╛ рд╡рд╛рдкрд░реВрди clock_gettime рдЖрдгрд┐ gettimeofday рдХреЙрд▓реНрд╕рдЪреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ 10 рдкрдЯ рд╡рд╛рдврд╡рд▓реА рдЧреЗрд▓реА рдЖрд╣реЗ, рдЬреНрдпрд╛рдореБрд│реЗ рд╕рд┐рд╕реНрдЯрдо рдХреЙрд▓ рд╣рдБрдбрд▓рд░рд▓рд╛ рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдЪреНрдпрд╛ рдЬрд╛рдЧреЗрд╡рд░ рд╣рд▓рд╡рдгреЗ рдЖрдгрд┐ рд╕рдВрджрд░реНрдн рд╕реНрд╡рд┐рдЪ рдЯрд╛рд│рдгреЗ рд╢рдХреНрдп рд╣реЛрддреЗ.
  • рдЬрдЯрд┐рд▓ рд╕рдВрдЦреНрдпрд╛рдВрд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЧрдгрд┐рддреАрдп рдХрд╛рд░реНрдпреЗ Musl рд▓рд╛рдпрдмреНрд░рд░реАрдордзреВрди рд╣рд▓рд╡рд▓реА рдЧреЗрд▓реА рдЖрд╣реЗрдд. рдЕрдиреЗрдХ рдЧрдгрд┐рддреА рдХрд╛рд░реНрдпрд╛рдВрдЪреНрдпрд╛ рдХрд╛рдорд╛рд▓рд╛ рдЧрддреА рдЖрд▓реА рдЖрд╣реЗ.
  • рдиреЗрдЯрд╡рд░реНрдХ рдХреНрд╖рдорддрд╛ рдЕрдХреНрд╖рдо рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА nointernet() рдлрдВрдХреНрд╢рди рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХреЗрд▓реЗ рдЖрд╣реЗ.
  • рдХрд╛рд░реНрдпрдХреНрд╖рдорддреЗрдиреЗ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЬреЛрдбрдгреНрдпрд╛рд╕рд╛рдареА рдирд╡реАрди рдлрдВрдХреНрд╢рдиреНрд╕ рдЬреЛрдбрд▓реА: appendd, appendf, appendr, appends, appendw, appendz, kappendf, kvappendf рдЖрдгрд┐ vappendf.
  • kprintf() рдлрдВрдХреНрд╢рдиреНрд╕рдЪреНрдпрд╛ рдлреЕрдорд┐рд▓реАрдЪреА рд╕рдВрд░рдХреНрд╖рд┐рдд рдЖрд╡реГрддреНрддреА рдЬреЛрдбрд▓реА, рдЙрдиреНрдирдд рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░рд╛рдВрд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдбрд┐рдЭрд╛рдЗрди рдХреЗрд▓реЗрд▓реЗ.
  • SSL, SHA, curve25519 рдЖрдгрд┐ RSA рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрдЪреА рд▓рдХреНрд╖рдгреАрдпрд░реАрддреНрдпрд╛ рд╕реБрдзрд╛рд░рд┐рдд рдХрд╛рдордЧрд┐рд░реА.

рд╕реНрддреНрд░реЛрдд: opennet.ru

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛