ΠΠ·ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΠΈ ΠΎΡ ΠΠ°ΡΡΠ½ΠΎ-ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΠ½ΠΈΡ ΡΠ½ΠΈΠ²Π΅ΡΡΠΈΡΠ΅Ρ Π·Π° ΠΎΡΠ±ΡΠ°Π½Π° Π½Π° ΠΠ°ΡΠΎΠ΄Π½Π°ΡΠ° ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡΠ΅Π»Π½Π° Π°ΡΠΌΠΈΡ, ΠΠ°ΡΠΈΠΎΠ½Π°Π»Π½ΠΈΡ ΡΠ½ΠΈΠ²Π΅ΡΡΠΈΡΠ΅Ρ Π½Π° Π‘ΠΈΠ½Π³Π°ΠΏΡΡ ΠΈ ETH Π¦ΡΡΠΈΡ ΡΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΈΠ»ΠΈ Π½ΠΎΠ² ΠΌΠ΅ΡΠΎΠ΄ Π·Π° Π°ΡΠ°ΠΊΠ° Π½Π° ΠΈΠ·ΠΎΠ»ΠΈΡΠ°Π½ΠΈ Π°Π½ΠΊΠ»Π°Π²ΠΈ Intel SGX (Software Guard eXtensions). ΠΡΠ°ΠΊΠ°ΡΠ° ΡΠ΅ Π½Π°ΡΠΈΡΠ° SmashEx ΠΈ Π΅ ΠΏΡΠΈΡΠΈΠ½Π΅Π½Π° ΠΎΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ Ρ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΡΠΎ Π²Π»ΠΈΠ·Π°Π½Π΅ ΠΏΡΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΠΈΠ·Π²ΡΠ½ΡΠ΅Π΄Π½ΠΈ ΡΠΈΡΡΠ°ΡΠΈΠΈ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΡΠ°Π±ΠΎΡΠ° Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° Intel SGX. ΠΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡΡ ΠΌΠ΅ΡΠΎΠ΄ Π·Π° Π°ΡΠ°ΠΊΠ° ΠΏΡΠ°Π²ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π°ΠΊΠΎ ΠΈΠΌΠ°ΡΠ΅ ΠΊΠΎΠ½ΡΡΠΎΠ» Π½Π°Π΄ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ°, Π΄Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΠ΅ ΠΏΠΎΠ²Π΅ΡΠΈΡΠ΅Π»Π½ΠΈ Π΄Π°Π½Π½ΠΈ, Π½Π°ΠΌΠΈΡΠ°ΡΠΈ ΡΠ΅ Π² Π°Π½ΠΊΠ»Π°Π²Π°, ΠΈΠ»ΠΈ Π΄Π° ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ°ΡΠ΅ ΠΊΠΎΠΏΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° Π²Π°ΡΠΈΡ ΠΊΠΎΠ΄ Π² ΠΏΠ°ΠΌΠ΅ΡΡΠ° Π½Π° Π°Π½ΠΊΠ»Π°Π²Π° ΠΈ Π½Π΅Π³ΠΎΠ²ΠΎΡΠΎ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅.
ΠΠΎΠ΄Π³ΠΎΡΠ²Π΅Π½ΠΈ ΡΠ° ΠΏΡΠΎΡΠΎΡΠΈΠΏΠΈ Π½Π° Π΅ΠΊΡΠΏΠ»ΠΎΠΉΡ Π·Π° Π°Π½ΠΊΠ»Π°Π²ΠΈ Ρ Π²ΡΠ΅ΠΌΠ΅ Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅, Π±Π°Π·ΠΈΡΠ°Π½ΠΎ Π½Π° Intel SGX SDK (CVE-2021-0186) ΠΈ Microsoft Open Enclave (CVE-2021-33767). Π ΠΏΡΡΠ²ΠΈΡ ΡΠ»ΡΡΠ°ΠΉ Π±Π΅ΡΠ΅ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΠ°Π½Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° ΠΈΠ·Π²Π»ΠΈΡΠ°Π½Π΅ Π½Π° RSA ΠΊΠ»ΡΡ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ Π½Π° ΡΠ΅Π± ΡΡΡΠ²ΡΡ Π·Π° HTTPS, Π° Π²ΡΠ² Π²ΡΠΎΡΠΈΡ Π±Π΅ΡΠ΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΄Π° ΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈ ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ΡΠΎ, ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΎ ΠΎΡ ΠΏΠΎΠΌΠΎΡΠ½Π°ΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ° cURL, ΡΠ°Π±ΠΎΡΠ΅ΡΠ° Π²ΡΡΡΠ΅ Π² Π°Π½ΠΊΠ»Π°Π²Π°. Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡΡΠ° Π²Π΅ΡΠ΅ Π΅ Π°Π΄ΡΠ΅ΡΠΈΡΠ°Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ½ΠΎ Π² ΠΈΠ·Π΄Π°Π½ΠΈΡΡΠ° Π½Π° Intel SGX SDK 2.13 ΠΈ Open Enclave 0.17.1. Π Π΄ΠΎΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΡΠΌ Intel SGX SDK ΠΈ Microsoft Open Enclave, ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΡΠ° ΡΠ΅ ΠΏΠΎΡΠ²ΡΠ²Π° ΠΈ Π² Google Asylo SDK, EdgelessRT, Apache Teaclave, Rust SGX SDK, SGX-LKL, CoSMIX ΠΈ Veracruz.
ΠΠ΅ΠΊΠ° ΠΏΡΠΈΠΏΠΎΠΌΠ½ΠΈΠΌ, ΡΠ΅ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΡΠ° SGX (Software Guard Extensions) ΡΠ΅ ΠΏΠΎΡΠ²ΠΈ Π² ΠΏΡΠΎΡΠ΅ΡΠΎΡΠΈΡΠ΅ Intel Core ΠΎΡ ΡΠ΅ΡΡΠΎ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠ΅ (Skylake) ΠΈ ΠΏΡΠ΅Π΄Π»Π°Π³Π° ΡΠ΅ΡΠΈΡ ΠΎΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°Ρ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡΠ° Π½Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΎ Π½ΠΈΠ²ΠΎ Π΄Π° ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»ΡΡ Π·Π°ΡΠ²ΠΎΡΠ΅Π½ΠΈ ΠΎΠ±Π»Π°ΡΡΠΈ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ° - Π°Π½ΠΊΠ»Π°Π²ΠΈ, ΡΠΈΠ΅ΡΠΎ ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΏΡΠΎΡΠ΅ΡΠ΅Π½ΠΎ ΠΈ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠ°Π½ Π΄ΠΎΡΠΈ ΠΎΡ ΡΠ΄ΡΠΎΡΠΎ ΠΈ ΠΊΠΎΠ΄Π°, ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°Π½ Π² ΡΠ΅ΠΆΠΈΠΌΠΈ ring0, SMM ΠΈ VMM. ΠΠ΅Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΅ Π΄Π° ΡΠ΅ ΠΏΡΠ΅Ρ Π²ΡΡΠ»ΠΈ ΠΊΠΎΠ½ΡΡΠΎΠ»Π° Π²ΡΡΡ Ρ ΠΊΠΎΠ΄Π° Π² Π°Π½ΠΊΠ»Π°Π²Π° Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΠΈΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π·Π° ΠΏΡΠ΅ΡΠΊΠ°ΡΠ°Π½Π΅ ΠΈ ΠΌΠ°Π½ΠΈΠΏΡΠ»Π°ΡΠΈΠΈ Ρ ΡΠ΅Π³ΠΈΡΡΡΠΈ ΠΈ ΡΡΠ΅ΠΊΠ° - ΡΠΏΠ΅ΡΠΈΠ°Π»Π½ΠΎ ΡΡΠ·Π΄Π°Π΄Π΅Π½ΠΈ Π½ΠΎΠ²ΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ EENTER, EEXIT ΠΈ ERESUME ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π·Π° ΠΏΡΠ΅Ρ Π²ΡΡΠ»ΡΠ½Π΅ Π½Π° ΠΊΠΎΠ½ΡΡΠΎΠ» ΠΊΡΠΌ Π°Π½ΠΊΠ»Π°Π²Π°, ΠΊΠΎΠΈΡΠΎ ΠΈΠ·Π²ΡΡΡΠ²Π°Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π½Π° Π°Π²ΡΠΎΡΠΈΡΠ΅ΡΠ°. Π ΡΠΎΠ·ΠΈ ΡΠ»ΡΡΠ°ΠΉ ΠΊΠΎΠ΄ΡΡ, ΠΏΠΎΡΡΠ°Π²Π΅Π½ Π² Π°Π½ΠΊΠ»Π°Π²Π°, ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΊΠ»Π°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΈ Π·Π° ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ Π·Π° Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ ΡΡΠ½ΠΊΡΠΈΠΈ Π²ΡΡΡΠ΅ Π² Π°Π½ΠΊΠ»Π°Π²Π° ΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»Π½ΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π·Π° ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ Π½Π° Π²ΡΠ½ΡΠ½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ. Enclave ΡΠΈΡΡΠΎΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° Π·Π°ΡΠΈΡΠ° ΡΡΠ΅ΡΡ Ρ Π°ΡΠ΄ΡΠ΅ΡΠ½ΠΈ Π°ΡΠ°ΠΊΠΈ, ΠΊΠ°ΡΠΎ Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ²ΡΡΠ·Π²Π°Π½Π΅ ΠΊΡΠΌ DRAM ΠΌΠΎΠ΄ΡΠ».
ΠΡΠΎΠ±Π»Π΅ΠΌΡΡ Π΅, ΡΠ΅ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΡΠ° SGX ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° Π΄Π° ΠΏΡΠ΅ΠΊΡΡΠ½Π΅ Π°Π½ΠΊΠ»Π°Π² ΡΡΠ΅Π· Ρ Π²ΡΡΠ»ΡΠ½Π΅ Π½Π° Ρ Π°ΡΠ΄ΡΠ΅ΡΠ½ΠΎ ΠΈΠ·ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅, Π° Π°Π½ΠΊΠ»Π°Π²ΠΈΡΠ΅ Π½Π΅ ΠΏΡΠΈΠ»Π°Π³Π°Ρ ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²ΠΈ Π·Π° Π°ΡΠΎΠΌΠ½ΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π°Π½Π΅ Π½Π° ΡΠ°ΠΊΠΈΠ²Π° ΠΈΠ·ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ. ΠΠ° ΡΠ°Π·Π»ΠΈΠΊΠ° ΠΎΡ ΡΠ΄ΡΠΎΡΠΎ Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° ΠΈ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΠ΄ΡΡ Π² Π°Π½ΠΊΠ»Π°Π²ΠΈΡΠ΅ Π½ΡΠΌΠ° Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²ΠΈ Π·Π° ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° Π°ΡΠΎΠΌΠ°ΡΠ½ΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΏΡΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎ Ρ Π²ΡΡΠ»Π΅Π½ΠΈ ΠΈΠ·ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ. ΠΠ΅Π· ΠΏΠΎΡΠΎΡΠ΅Π½ΠΈΡΠ΅ Π°ΡΠΎΠΌΠ½ΠΈ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²ΠΈ, Π°Π½ΠΊΠ»Π°Π²ΡΡ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΏΡΠ΅ΠΊΡΡΠ½Π°Ρ ΠΏΠΎ Π²ΡΡΠΊΠΎ Π²ΡΠ΅ΠΌΠ΅ ΠΈ Π²ΡΡΠ½Π°Ρ ΠΊΡΠΌ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅, Π΄ΠΎΡΠΈ ΠΊΠΎΠ³Π°ΡΠΎ Π°Π½ΠΊΠ»Π°Π²ΡΡ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° ΠΊΡΠΈΡΠΈΡΠ½ΠΈ ΡΠ΅ΠΊΡΠΈΠΈ ΠΈ Π΅ Π² ΠΎΠΏΠ°ΡΠ½ΠΎ ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΠ³Π°ΡΠΎ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠ΅ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠ° Π½Π΅ ΡΠ° Π·Π°ΠΏΠ°Π·Π΅Π½ΠΈ/Π²ΡΠ·ΡΡΠ°Π½ΠΎΠ²Π΅Π½ΠΈ).
ΠΠ° Π½ΠΎΡΠΌΠ°Π»Π½Π° ΡΠ°Π±ΠΎΡΠ° ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΡΠ° SGX ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° Π°Π½ΠΊΠ»Π°Π²Π° Π΄Π° Π±ΡΠ΄Π΅ ΠΏΡΠ΅ΠΊΡΡΠ½Π°ΡΠΎ ΠΎΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΡΠ΅ΠΌΠΈ Ρ Π°ΡΠ΄ΡΠ΅ΡΠ½ΠΈ ΠΈΠ·ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ. Π’Π°Π·ΠΈ ΡΡΠ½ΠΊΡΠΈΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π½Π° ΡΡΠ΅Π΄ΠΈΡΠ΅ Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° Π°Π½ΠΊΠ»Π°Π² Π΄Π° ΠΏΡΠΈΠ»Π°Π³Π°Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΠΈΠ·ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π² ΡΠ°ΠΌΠΊΠΈΡΠ΅ Π½Π° Π°Π½ΠΊΠ»Π°Π²Π° ΠΈΠ»ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΡΠΈΠ³Π½Π°Π»ΠΈ, Π½ΠΎ ΡΡΡΠΎ ΡΠ°ΠΊΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΡΠΈΡΠΈΠ½ΠΈ Π³ΡΠ΅ΡΠΊΠΈ ΠΏΡΠΈ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ Π²Π»ΠΈΠ·Π°Π½Π΅. ΠΡΠ°ΠΊΠ°ΡΠ° SmashEx ΡΠ΅ ΠΎΡΠ½ΠΎΠ²Π°Π²Π° Π½Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΠΏΡΡΠΊΠΈ Π² SDK, ΠΏΠΎΡΠ°Π΄ΠΈ ΠΊΠΎΠ΅ΡΠΎ ΡΠΈΡΡΠ°ΡΠΈΡΡΠ° Π½Π° ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ Π½Π° ΠΌΠ°Π½ΠΈΠΏΡΠ»Π°ΡΠΎΡΠ° Π½Π° ΠΈΠ·ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π½Π΅ ΡΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π° ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎ. ΠΠ°ΠΆΠ½ΠΎ Π΅, ΡΠ΅ Π·Π° Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΡΠ°, Π°ΡΠ°ΠΊΡΠ²Π°ΡΠΈΡΡ ΡΡΡΠ±Π²Π° Π΄Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΡΠ΅ΠΊΡΡΠ½Π΅ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° Π°Π½ΠΊΠ»Π°Π²Π°, Ρ.Π΅. ΡΡΡΠ±Π²Π° Π΄Π° ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΠ° ΡΠ°Π±ΠΎΡΠ°ΡΠ° Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ½Π°ΡΠ° ΡΡΠ΅Π΄Π°.
Π‘Π»Π΅Π΄ Ρ Π²ΡΡΠ»ΡΠ½Π΅ Π½Π° ΠΈΠ·ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅, Π°ΡΠ°ΠΊΡΠ²Π°ΡΠΈΡΡ ΠΏΠΎΠ»ΡΡΠ°Π²Π° ΠΌΠ°Π»ΡΠΊ Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΠΏΡΠΎΠ·ΠΎΡΠ΅Ρ, ΠΏΡΠ΅Π· ΠΊΠΎΠΉΡΠΎ Π½ΠΈΡΠΊΠ°ΡΠ° Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΏΡΠΈΡ Π²Π°Π½Π°ΡΠ° ΡΡΠ΅Π· ΠΌΠ°Π½ΠΈΠΏΡΠ»ΠΈΡΠ°Π½Π΅ Π½Π° Π²Ρ ΠΎΠ΄Π½ΠΈΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ. ΠΠΎ-ΡΠΏΠ΅ΡΠΈΠ°Π»Π½ΠΎ, Π°ΠΊΠΎ ΠΈΠΌΠ°ΡΠ΅ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° (ΡΡΠ΅Π΄Π° ΠΈΠ·Π²ΡΠ½ Π°Π½ΠΊΠ»Π°Π²Π°), ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΡΠ·Π΄Π°Π΄Π΅ΡΠ΅ Π½ΠΎΠ²ΠΎ ΠΈΠ·ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π²Π΅Π΄Π½Π°Π³Π° ΡΠ»Π΅Π΄ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡΡΠ° Π·Π° Π²Π»ΠΈΠ·Π°Π½Π΅ Π² Π°Π½ΠΊΠ»Π°Π²Π° (EENTER), ΠΊΠΎΠ΅ΡΠΎ ΡΠ΅ Π²ΡΡΠ½Π΅ ΠΊΠΎΠ½ΡΡΠΎΠ»Π° Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Π½Π° Π΅ΡΠ°ΠΏ, ΠΊΠΎΠ³Π°ΡΠΎ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°ΡΠ° Π½Π° ΡΡΠ΅ΠΊΠ° Π·Π° Π²ΡΠ΅ ΠΎΡΠ΅ Π½Π΅ Π΅ Π·Π°Π²ΡΡΡΠ΅Π½ Π°Π½ΠΊΠ»Π°Π², Π² ΠΊΠΎΠΉΡΠΎ ΡΡΡΠΎ ΡΠ΅ Π·Π°ΠΏΠΈΡΠ²Π° ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ΡΠΎ Π½Π° ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠ΅ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠ°.
Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° Π²ΡΡΠ½Π΅ ΠΊΠΎΠ½ΡΡΠΎΠ»Π° ΠΎΠ±ΡΠ°ΡΠ½ΠΎ Π½Π° Π°Π½ΠΊΠ»Π°Π²Π°, Π½ΠΎ ΡΡΠΉ ΠΊΠ°ΡΠΎ ΡΡΠ΅ΠΊΡΡ Π½Π° Π°Π½ΠΊΠ»Π°Π²Π° Π½Π΅ Π΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Π½ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΏΡΠ΅ΠΊΡΡΠ²Π°Π½Π΅ΡΠΎ, Π°Π½ΠΊΠ»Π°Π²ΡΡ ΡΠ΅ ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΠΈ ΡΡΡ ΡΡΠ΅ΠΊΠ°, ΠΊΠΎΠΉΡΠΎ ΡΠ΅ Π½Π°ΠΌΠΈΡΠ° Π² ΡΠΈΡΡΠ΅ΠΌΠ½Π°ΡΠ° ΠΏΠ°ΠΌΠ΅Ρ, ΠΊΠΎΠ΅ΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠ°Π½ΠΎ ΠΊΡΠΌ Π²ΡΡΡΠ°Π½Π΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°Π½Π΅ (ROP ) ΡΠ΅Ρ Π½ΠΈΠΊΠΈ Π·Π° Π΅ΠΊΡΠΏΠ»ΠΎΠ°ΡΠ°ΡΠΈΡ.ΠΡΠΈΠ΅Π½ΡΠΈΡΠ°Π½ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°Π½Π΅). ΠΠΎΠ³Π°ΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ROP ΡΠ΅Ρ Π½ΠΈΠΊΠ°ΡΠ°, Π°ΡΠ°ΠΊΡΠ²Π°ΡΠΈΡΡ Π½Π΅ ΡΠ΅ ΠΎΠΏΠΈΡΠ²Π° Π΄Π° ΠΏΠΎΡΡΠ°Π²ΠΈ ΠΊΠΎΠ΄Π° ΡΠΈ Π² ΠΏΠ°ΠΌΠ΅ΡΡΠ°, Π° ΠΎΠΏΠ΅ΡΠΈΡΠ° Ρ ΡΠ°ΡΡΠΈ ΠΎΡ ΠΌΠ°ΡΠΈΠ½Π½ΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ, ΠΊΠΎΠΈΡΠΎ Π²Π΅ΡΠ΅ ΡΠ° Π½Π°Π»ΠΈΡΠ½ΠΈ Π² Π·Π°ΡΠ΅Π΄Π΅Π½ΠΈΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, Π·Π°Π²ΡΡΡΠ²Π°ΠΉΠΊΠΈ Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ Π·Π° Π²ΡΡΡΠ°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΡΡΠΎΠ» (ΠΊΠ°ΡΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ ΡΠΎΠ²Π° ΡΠ° ΠΊΡΠ°ΠΈΡΠ°ΡΠ° Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΡΠ½ΠΈΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ) . Π Π°Π±ΠΎΡΠ°ΡΠ° Π½Π° Π΅ΠΊΡΠΏΠ»ΠΎΠΉΡΠ° ΡΠ΅ ΡΠ²Π΅ΠΆΠ΄Π° Π΄ΠΎ ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° Π²Π΅ΡΠΈΠ³Π° ΠΎΡ ΠΎΠ±Π°ΠΆΠ΄Π°Π½ΠΈΡ ΠΊΡΠΌ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ Π±Π»ΠΎΠΊΠΎΠ²Π΅ (βΠ΄ΠΆΠ°Π΄ΠΆΠΈβ), Π·Π° Π΄Π° ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈ ΠΆΠ΅Π»Π°Π½Π°ΡΠ° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru