Π’Π΅ΠΎ ΠΠ΅ Π Π°Π°Π΄Ρ
Π‘ Π½Π°ΡΠ°Π»Π° ΡΠ°Π±ΠΎΡ Π½Π°Π΄ W^X Π±ΡΠ»ΠΎ ΠΏΠΎΠ½ΡΡΠ½ΠΎ, ΡΡΠΎ ΡΡΠΎ Π΄ΠΎΠ»Π³Π°Ρ Π΄ΠΎΡΠΎΠ³Π°, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΡ JIT. Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ JIT ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΡ Π½Π° ΡΡΠΈ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ:
- ΠΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΡΠΈΠ΅ ΠΏΠ°ΠΌΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ W ΠΈ X ΡΠΎΡΡΠΎΡΠ½ΠΈΡΠΌΠΈ, ΡΠΌΠΈΡΡΡΡΡ ΡΠΎ «ΡΡΠΎΠΈΠΌΠΎΡΡΡΡ» ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π°
mprotect . - Π‘ΠΎΠ·Π΄Π°ΡΡΠΈΠ΅ ΠΏΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΠ°ΡΠΎΠΉ W ΠΈ X ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ ΠΎΠ΄Π½ΠΎΠΉ ΠΈ ΡΠΎΠΉ ΠΆΠ΅ ΠΏΠ°ΠΌΡΡΠΈ.
- ΠΠ°ΠΈΠ±ΠΎΠ»Π΅Π΅ «Π³ΡΡΠ·Π½ΡΠΉ» Π²Π°ΡΠΈΠ°Π½Ρ — ΡΡΠ΅Π±ΡΡΡΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΠ°ΠΌΡΡΠΈ W|X, Π΄ΠΎΠΏΡΡΠΊΠ°ΡΡΠ΅ΠΉ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ΅ ΠΎΡΡΡΠ΅ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ Π·Π°ΠΏΠΈΡΠΈ ΠΈ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ.
Π Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΡΡΠ°Π»ΠΎ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΌΠ΅Π½ΡΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΡ
ΡΡΠ΅ΡΠΈΠΉ Π²Π°ΡΠΈΠ°Π½Ρ ΠΈ Π±ΠΎΠ»ΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΡ
ΠΏΠ΅ΡΠ²ΡΠΉ ΠΈ Π²ΡΠΎΡΠΎΠΉ. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π±ΡΠ»ΠΎ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Ρ W|X JIT (Π³Π»Π°Π²Π½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Chromium ΠΈ Iridum), Π±ΡΠ»Π° Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΎΠΏΡΠΈΡ ΠΌΠΎΠ½ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ «wxallowed», ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ»Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠ°ΠΌΡΡΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΈ Π΄Π»Ρ Π·Π°ΠΏΠΈΡΠΈ ΠΈ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, Π² ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ELF-ΡΠ°ΠΉΠ» ΠΎΡΠΌΠ΅ΡΠ΅Π½ ΠΌΠ°ΡΠΊΠ΅ΡΠΎΠΌ «wxneeded», Π° ΡΠ°ΠΌΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π·Π°ΡΠΈΡΠ°Π»ΠΈΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌΡ
ΠΠ»Ρ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅Π³ΠΎ ΡΡΠ»ΠΎΠΆΠ½Π΅Π½ΠΈΡ ΡΠΊΡΠΏΠ»ΡΠ°ΡΠ°ΡΠΈΠΈ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠ΅ΠΉ Π² ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ
ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ
ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌΠ°
ΠΡΠΎΡΠ΅ΡΡΡ Chrome/Iridium ΠΈ ΡΠ°ΠΊ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π½Π°Π΄ΡΠΆΠ½ΠΎ Π·Π°ΡΠΈΡΠ΅Π½Ρ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ pledge ΠΈ unveil, Π½ΠΎ Π»ΠΈΡΠ΅Π½ΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ Π²ΡΠ·ΠΎΠ² write(2), ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎ, ΠΈΠΌΠ΅Π΅Ρ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡΡ Π°ΡΠ°ΠΊΡΡΡΠ΅ΠΌΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ. ΠΠΏΡΠΎΡΠ΅ΠΌ, ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΌΠΎΠ³ΡΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡΡ ΠΈ Π² ΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ JIT ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π½Π°ΡΠΈΠ²Π½ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠ΅ Π²ΡΠ·ΠΎΠ²Ρ ΠΈΠ· W|X ΠΏΠ°ΠΌΡΡΠΈ. ΠΠ΄Π½Π°ΠΊΠΎ, Π΅ΡΡΡ ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΡ Π½Π°Π΄Π΅ΡΡΡΡΡ, ΡΡΠΎ Ρ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠΌ Π½Π΅ ΠΏΡΠΈΠ΄ΡΡΡΡ ΡΡΠΎΠ»ΠΊΠ½ΡΡΡΡΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ABI Π½Π΅ΠΎΠ΄Π½ΠΎΠΊΡΠ°ΡΠ½ΠΎ ΠΌΠ΅Π½ΡΠ»ΠΎΡΡ, Π½ΠΎ Π½ΠΈΠΊΡΠΎ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΡΠΎΠΎΠ±ΡΠ°Π» ΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°Ρ .
ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠΆΠ΅ Π΄ΠΎΡΡΡΠΏΠ½Ρ Π² ΡΠ΅Π³ΡΠ»ΡΡΠ½ΡΡ ΡΠ½Π°ΠΏΡΠΎΡΠ°Ρ Π²Π΅ΡΠΊΠΈ OpenBSD-Π‘urrent, Π²ΡΠ΅ Π·Π°ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΏΡΠΈΠ³Π»Π°ΡΠ°ΡΡΡΡ ΠΊ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
ΠΡΠ΄Π΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΡΠΎ ΡΡΠΎΡΠΎΠ½Ρ Π’Π΅ΠΎ Π·Π°ΡΠ»ΡΠΆΠΈΠ»ΠΈ ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Π½ΠΎΠ²ΠΎΡΡΠΈ ΠΏΡΠΎ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΠ΅ Π² Chrome/Iridium ΡΠ΅ΠΆΠΈΠΌΠ°
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru