DLL (англ. Dynamic-link library — динамічно приєднувана бібліотека) — реалізовані компанією Microsoft загальні бібліотеки в ОС Windows та (OS/2). Як правило, бібліотеки мають розширення файлу *.dll, *.ocx (для бібліотек, що містять елементи керування ActiveX) або *.drv (драйвери старих версій ОС). Структура DLL така сама, як і в PE-файлів ([en]) для 32-, 64-розрядних Windows, та [en] (NE) для 16-бітових Windows. DLL може містити код, дані та ресурси в будь-якій комбінації.
Популярний вступ
Різні програми багатовіконного середовища часто виконують однакові дії, наприклад, хрестик в правому верхньому куті вікна, який закриває його, малюється більшістю програм однаково. Марнотратно було б, щоб кожна із цих програм мала відповідну функцію — це роздувало б їхні розміри. Тому, розумно, щоб такі функції поступали в спільне користування. Для цього служать бібліотеки з динамічним зв'язуванням. Відповідні функції завантажуються в пам'ять комп'ютера не з файлу програми, а зі спеціального файлу, вже при виконанні. Насправді, операційна система не завантажує їх повторно. Якщо програма при запуску вимагає завантаження динамічної бібліотеки, то операційна система перевіряє, чи така бібліотека вже є в оперативній пам'яті. Якщо вона є, то операційна система збільшує лічильник клієнтів для динамічної бібліотеки на одиницю. При завершенні роботи, програма повідомляє операційну систему про необхідність вивантажити динамічну бібліотеку. При цьому операційна система зменшує лічильник клієнтів на одиницю. Якщо після такого зменшення кількість клієнтів стає рівною нулю, то тоді динамічна бібліотека справді вивантажується із оперативної пам'яті комп'ютера.
Під Windows динамічні бібліотеки зберігаються в файлах із розширенням *.dll. Крім підпрограм там можуть також зберігатися інші ресурси, наприклад, іконки чи бітмапи. В коді програми, що використовує функції з динамічної бібліотеки, завантаження та вивантаження бібліотеки повинні бути прописані безпосередньо. Компілятору не потрібен код функцій, що містяться в динамічних бібліотеках. При запуску програми, вона, однак, шукатиме відповідну dll. Якщо така dll не знайдена на комп'ютері, то програма здебільшого виконуватися не буде, а видасть повідомлення про відсутність динамічної бібліотеки.
Джерела
- dllexport, dllimport[недоступне посилання з лютого 2019] on MSDN
- Dynamic-Link Libraries [Архівовано 9 січня 2017 у Wayback Machine.] on MSDN
- Dynamic-Link Library Security [Архівовано 28 травня 2017 у Wayback Machine.] on MSDN
- Dynamic-Link Library Search Order [Архівовано 27 серпня 2016 у Wayback Machine.] on MSDN
- Microsoft Security Advisory: Insecure library loading could allow remote code execution [Архівовано 15 жовтня 2016 у Wayback Machine.]
- What is a DLL? [Архівовано 23 серпня 2016 у Wayback Machine.] on Microsoft support site
- Dynamic-Link Library Functions [Архівовано 4 березня 2016 у Wayback Machine.] on MSDN
- Microsoft Portable Executable and Common Object File Format Specification [Архівовано 8 грудня 2008 у Wayback Machine.]
- Microsoft specification for dll files
- Carpet Bombing and Directory Poisoning [Архівовано 26 серпня 2016 у Wayback Machine.]
- MS09-014: Addressing the Safari Carpet Bomb vulnerability [Архівовано 5 січня 2016 у Wayback Machine.]
- More information about the DLL Preloading remote attack vector [Архівовано 1 січня 2016 у Wayback Machine.]
- An update on the DLL-preloading remote attack vector [Архівовано 5 січня 2016 у Wayback Machine.]
- Load Library Safely [Архівовано 5 січня 2016 у Wayback Machine.]
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Nemaye perevirenih versij ciyeyi storinki jmovirno yiyi she ne pereviryali na vidpovidnist pravilam proektu DLL angl Dynamic link library dinamichno priyednuvana biblioteka realizovani kompaniyeyu Microsoft zagalni biblioteki v OS Windows ta OS 2 Yak pravilo biblioteki mayut rozshirennya fajlu dll ocx dlya bibliotek sho mistyat elementi keruvannya ActiveX abo drv drajveri starih versij OS Struktura DLL taka sama yak i v PE fajliv Portable Executable en dlya 32 64 rozryadnih Windows ta New Executable en NE dlya 16 bitovih Windows DLL mozhe mistiti kod dani ta resursi v bud yakij kombinaciyi Ikonka fajlu dll u WindowsPopulyarnij vstupred Rizni programi bagatovikonnogo seredovisha chasto vikonuyut odnakovi diyi napriklad hrestik v pravomu verhnomu kuti vikna yakij zakrivaye jogo malyuyetsya bilshistyu program odnakovo Marnotratno bulo b shob kozhna iz cih program mala vidpovidnu funkciyu ce rozduvalo b yihni rozmiri Tomu rozumno shob taki funkciyi postupali v spilne koristuvannya Dlya cogo sluzhat biblioteki z dinamichnim zv yazuvannyam Vidpovidni funkciyi zavantazhuyutsya v pam yat komp yutera ne z fajlu programi a zi specialnogo fajlu vzhe pri vikonanni Naspravdi operacijna sistema ne zavantazhuye yih povtorno Yaksho programa pri zapusku vimagaye zavantazhennya dinamichnoyi biblioteki to operacijna sistema pereviryaye chi taka biblioteka vzhe ye v operativnij pam yati Yaksho vona ye to operacijna sistema zbilshuye lichilnik kliyentiv dlya dinamichnoyi biblioteki na odinicyu Pri zavershenni roboti programa povidomlyaye operacijnu sistemu pro neobhidnist vivantazhiti dinamichnu biblioteku Pri comu operacijna sistema zmenshuye lichilnik kliyentiv na odinicyu Yaksho pislya takogo zmenshennya kilkist kliyentiv staye rivnoyu nulyu to todi dinamichna biblioteka spravdi vivantazhuyetsya iz operativnoyi pam yati komp yutera Pid Windows dinamichni biblioteki zberigayutsya v fajlah iz rozshirennyam dll Krim pidprogram tam mozhut takozh zberigatisya inshi resursi napriklad ikonki chi bitmapi V kodi programi sho vikoristovuye funkciyi z dinamichnoyi biblioteki zavantazhennya ta vivantazhennya biblioteki povinni buti propisani bezposeredno Kompilyatoru ne potriben kod funkcij sho mistyatsya v dinamichnih bibliotekah Pri zapusku programi vona odnak shukatime vidpovidnu dll Yaksho taka dll ne znajdena na komp yuteri to programa zdebilshogo vikonuvatisya ne bude a vidast povidomlennya pro vidsutnist dinamichnoyi biblioteki Dzherelared dllexport dllimport nedostupne posilannya z lyutogo 2019 on MSDN Dynamic Link Libraries Arhivovano 9 sichnya 2017 u Wayback Machine on MSDN Dynamic Link Library Security Arhivovano 28 travnya 2017 u Wayback Machine on MSDN Dynamic Link Library Search Order Arhivovano 27 serpnya 2016 u Wayback Machine on MSDN Microsoft Security Advisory Insecure library loading could allow remote code execution Arhivovano 15 zhovtnya 2016 u Wayback Machine What is a DLL Arhivovano 23 serpnya 2016 u Wayback Machine on Microsoft support site Dynamic Link Library Functions Arhivovano 4 bereznya 2016 u Wayback Machine on MSDN Microsoft Portable Executable and Common Object File Format Specification Arhivovano 8 grudnya 2008 u Wayback Machine Microsoft specification for dll files Carpet Bombing and Directory Poisoning Arhivovano 26 serpnya 2016 u Wayback Machine MS09 014 Addressing the Safari Carpet Bomb vulnerability Arhivovano 5 sichnya 2016 u Wayback Machine More information about the DLL Preloading remote attack vector Arhivovano 1 sichnya 2016 u Wayback Machine An update on the DLL preloading remote attack vector Arhivovano 5 sichnya 2016 u Wayback Machine Load Library Safely Arhivovano 5 sichnya 2016 u Wayback Machine Otrimano z https uk wikipedia org wiki Dynamic link library