ΠΠ΄Π΅Π½ ΠΎΠ΄ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ΅ΡΠΈΡΠ΅ ΠΎΠ΄ Google
Π Π°Π·Π²ΠΎΡΠΎΡ Π½Π° LLVM Π½Π΅ΠΎΠ΄Π°ΠΌΠ½Π° ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ ΠΊΠ°ΠΊΠΎ ΠΎΡΠ½ΠΎΠ²Π° Π·Π° Π³ΡΠ°Π΄Π΅ΡΠ΅ Π½Π° Π°Π»Π°ΡΠΊΠΈΡΠ΅ Π·Π° ΡΠΊΠ»ΠΎΠΏΡΠ²Π°ΡΠ΅ Π½Π° Google. ΠΠ»Π°Π²Π½Π°ΡΠ° ΠΈΠ΄Π΅ΡΠ° Π΅ Π΄Π΅ΠΊΠ° Π°ΠΊΠΎ Google Π²Π΅ΡΠ΅ ΠΏΠΎΡΠ½Π° Π΄Π° Π³ΠΎ ΡΠ°Π·Π²ΠΈΠ²Π° ΡΠ²ΠΎΡΠΎΡ libc, ΡΠΎΠ³Π°Ρ Π·ΠΎΡΡΠΎ Π²Π΅Π΄Π½Π°Ρ Π΄Π° Π½Π΅ Π³ΠΎ ΡΠ°Π·Π²ΠΈΠ΅ ΡΠ²ΠΎΡΠΎΡ ΡΠΈΡΡΠ΅ΠΌ ΠΊΠ°ΠΊΠΎ Π΄Π΅Π» ΠΎΠ΄ LLVM, ΠΊΠΎΡ Π²Π΅ΡΠ΅ Π½ΡΠ΄ΠΈ ΡΠ²ΠΎΡΠ° ΡΡΠ°Π½Π΄Π°ΡΠ΄Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π·Π° C++ (Libc++), Π½ΠΎ Π½Π΅ΠΌΠ° ΡΠ»ΠΈΡΠ½Π° ΡΡΠ°Π½Π΄Π°ΡΠ΄Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π·Π° C (libc).
Π Π°Π·Π²ΠΎΡΠΎΡ ΡΠ΅ ΠΏΠ»Π°Π½ΠΈΡΠ° Π΄Π° ΡΠ΅ Π²ΡΡΠΈ Π²ΠΎ ΡΠ°Π·ΠΈ, ΠΏΠΎΡΡΠ΅ΠΏΠ΅Π½ΠΎ Π·Π³ΠΎΠ»Π΅ΠΌΡΠ²Π°ΡΡΠΈ ΡΠ° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡΠ°. ΠΡΠ²ΠΈΡΠ΅ ΠΎΠΏΡΠΈΠΈ ΡΠ΅ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π°Ρ Π΄Π° Π±ΠΈΠ΄Π°Ρ Π΄ΠΈΠ·Π°ΡΠ½ΠΈΡΠ°Π½ΠΈ ΠΊΠ°ΠΊΠΎ ΡΠ»ΠΎΡ ΠΏΠΎΠΌΠ΅ΡΡ Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ°ΡΠ° ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΎΡ Libc, ΠΎΠ΄ ΠΊΠΎΡ ΡΠ΅ Π±ΠΈΠ΄Π°Ρ ΠΏΠΎΠ·Π°ΡΠΌΠ΅Π½ΠΈ ΠΊΠ°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ ΠΊΠΎΠΈ ΡΓ¨ ΡΡΡΠ΅ Π½Π΅ ΡΠ΅ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠΈΡΠ°Π½ΠΈ. ΠΠΎ ΠΏΠΎΡΡΠΈΠ³Π½ΡΠ²Π°ΡΠ΅ Π½Π° ΠΎΠ΄ΡΠ΅Π΄Π΅Π½ΠΎ Π½ΠΈΠ²ΠΎ Π½Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ, Π½ΠΎΠ²ΠΈΠΎΡ Libc ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ ΠΊΠ°ΠΊΠΎ ΡΠ΅Π»ΠΎΡΠ½Π° Π·Π°ΠΌΠ΅Π½Π° Π·Π° ΡΠΈΡΡΠ΅ΠΌΠΎΡ Libc. ΠΠ»Π°Π½ΠΈΡΠ°ΠΌΠ΅ Π΄Π° Π·Π°ΠΏΠΎΡΠ½Π΅ΠΌΠ΅ ΡΠΎ ΠΏΠΎΠ΄Π΄ΡΡΠΊΠ° Π·Π° x86-64 Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°, Linux ΠΈ ΡΡΠ°ΡΠΈΡΠΊΠΎ ΠΏΠΎΠ²ΡΠ·ΡΠ²Π°ΡΠ΅ (Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ½ΠΎ Π²ΡΠΈΡΡΠ²Π°ΡΠ΅, ΠΏΠΎΠ²ΡΠ·ΡΠ²Π°ΡΠ΅ ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠΈ ΡΠ΅ ΡΠ΅ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠΈΡΠ°Π°Ρ ΡΠ΅ΠΊΡΠ½Π΄Π°ΡΠ½ΠΎ).
ΠΡΠΎΠ΅ΠΊΡΠΎΡ ΡΠ΅ ΡΡΡΠ΅ Π΅ Π²ΠΎ ΠΏΠΎΡΠ΅ΡΠ½Π° ΡΠ°Π·Π° Π½Π° ΡΠ°Π·Π²ΠΎΡ, Π½ΠΎ Π²Π΅ΡΠ΅ ΡΠ΅ Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°Π½ΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡΠ΅ ΡΠ΅Π»ΠΈ:
- ΠΠΎΠ΄ΡΠ»Π°ΡΠ½ΠΎΡΡ ΠΈ ΡΠ°Π·Π²ΠΎΡ Π²ΠΎ ΡΠΎΠ³Π»Π°ΡΠ½ΠΎΡΡ ΡΠΎ ΡΠΈΠ»ΠΎΠ·ΠΎΡΠΈΡΠ°ΡΠ° Π½Π° ΠΈΡΠΏΠΎΡΠ°ΠΊΠ° Π½Π° Π·ΡΠ½Π΅ΡΡΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π½Π°ΠΌΠ΅ΡΡΠΎ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡΠ΅Π½ ΡΠ΅Ρ;
- ΠΠΎΠ΄Π΄ΡΡΠΊΠ° Π·Π° ΡΡΠ°ΡΠΈΡΠΊΠΎ ΠΏΠΎΠ²ΡΠ·ΡΠ²Π°ΡΠ΅ Π²ΠΎ ΡΠ΅ΠΆΠΈΠΌΠΈ ΡΠΎ
ΠΠΈΡΠ° (ΠΠΎΠ·ΠΈΡΠΈΠΎΠ½ΠΎ-Π½Π΅Π·Π°Π²ΠΈΡΠ½ΠΈ ΠΈΠ·Π²ΡΡΠ½ΠΈ Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈ) ΠΈ Π±Π΅Π· PIE. ΠΠ±Π΅Π·Π±Π΅Π΄ΡΠ²Π°ΡΠ΅ CRT (C runtime) ΠΈ PIE ΠΏΠΎΠ΄ΠΈΠ³Π½ΡΠ²Π°Ρ Π·Π° ΡΡΠ°ΡΠΈΡΠΊΠΈ ΠΏΠΎΠ²ΡΠ·Π°Π½ΠΈ ΠΈΠ·Π²ΡΡΠ½ΠΈ Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈ; - ΠΠΎΠ΄Π΄ΡΡΠΊΠ° Π·Π° ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠΎ ΠΎΠ΄ ΡΡΠ°Π½Π΄Π°ΡΠ΄Π½ΠΈΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° C, ΡΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΡΠ²Π°ΡΠ° Π½Π° POSIX ΠΈ Π½Π΅ΠΊΠΎΠΈ ΠΏΡΠΎΡΠΈΡΡΠ²Π°ΡΠ° ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΠΈ Π·Π° ΡΠΈΡΡΠ΅ΠΌΠΎΡ ΡΡΠΎ Π³ΠΈ Π±Π°ΡΠ°Π°Ρ ΠΏΠΎΡΡΠΎΠ΅ΡΠΊΠΈΡΠ΅ Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ;
- ΠΠΈΠ΄Π΅ΡΠ΅ Π²Π½ΠΈΠΌΠ°ΡΠ΅Π»Π½ΠΈ ΡΠΎ Π΅ΠΊΡΡΠ΅Π½Π·ΠΈΠΈ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΠΈ Π·Π° ΠΏΡΠΎΠ΄Π°Π²Π°ΡΠΎΡ ΠΈ Π΄ΠΎΠ΄Π°Π²Π°ΡΡΠ΅ Π³ΠΈ ΡΠ°ΠΌΠΎ ΠΊΠΎΠ³Π° Π΅ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎ. ΠΠΎ ΠΎΠ΄Π½ΠΎΡ Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΊΠ°ΡΠ° Π·Π° Π΅ΠΊΡΡΠ΅Π½Π·ΠΈΠΈ ΠΎΠ΄ ΡΡΠ΅ΡΠΈ ΡΡΡΠ°Π½ΠΈ, ΡΠ΅ ΠΏΡΠ΅Π΄Π»Π°Π³Π° Π΄Π° ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ ΠΏΡΠΈΡΡΠ°ΠΏΠΎΡ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠ΅ Clang ΠΈ libc++;
- ΠΠΎΡΠΈΡΡΠ΅ΡΠ΅ Π½Π° Π½Π°ΡΠ΄ΠΎΠ±ΡΠΈΡΠ΅ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ Π²ΠΎ ΡΠ°Π·Π²ΠΎΡΠΎΡ ΡΠΎ ΠΏΠΎΠΌΠΎΡ Π½Π° ΠΏΡΠΈΡΠ°ΡΠ½ΠΈΠΊΠΎΡ Π·Π° Π°Π»Π°ΡΠΊΠΈ LLVM, ΠΊΠ°ΠΊΠΎ ΡΡΠΎ Π΅ ΡΠΏΠΎΡΡΠ΅Π±Π°ΡΠ° Π½Π° ΡΡΠ΅Π΄ΡΡΠ²Π° Π·Π° Π΄Π΅Π·ΠΈΠ½ΡΠ΅ΠΊΡΠΈΡΠ° ΠΈ fuzz ΡΠ΅ΡΡΠΈΡΠ°ΡΠ΅ ΠΎΠ΄ ΡΠ°ΠΌΠΈΠΎΡ ΠΏΠΎΡΠ΅ΡΠΎΠΊ.
ΠΠ΄Π΅Π½ ΠΎΠ΄ Π°ΠΊΡΠΈΠ²Π½ΠΈΡΠ΅ ΡΠ°Π·Π²ΠΈΠ²Π°ΡΠΈ Π½Π° LLVM
ΠΠ°ΡΠ΅ ΠΌΠΈΡΠ»Π΅ΡΠ΅ ΠΈΡΡΠΎ ΡΠ°ΠΊΠ°
- Π Π°Π·Π²ΠΈΠ²Π°ΡΠ΅ΡΠΎ ΠΈ ΠΎΠ΄ΡΠΆΡΠ²Π°ΡΠ΅ΡΠΎ Π½Π° ΠΏΡΠ°Π²ΠΈΠ»Π΅Π½, ΠΊΠΎΠΌΠΏΠ°ΡΠΈΠ±ΠΈΠ»Π΅Π½ ΠΈ Π²ΠΈΡΠΎΠΊΠΎΠΊΠ²Π°Π»ΠΈΡΠ΅ΡΠ΅Π½ Libc Π΅ ΠΌΠ½ΠΎΠ³Ρ ΡΠ΅ΡΠΊΠ° Π·Π°Π΄Π°ΡΠ°. ΠΡΠΎΠ±Π»Π΅ΠΌΠΎΡ Π½Π΅ Π΅ Π²ΠΎ ΠΊΠΎΠ»ΠΈΡΠΈΠ½Π°ΡΠ° Π½Π° ΠΊΠΎΠ΄ΠΎΡ, ΡΡΠΊΡ Π²ΠΎ ΠΎΠ±Π΅Π·Π±Π΅Π΄ΡΠ²Π°ΡΠ΅ΡΠΎ ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎ ΠΎΠ΄Π½Π΅ΡΡΠ²Π°ΡΠ΅ ΠΈ ΡΠ΅ΡΠΊΠΎΡΠΈΠΈ Π²ΠΎ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠ°ΡΠ° Π½Π° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΡΡΠΈ, Π·Π΅ΠΌΠ°ΡΡΠΈ Π³ΠΎ ΠΏΡΠ΅Π΄Π²ΠΈΠ΄ ΠΎΠ³ΡΠΎΠΌΠ½ΠΈΠΎΡ ΡΠ»ΠΎΡ Π½Π° Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈ Π²ΠΎ C/C++, ΠΊΠ°ΠΊΠΎ ΠΈ Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈΡΠ΅ Π½Π° Π΄ΡΡΠ³ΠΈ ΡΠ°Π·ΠΈΡΠΈ, ΡΠΈΠ΅ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΡΠ°Π±ΠΎΡΠ° ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ ΠΎΠ΄ Libc. ΠΠΈΡΠ΅ΠΊΡΠ΅Π½ ΠΏΡΠΈΡΡΠ°ΠΏ Π±Π΅Π· Π΄Π° ΡΠ΅ Π·Π΅ΠΌΠ°Ρ ΠΏΡΠ΅Π΄Π²ΠΈΠ΄ Π½ΠΈΡΠ°Π½ΡΠΈΡΠ΅ ΡΠ°ΠΌΠΎ ΡΠ΅ Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ ΡΠ°ΠΊΡΠΎΡ Π΄Π΅ΠΊΠ° ΠΌΠ½ΠΎΠ³Ρ ΠΏΠΎΡΡΠΎΠ΅ΡΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ Π½Π΅ΠΌΠ° Π΄Π° ΠΌΠΎΠΆΠ°Ρ Π΄Π° ΡΠ°Π±ΠΎΡΠ°Ρ ΡΠΎ Libc, Π½ΠΎ ΡΠΎΠ³Π°Ρ ΡΠ°ΠΊΠΎΠ² ΠΏΡΠΎΠ΅ΠΊΡ Π½Π΅ΠΌΠ° Π΄Π° Π±ΠΈΠ΄Π΅ ΠΎΠ΄ ΠΈΠ½ΡΠ΅ΡΠ΅Ρ Π·Π° ΠΏΠΎΡΡΠΎΡΡΠ²Π°ΡΠΈΡΠ΅.
- ΠΠΎΡΠΏΠΎΡΠ°ΡΠΈΠ²Π½ΠΈΠΎΡ ΡΠ°Π·Π²ΠΎΡ ΠΌΠΎΠΆΠ΅ Π΄Π° Π³ΠΎ ΡΠ½ΠΈΡΡΠΈ Libc, Π½ΠΎ Π³ΠΎ ΡΡΡΠΊΠ° Π²ΠΎ ΡΠΈΡΠΎΠΊΠ° ΡΠΏΠΎΡΡΠ΅Π±Π°, ΡΡΠΎ ΡΠ΅Π·ΡΠ»ΡΠΈΡΠ° ΡΠΎ ΠΏΠΎΡΡΠ΅Π±Π° ΠΎΠ΄ Π΄ΠΎΠ΄Π°Π²Π°ΡΠ΅ Ρ Π°ΠΊΠΎΠ²ΠΈ Π·Π° Π΄Π° ΡΠ΅ ΠΎΠ±Π΅Π·Π±Π΅Π΄ΠΈ ΠΊΠΎΠΌΠΏΠ°ΡΠΈΠ±ΠΈΠ»Π½ΠΎΡΡ Π²ΠΎ Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈΡΠ΅. Π Π°Π·Π²ΠΎΡΠΎΡ ΠΏΠΎΠ΄ ΠΏΠΎΠΊΡΠΎΠ²ΠΈΡΠ΅Π»ΡΡΠ²ΠΎ Π½Π° ΠΊΠΎΡΠΏΠΎΡΠ°ΡΠΈΠ²Π΅Π½ ΠΏΡΠΎΠ΅ΠΊΡ ΡΠΎ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄ ΡΠ΅ Π³ΠΎ ΠΏΠΎΠ²Π»Π΅ΡΠ΅ ΡΠ΅Π±Π΅ΡΠΎ ΠΊΠΎΠ½ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅ ΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡΠ°ΡΠ° Π½Π° ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡΠ°ΡΠ°, Π½Π° ΡΡΠ΅ΡΠ° Π½Π° ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠΈΡΠ΅ Π½Π° Π·Π°Π΅Π΄Π½ΠΈΡΠ°ΡΠ°. ΠΠ° ΠΏΡΠΈΠΌΠ΅Ρ, Π°ΠΊΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΡΠ²Π°ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΡΡΠΎ Π΅ ΠΏΡΠ΅Π΄ΠΈΠ·Π²ΠΈΠΊΠ°Π½ ΠΎΠ΄ Π³ΡΠ΅ΡΠΊΠ° Π²ΠΎ Π΄ΡΡΠ³Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ°, Π²ΠΎ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΠ°Π½ΠΈΠΎΡ ΡΠ°Π·Π²ΠΎΡ ΠΏΠΎΠ»Π΅ΡΠ½ΠΎ Π΅ Π΄Π° ΡΠ΅ ΠΎΡΠΈΠ³ΡΡΠ°ΡΠ΅ Π΄Π΅ΠΊΠ° Libc Π΅ ΠΊΠΎΠΌΠΏΠ°ΡΠΈΠ±ΠΈΠ»Π΅Π½ ΡΠΎ ΠΎΠ²Π°Π° Π³ΡΠ΅ΡΠΊΠ° ΠΎΡΠΊΠΎΠ»ΠΊΡ Π΄Π° ΡΠ΅ ΠΏΠΎΠΏΡΠ°Π²ΠΈ ΡΠ°ΠΌΠ°ΡΠ° Π³ΡΠ΅ΡΠΊΠ°. Apple ΡΠ° ΠΊΠΎΡΠΈΡΡΠΈ Π²ΠΈΠ»ΡΡΠΊΠ°ΡΠ° BSD libc Π·Π° ΠΎΠ²ΠΈΠ΅ ΡΠ΅Π»ΠΈ, Π° Google ΡΠ° ΠΊΠΎΡΠΈΡΡΠΈ Π²ΠΈΠ»ΡΡΠΊΠ°ΡΠ° musl Π²ΠΎ ΠΎΠ±ΠΈΡΠΊΠ°. ΠΡΠΊΡΡΡΠ²ΠΎΡΠΎ Π½Π° ΡΠ°Π·Π²ΠΈΠ²Π°ΡΠΎΡ Π½Π° musl Π΅ Π΄Π΅ΠΊΠ° ΡΠΎΡ Π±ΠΈΠ» ΠΊΠΎΠ½ΡΠ°ΠΊΡΠΈΡΠ°Π½ Π³Π»Π°Π²Π½ΠΎ ΠΎΠ΄ Π°Π΄Π²ΠΎΠΊΠ°ΡΠΈ Π·Π° Π΄Π° ΡΠ΅ ΡΠ°Π·ΡΠ°ΡΠ½Π°Ρ ΠΏΡΠ°ΡΠ°ΡΠ°ΡΠ° Π·Π° Π»ΠΈΡΠ΅Π½ΡΠΈΡΠ°ΡΠ΅, Π½ΠΎ Π½ΠΈΠΊΠΎΠ³Π°Ρ Π½Π΅ Π±ΠΈΠ» ΠΊΠΎΠ½ΡΠ°ΠΊΡΠΈΡΠ°Π½ Π·Π° Π΄Π° ΡΠ΅ ΡΠ°Π·ΡΠ°ΡΠ½Π°Ρ ΡΠ΅Ρ Π½ΠΈΡΠΊΠΈΡΠ΅ Π΄Π΅ΡΠ°Π»ΠΈ ΠΏΡΠ΅Π΄ Π΄Π° ΡΠ΅ Π½Π°ΠΏΡΠ°Π²Π°Ρ Π±Π΅ΡΠΊΠΎΡΠΈΡΠ½ΠΈ ΠΈ Π²ΠΎΠ·Π½Π΅ΠΌΠΈΡΡΠ²Π°ΡΠΊΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π²ΠΎ Π½Π΅Π³ΠΎΠ²ΠΈΡΠ΅ ΡΠΈΠ»ΠΈΡΠ°Π»ΠΈ.
- ΠΡΡΡΡΡΠ²ΠΎΡΠΎ Π½Π° ΠΌΠΎΠ½ΠΎΠΊΡΠ»ΡΡΡΠ° Π²ΠΎ ΡΠ°Π·Π²ΠΎΡΠΎΡ Π½Π° libc ΠΈ ΡΠΎΠΊΡΡΠΈΡΠ°ΡΠ΅ Π½Π° ΡΡΠ°Π½Π΄Π°ΡΠ΄ΠΈ Π²ΠΎΠ΄Π΅Π½ΠΈ ΠΎΠ΄ ΠΊΠΎΠ½ΡΠ΅Π½Π·ΡΡ Π½Π°ΠΌΠ΅ΡΡΠΎ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡΠ°Π»Π½Π° ΠΊΠΎΠ½ΡΡΠΎΠ»Π°, ΡΡΠΎ Π³ΠΈ ΠΌΠΎΡΠΈΠ²ΠΈΡΠ° ΡΠ°Π·Π²ΠΈΠ²Π°ΡΠΈΡΠ΅ Π½Π° Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ Π΄Π° ΠΊΠΎΡΠΈΡΡΠ°Ρ ΡΡΠ°Π½Π΄Π°ΡΠ΄ΠΈ Π½Π°ΠΌΠ΅ΡΡΠΎ Π΄Π° ΡΠ΅ Π²ΡΠ·ΡΠ²Π°Π°Ρ Π·Π° ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΠΈ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ. ΠΠ°ΡΠΎΠ° Π°Π²ΡΠΎΡΠΎΡ Π½Π° musl Π΅ ΠΏΡΠΎΡΠΈΠ² Π²ΠΊΠ»ΡΡΡΠ²Π°ΡΠ΅ΡΠΎ Π½Π° Π½Π΅Π³ΠΎΠ²Π°ΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π²ΠΎ LLVM, ΠΊΠ°ΠΊΠΎ ΠΈ ΠΏΡΠΎΡΠΈΠ² ΡΠ°Π·Π²ΠΎΡΠΎΡ Π½Π° libc Π²ΠΎ ΡΠ°ΠΌΠΊΠΈΡΠ΅ Π½Π° LLVM, Π±ΠΈΠ΄Π΅ΡΡΠΈ Π²ΠΎ ΠΎΠ²ΠΎΡ ΡΠ»ΡΡΠ°Ρ ΡΠ΅ Π³ΡΠ±ΠΈ Π½Π΅Π·Π°Π²ΠΈΡΠ½Π°ΡΠ° ΠΏΡΠΈΡΠΎΠ΄Π° Π½Π° libc ΠΈ ΠΎΠ΄ΡΠ΅Π΄Π΅Π½Π° ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠ° ΡΡΠ°Π½ΡΠ²Π° ΠΏΡΠ²ΠΎΠΊΠ»Π°ΡΠ½ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π·Π° LLVM, ΠΈ ΡΠΈΡΠ΅ Π΄ΡΡΠ³ΠΈ ΡΡΠ°Π½ΡΠ²Π°Π°Ρ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ΄ Π²ΡΠΎΡΠ° ΠΊΠ»Π°ΡΠ°.
ΠΠ·Π²ΠΎΡ: opennet.ru