Π’Π΅ΠΎ ΠΠ΅ Π Π°Π΄Ρ
ΠΡ Π½Π°ΡΠ°Π»ΠΎΡΠΎ Π½Π° ΡΠ°Π±ΠΎΡΠ°ΡΠ° ΠΏΠΎ 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-Current, Π²ΡΠΈΡΠΊΠΈ Π·Π°ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠΎΠ²Π°Π½ΠΈ ΡΠ° ΠΏΠΎΠΊΠ°Π½Π΅Π½ΠΈ Π΄Π° ΡΠ΅ΡΡΠ²Π°Ρ.
Π‘Π²ΡΡΠ·Π°Π½ΠΈΡΠ΅ Π½ΠΎΠ²ΠΈΠ½ΠΈ Π·Π° ΠΏΠΎΡΠ²Π°ΡΠ° Π½Π° ΡΠ΅ΠΆΠΈΠΌΠ° Π² Chrome/Iridium Π·Π°ΡΠ»ΡΠΆΠ°Π²Π°Ρ ΠΎΡΠ΄Π΅Π»Π΅Π½ ΠΊΠΎΠΌΠ΅Π½ΡΠ°Ρ ΠΎΡ Π’Π΅ΠΎ
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru