เจ“เจชเจจเจฌเฉ€เจเจธเจกเฉ€ เจจเฉ‡ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจฎเฉˆเจฎเฉ‹เจฐเฉ€ เจจเฉ‚เฉฐ เจนเฉ‹เจฐ เจธเฉเจฐเฉฑเจ–เจฟเจ…เจค เจ•เจฐเจจ เจฒเจˆ เจฌเจฆเจฒเจพเจ… เจ…เจชเจฃเจพเจ เจนเจจ

Theo de Raadt เจจเฉ‡ เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจธเจชเฉ‡เจธ เจตเจฟเฉฑเจš เจชเฉเจฐเฉ‹เจธเฉˆเจธ เจฎเฉˆเจฎเฉ‹เจฐเฉ€ เจจเฉ‚เฉฐ เจนเฉ‹เจฐ เจธเฉเจฐเฉฑเจ–เจฟเจ…เจค เจ•เจฐเจจ เจฒเจˆ OpenBSD เจ•เฉ‹เจกเจฌเฉ‡เจธ เจตเจฟเฉฑเจš เจชเฉˆเจšเจพเจ‚ เจฆเฉ€ เจ‡เฉฑเจ• เจฒเฉœเฉ€ เจœเฉ‹เฉœเฉ€ เจนเฉˆเฅค เจกเจฟเจตเฉˆเจฒเจชเจฐเจพเจ‚ เจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจจเจตเฉ€เจ‚ เจธเจฟเจธเจŸเจฎ เจ•เจพเจฒ เจ…เจคเฉ‡ เจ‰เจธเฉ‡ เจจเจพเจฎ เจฆเฉ‡ เจธเฉฐเจฌเฉฐเจงเจฟเจค เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€ เจซเฉฐเจ•เจธเจผเจจ เจฆเฉ€ เจชเฉ‡เจธเจผเจ•เจธเจผ เจ•เฉ€เจคเฉ€ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆ, เจฎเจฟเจฎเฉ‚เจŸเฉ‡เจฌเจฒ, เจœเฉ‹ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจฎเฉˆเจฎเฉ‹เจฐเฉ€ (เจฎเฉˆเจฎเฉ‹เจฐเฉ€ เจฎเฉˆเจชเจฟเฉฐเจ—) เจตเจฟเฉฑเจš เจชเฉเจฐเจคเฉ€เจฌเจฟเฉฐเจฌเจค เจนเฉ‹เจฃ เจตเฉ‡เจฒเฉ‡ เจชเจนเฉเฉฐเจš เจ…เจงเจฟเจ•เจพเจฐเจพเจ‚ เจจเฉ‚เฉฐ เจ เฉ€เจ• เจ•เจฐเจจ เจฆเฉ€ เจ†เจ—เจฟเจ† เจฆเจฟเฉฐเจฆเจพ เจนเฉˆเฅค เจ•เจฎเจฟเจŸ เจ•เจฐเจจ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ, เจฎเฉˆเจฎเฉ‹เจฐเฉ€ เจ–เฉ‡เจคเจฐ เจฒเจˆ เจธเฉˆเฉฑเจŸ เจ•เฉ€เจคเฉ‡ เจ—เจ เจ…เจงเจฟเจ•เจพเจฐ, เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจฒเจฟเจ–เจฃ เจ…เจคเฉ‡ เจšเจฒเจพเจ‰เจฃ เจฆเฉ€ เจฎเจจเจพเจนเฉ€, เจจเฉ‚เฉฐ เจฌเจพเจ…เจฆ เจตเจฟเฉฑเจš mmap(), mprotect() เจ…เจคเฉ‡ munmap() เจซเฉฐเจ•เจธเจผเจจเจพเจ‚ เจจเฉ‚เฉฐ เจ…เจ—เจฒเฉ€เจ†เจ‚ เจ•เจพเจฒเจพเจ‚ เจฐเจพเจนเฉ€เจ‚ เจฌเจฆเจฒเจฟเจ† เจจเจนเฉ€เจ‚ เจœเจพ เจธเจ•เจฆเจพ, เจœเฉ‹ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจ•เจฐเจจ เจตเฉ‡เจฒเฉ‡ เจ‡เฉฑเจ• EPERM เจ—เจฒเจคเฉ€ เจชเฉˆเจฆเจพ เจ•เจฐเฉ‡เจ—เจพเฅค เจคเจฌเจฆเฉ€เจฒเฉ€ เจ•เจฐเจจ เจฒเจˆ.

เจ†เจฌเจœเฉˆเจ•เจŸ เจซเจพเจˆเจฒเจพเจ‚ เจฒเจˆ เจชเฉเจฐเจคเฉ€เจฌเจฟเฉฐเจฌเจฟเจค เจฎเฉˆเจฎเฉ‹เจฐเฉ€ เจฆเฉ‡ เจ…เจงเจฟเจ•เจพเจฐเจพเจ‚ เจจเฉ‚เฉฐ เจฌเจฆเจฒเจฃ เจฆเฉ€ เจฏเฉ‹เจ—เจคเจพ เจจเฉ‚เฉฐ เจจเจฟเจฏเฉฐเจคเจฐเจฟเจค เจ•เจฐเจจ เจฒเจˆ, เจ‡เฉฑเจ• เจจเจตเจพเจ‚ เจฎเจฟเจŠเจŸเฉ‡เจฌเจฒ BSS เจธเฉˆเจ•เจธเจผเจจ (.openbsd.mutable, Mutable Block Starting Symbol) เจชเฉเจฐเจธเจคเจพเจตเจฟเจค เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆ, เจ…เจคเฉ‡ เจจเจตเฉ‡เจ‚ เจซเจฒเฉˆเจ— PF_MUTABLE เจ…เจคเฉ‡ UVM_ET_IMMUTABLE เจธเจผเจพเจฎเจฒ เจ•เฉ€เจคเฉ‡ เจ—เจ เจนเจจเฅค "openbsd.mutable" เจญเจพเจ—เจพเจ‚ เจจเฉ‚เฉฐ เจชเจฐเจฟเจญเจพเจธเจผเจฟเจค เจ•เจฐเจจ เจ…เจคเฉ‡ เจ‰เจนเจจเจพเจ‚ เจจเฉ‚เฉฐ BSS เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจตเฉฑเจ–เจฐเฉ‡ เจ–เฉ‡เจคเจฐ เจตเจฟเฉฑเจš เจฐเฉฑเจ–เจฃ เจฒเจˆ เจฒเจฟเฉฐเจ•เจฐ เจฒเจˆ เจธเจฎเจฐเจฅเจจ เจœเฉ‹เฉœเจฟเจ† เจ—เจฟเจ† เจนเฉˆ, เจ‡เฉฑเจ• เจฎเฉˆเจฎเฉ‹เจฐเฉ€ เจชเฉฐเจจเฉ‡ เจฆเฉ€ เจธเฉ€เจฎเจพ เจจเจพเจฒ เจœเฉ‹เฉœเจฟเจ† เจ—เจฟเจ† เจนเฉˆเฅค เจฎเจฟเจฎเฉ‚เจŸเฉ‡เจฌเจฒ เจซเฉฐเจ•เจธเจผเจจ เจจเฉ‚เฉฐ เจ•เจพเจฒ เจ•เจฐเจ•เฉ‡, "openbsd.mutable" เจฎเจพเจฐเจ• เจ•เฉ€เจคเฉ‡ เจญเจพเจ—เจพเจ‚ เจฆเฉ‡ เจ…เจชเจตเจพเจฆ เจฆเฉ‡ เจจเจพเจฒ, เจธเจพเจฐเฉ‡ เจชเฉเจฐเจคเฉ€เจฌเจฟเฉฐเจฌ เจ•เฉ€เจคเฉ‡ เจ–เฉ‡เจคเจฐเจพเจ‚ เจจเฉ‚เฉฐ เจ…เจŸเฉฑเจฒ เจตเจœเฉ‹เจ‚ เจšเจฟเฉฐเจจเฉเจนเจฟเจค เจ•เจฐเจจเจพ เจธเฉฐเจญเจต เจนเฉˆเฅค เจจเจตเฉ€เจ‚ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพ OpenBSD 7.3 เจฐเฉ€เจฒเฉ€เจœเจผ เจตเจฟเฉฑเจš เจ‰เจชเจญเฉ‹เจ—เจคเจพเจตเจพเจ‚ เจฒเจˆ เจฐเฉ‹เจฒเจ†เจŠเจŸ เจ•เฉ€เจคเฉ€ เจœเจพเจตเฉ‡เจ—เฉ€เฅค

เจธเจฐเฉ‹เจค: opennet.ru

เจ‡เฉฑเจ• เจŸเจฟเฉฑเจชเจฃเฉ€ เจœเฉ‹เฉœเฉ‹