Бачу, що ви пішли за тими поняттями, які я вам назвав.
Небезпечна завантаження dll. Це ситуація при якій програма намагається завантажити одну dll, а завантажує іншу.
Чим це загрожує: це найпростіший спосіб впровадити свій код в адресний простір іншого процесу, а значить працювати з тим рівнем прав і доступу, що і процес.
Чому так трапляється: процес може довантажити dll двома способами: по повному шляху і по короткому імені. Якщо зазначений повний шлях (наприклад C: \ directory \ lib.dll), то завантажиться саме та бібліотека, яка вказана. А якщо вказати коротку назву (lib.dll), то спочатку буде проведено пошук бібліотеки. За замовчуванням пошук йде так - спочатку бібліотека шукається в папці з програмою, потім в C: \ windows \ system32, потім ще в деяких місцях. Багато програмістів кладуть dll в system32 для того, щоб надалі викликати цю бібліотеку за коротким імені. Але ми знаємо, що якщо покласти "шкідливу" бібліотеку з тим же ім'ям поруч з програмою, ти зголоситься саме вона.
Ну а тепер найцікавіше, приклад:
По дорозі C: \ windows \ system32 \ sysprep лежить програма sysprep.exe. Ця програма є дві особливості:
1) Вона завжди стартує від імені адміністратора (без попиту, навіть без адмінських прав)
2) Вона небезпечно підвантажує дві бібліотеки.
Виходить, що поклавши в папку C: \ windows \ system32 \ sysprep "шкідливу" бібліотеку, то після запуску sysprep.exe автоматично буде виконаний код з бібліотеки (причому з правами адміністратора). Віруси аплодують стоячи.
Залишити відповідь