Перехоплення (англ. hooking) — технологія для зміни або посилення поведінки операційної системи, або застосунку, чи інших програмних складових, шляхом перехоплення викликів функцій або повідомлень або подій, які передаються між програмними компонентами. Код, який обробляє такі перехоплені виклики функцій, подій або повідомлень називається «гук» (англ. hook).
Перехоплення використовується для різних задач, в тому числі і зневадження і розширення функціональності. Прикладами є перехоплення повідомлень подій клавіатури або миші, перш ніж вони досягнуть застосунку, або перехоплення, які операційна система викликає для того, щоб контролювати поведінку або змінювати функцію програми або іншого компонента. Перехоплення також широко використовується в бенчмаркінгу програм, наприклад, для вимірювання швидкості генерації кадрів в 3D-іграх, де ввід та вивід відбувається через перехоплення.
Перехоплення також може бути використане шкідливим кодом. Наприклад, руткіти, складові програмного забезпечення, використовують перехоплення для фальсифікації викликів API, використання яких вказало б на існування руткіта, і це дозволяє йому (руткіту) залишитись невидимим. Воллхакінг (англ. Wallhack) є ще одним прикладом шкідливої поведінки програм, які спираються на техніку перехоплень викликів функцій у комп'ютерній грі, відображає додаткову інформацію гравцеві, що дозволяє отримати перевагу над іншими гравцями.
Призначення технології перехоплення
Дуже часто в системному програмуванні виникає задача зміни стандартної поведінки системних функцій. Наприклад, досить цікавим застосуванням даної технології є перевизначення віконної процедури у GUI програм Windows ([ru]). Це потрібно, якщо програміст хоче організувати власну обробку будь-якого віконного повідомлення і тільки тоді передати стандартній віконній процедурі. Після субкласингу цикл обробки повідомлень буде виглядати так:
- ДО субкласингу:
- Повідомлення Windows -> Вікно (віконна процедура)
- ПІСЛЯ:
- Повідомлення Windows -> Наша віконна процедура -> Вікно (віконна процедура)
Наприклад, в уроках «Iczelion»'а описаний приклад того, як субкласинг може використовуватися для організації контролю вводу в елементи управління. Технології перехоплення потрібні не тільки в цьому випадку, але і, наприклад, для попередньої обробки результатів системних функцій пошуку файлів «FindFirst» і «FindNext», «EnumProcess», яка перераховує процеси в Windows і т. д. Причому в цих цілях такі технології застосовують як антивірусні засоби, так і різного роду віруси, руткіти та інші види шкідливого програмного забезпечення.
Дуже часто перехоплення буває важливим для організації та налагодження програм і є однією з основних технологій, застосовуваних в зневаджувачах. В даному випадку ця технологія дозволяє одній програмі контролювати виконання іншої. Для цих цілей передбачений системний виклик «ptrace», який дозволяє підключатися до процесів, відслідковувати значення регістрів у контексті процесу, який зневаджується і в тому числі контролювати інші системні виклики. Він є основою для реалізації такої можливості зневаджувачив як точки зупину. Даний системний виклик добре документований і присутній у всіх головних «*Nix» системах: Linux, FreeBSD, Solaris. Найчастіше використовується спільно з системним викликом «fork», який і викликає «ptrace», вказуючи в параметрах виклику, що запускається дочірній процес. Microsoft Windows також надає для схожих цілей т. зв. .
Види перехоплення системних функцій
Основними методами перехоплення є:
- Підміна адреси справжньої функції (модифікація [en] таблиць, модифікація [en]/IDT таблиць)
- Безпосередня зміна функції (сплайсинг, перехоплення в режимі ядра з модифікацією тіла функції)
- Безпосередня підміна всього компонента програми/системи (наприклад бібліотеки з цільовою функцією)
Методи можна також розділити за критерієм режиму виконання:
- Користувацькі (кільця захисту) методи: модифікація IAT таблиць, сплайсинг. Їх особливість в тому, що неможливо щось змінити в поведінці ядра операційної системи та його розширень.
- Режиму ядра: модифікація SSDT/IDT таблиць, перехоплення в режимі ядра з модифікацією тіла функції. Дозволяє модифікувати структури даних і код будь-якої частини операційної системи та програм.
Сплайсинг
Сплайсинг (від англ. Splice — «зрощувати або склеювати кінці чого-небудь») — метод перехоплення API функцій шляхом зміни коду цільової функції. Зазвичай змінюються перші 5 байт функції. Замість них вставляється перехід на функцію, яку визначає програміст. Щоб забезпечити коректність виконання операції, програма, яка перехоплює функцію, зобов'язана дати можливість виконатися коду, який був змінений в результаті сплайсингу. Для цього програма зберігає змінену ділянку пам'яті у себе, а після відпрацювання функції перехоплення відновлює змінену ділянку функції і дає повністю виконатися справжній функції.
Особливості технології
Для того щоб програма могла використовувати дану технологію, вона повинна мати вбудований дизасемблерний рушій і спеціальний [ru], який дозволить знаходити потрібну функцію і коректно її змінювати. Ця технологія вкрай платформно-залежна, а тому потребує ретельного контролю та перевірки системи на відповідність версій, а також перевірки самої функції на відповідність цільової. Системні функції можуть змінюватися при виході патчів і оновлень Windows (особливо Service Pack для Windows), а також в результаті модифікацій з боку інших програм. Помилки при роботі з даною технологією можуть призводити до BSOD. Водночас ця технологія дозволяє здійснювати глобальне перехоплення API функцій, впливаючи таким чином на всі процеси в системі. Починаючи з Windows XP SP2 для підтримки «гарячого патчу» Microsoft змінила стандартний пролог функцій з трьох байт до п'яти (додала mov edi, edi в стандартний пролог push ebp; mov ebp, esp), що дозволяє не проводити аналіз довжин. Довжини в п'ять байт вистачає для заміни прологу на «опкоди» дальнього переходу, а відомий пролог дозволяє коректно передати управління функції, яку підміняють.
Сфери застосування сплайсинга і методи виявлення
Він застосовується:
- В ПО, якому необхідно здійснювати функції моніторингу системи;
- Механізмом гуків в Windows;
- Різного роду шкідливими програмами. Це основна технологія приховування для руткітів користувацького рівня.
Основний метод виявлення факту сплайсингу — це порівняння машинного коду функції, який перевіряється на сплайсинг, і коду системної функції, отриманого в напевно чистій системі. Також в виявленні сплайсинга функції може допомогти контроль адрес переходу.
Порівняння з іншими технологіями
- Зміна IAT таблиць процесу. Дана технологія не дозволяє змінити поведінку самої системної функції, а лише дає можливість «обдурити» вибрану програму, змусивши її використовувати вашу функцію. IAT таблиця — таблиця адрес функцій, імпортованих процесом. Технологія носить лише локальний характер, хоча може бути застосована відразу до групи програм. Може бути досить швидко виявлена через необхідність завантаження DLL в адресний простір цільового процесу. Сплайсинг же, не вимагає DLL і впровадження в чужий процес, володіє можливістю глобального захвату функції. В ньому є ще одна перевага: не всі системні функції імпортуються процесом через IAT. Наприклад, функція може бути завантажена викликом «Getprocaddress». Використання ж безпосередньої модифікації коду функції знімає подібне обмеження.
- Перехоплення в режимі ядра. Дозволяє перехоплювати будь-які функції, в тому числі і експортовані ядром. Найбільш важкий для виявлення в разі успіху, тому що дозволяє фальсифікувати будь-які дані, що надаються операційною системою. Вимагає написання спеціального компоненту для взаємодії з ядром — драйвера. Може привести до BSOD при неправильному програмуванні в режимі ядра. Може бути виявлений на фазі завантаження драйвера в ядро або при перевірці активних драйверів, а також при перевірці ядра на зміни. Більш важкий у програмуванні метод, ніж сплайсинг, але більш гнучкий, тому що дозволяє перехопити функції самого ядра, а не тільки «WinAPI» функції, які служать лише посередником між ядром і програмою, яка що-небудь запитує у операційної системи.
- Заміна самої бібліотеки з функцією. Вельми радикальне вирішення проблеми, має ряд істотних недоліків:
- Вимагає заміни файлу на диску, що може бути заборонено та припинено самою системою. Наприклад, заміну системних файлів Windows не дозволить виконати [en], хоча його можна і виключити. Така дія може бути також виявлена при статичному аналізі системи ревізорами.
- Потрібна повна емуляція всіх можливостей замінної DLL чи іншого компонента, що дуже занадто навіть у разі відкритості і ускладнюється необхідністю дизасемблювання в разі закритості цільової програми.
Все це показує, що це вельми нераціональний спосіб вирішення проблеми зміни поведінки програми в разі можливості застосування перших двох підходів або сплайсинга.
Перехоплення в режимі ядра
Він заснований на модифікації структур даних ядра і функцій. Головними мішенями впливу є таблиці:
- IDT — Таблиця диспетчеризації переривань. Досить важливим для перехоплення є переривання, що обробляє звернення до таблиці служб SSDT (0x2E).
- SSDT (System Service Dispatch Table) — Таблиця диспетчеризації системних сервісів. Звертаючись до неї, система за номером забороненого сервісу може отримати адресу відповідного сервісу ядра і викликати його. А таблиця SSPT містить загальний розмір параметрів, що передаються системному сервісу.
- PsActiveprocess — Структура ядра, що зберігає список процесів в системі.
- [ru] — Таблиця драйвера, яка зберігає покажчики на функції обробки IRP-пакетів.
- EPROCESS — Структура ядра, що зберігає велику кількість інформації про процес, включаючи, наприклад, PID (ідентифікатор процесу).
Такого роду руткіти називаються DKOM-руткітами, тобто руткітами, заснованими на безпосередній модифікації об'єктів ядра. В руткітах для систем Windows Server 2003 і XP ця технологія була модернізована, так як в цих ОС з'явився захист від запису деяких областей пам'яті ядра. Windows Vista і 7 отримали додатковий захист ядра PatchGuard, однак всі ці технології були подолані руткітописателями. Водночас перехоплення системних функцій в режимі ядра — основа проактивних систем захисту та гіпервізорів.
Інші форми перехоплення
Можна виділити й інші форми перехоплення:
- Перехоплення мережевих з'єднань та пакетів.
- Перехоплення паролів. Наприклад, за допомогою шпигунства за клавіатурним введенням за допомогою кейлоггера.
- Перехоплення звернень браузера до сайтів за допомогою HTTP Proxy або розширень браузера. Дозволяє проаналізувати та/або підмінити дані, якими обмінюються браузер і сервер.
Тут описана лише частина застосувань даної технології.
Приклади програм, що використовують перехоплення
- Гіпервізор Xen
- Утиліти [en] «Filemon», «Regmon», [en];
- Руткіт Rustock.C [ 13 травня 2014 у Wayback Machine.].
Див. також
Примітки
- . Архів оригіналу за 18 жовтня 2012. Процитовано 18 жовтня 2012.
- наприклад: неможливо отримати доступ до процесу Kaspersky Internet Security штатними засобами Windows API, так як відповідні функції перехоплені антивірусом.
- Сторінка з man Linux Ubuntu: man сторінка про виклик ptrace [ 21 січня 2010 у Wayback Machine.] і російськомовна версія: Русский переклад на OpenNET [ 1 листопада 2014 у Wayback Machine.]
- Офіційний опис: The Debugging Application Programming Interface [ 30 травня 2014 у Wayback Machine.], а також приклади використання: Win32 API. Урок 28. Win32 Debug API I [ 4 березня 2010 у Wayback Machine.]
- . Архів оригіналу за 23 грудня 2009. Процитовано 31 жовтня 2014.
- Методи доступу і модифікації IAT таблиці досить докладно описані у Хоглунд Г., Батлер Дж. — Руткити: впровадження в ядро Windows. Гл 4 Давнє мистецтво захоплення
- Методи впровадження DLL в чужий процес описані досить докладно у Дж. Ріхтера Крістофера Назара Windows via C / C ++. Програмування на мові Visual C ++. Деякі методи впровадження вперше документував сам Дж. Ріхтер
- Наприклад, один з перших руткит-детектеров KLISTNER [ 25 липня 2010 у Wayback Machine.]
- Г. Хоглунд Дж. Батлер Руткіти впровадження в ядро Windows. Глава 4 Давнє мистецтво захоплення
- 072/072 / 5.asp вбивство годинного Кріс Касперски, АКА МИЩЪХ Спецвипуск: Хакер, номер # 072, стр. 072-072-5
- Наприклад, цим займаються сніфери. Однією з безкоштовних реалізацій захоплення мережевих пакетів є мережевий драйвер рівня NDIS WinPCAP
Література
- Джефрі Ріхтер. Windows via C/C++. програмування на мові Visual C++ = Windows via C/C++. — СПб : Пітер, 2010. — С. 689-728. — .
- Хоглунд Г., Батлер Дж. Руткити: впровадження в ядро Windows = Rootkits.Subverting the Windows kernel. — СПб : Пітер, 2010. — С. 36-58,77-129. — .
Посилання
Це незавершена стаття про операційні системи. Ви можете проєкту, виправивши або дописавши її. |
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
U Vikipediyi ye statti pro inshi znachennya cogo termina Perehoplennya Perehoplennya angl hooking tehnologiya dlya zmini abo posilennya povedinki operacijnoyi sistemi abo zastosunku chi inshih programnih skladovih shlyahom perehoplennya viklikiv funkcij abo povidomlen abo podij yaki peredayutsya mizh programnimi komponentami Kod yakij obroblyaye taki perehopleni vikliki funkcij podij abo povidomlen nazivayetsya guk angl hook Perehoplennya vikoristovuyetsya dlya riznih zadach v tomu chisli i znevadzhennya i rozshirennya funkcionalnosti Prikladami ye perehoplennya povidomlen podij klaviaturi abo mishi persh nizh voni dosyagnut zastosunku abo perehoplennya yaki operacijna sistema viklikaye dlya togo shob kontrolyuvati povedinku abo zminyuvati funkciyu programi abo inshogo komponenta Perehoplennya takozh shiroko vikoristovuyetsya v benchmarkingu program napriklad dlya vimiryuvannya shvidkosti generaciyi kadriv v 3D igrah de vvid ta vivid vidbuvayetsya cherez perehoplennya Perehoplennya takozh mozhe buti vikoristane shkidlivim kodom Napriklad rutkiti skladovi programnogo zabezpechennya vikoristovuyut perehoplennya dlya falsifikaciyi viklikiv API vikoristannya yakih vkazalo b na isnuvannya rutkita i ce dozvolyaye jomu rutkitu zalishitis nevidimim Vollhaking angl Wallhack ye she odnim prikladom shkidlivoyi povedinki program yaki spirayutsya na tehniku perehoplen viklikiv funkcij u komp yuternij gri vidobrazhaye dodatkovu informaciyu gravcevi sho dozvolyaye otrimati perevagu nad inshimi gravcyami Priznachennya tehnologiyi perehoplennyaDuzhe chasto v sistemnomu programuvanni vinikaye zadacha zmini standartnoyi povedinki sistemnih funkcij Napriklad dosit cikavim zastosuvannyam danoyi tehnologiyi ye pereviznachennya vikonnoyi proceduri u GUI program Windows ru Ce potribno yaksho programist hoche organizuvati vlasnu obrobku bud yakogo vikonnogo povidomlennya i tilki todi peredati standartnij vikonnij proceduri Pislya subklasingu cikl obrobki povidomlen bude viglyadati tak DO subklasingu Povidomlennya Windows gt Vikno vikonna procedura PISLYa Povidomlennya Windows gt Nasha vikonna procedura gt Vikno vikonna procedura Napriklad v urokah Iczelion a opisanij priklad togo yak subklasing mozhe vikoristovuvatisya dlya organizaciyi kontrolyu vvodu v elementi upravlinnya Tehnologiyi perehoplennya potribni ne tilki v comu vipadku ale i napriklad dlya poperednoyi obrobki rezultativ sistemnih funkcij poshuku fajliv FindFirst i FindNext EnumProcess yaka pererahovuye procesi v Windows i t d Prichomu v cih cilyah taki tehnologiyi zastosovuyut yak antivirusni zasobi tak i riznogo rodu virusi rutkiti ta inshi vidi shkidlivogo programnogo zabezpechennya Duzhe chasto perehoplennya buvaye vazhlivim dlya organizaciyi ta nalagodzhennya program i ye odniyeyu z osnovnih tehnologij zastosovuvanih v znevadzhuvachah V danomu vipadku cya tehnologiya dozvolyaye odnij programi kontrolyuvati vikonannya inshoyi Dlya cih cilej peredbachenij sistemnij viklik ptrace yakij dozvolyaye pidklyuchatisya do procesiv vidslidkovuvati znachennya registriv u konteksti procesu yakij znevadzhuyetsya i v tomu chisli kontrolyuvati inshi sistemni vikliki Vin ye osnovoyu dlya realizaciyi takoyi mozhlivosti znevadzhuvachiv yak tochki zupinu Danij sistemnij viklik dobre dokumentovanij i prisutnij u vsih golovnih Nix sistemah Linux FreeBSD Solaris Najchastishe vikoristovuyetsya spilno z sistemnim viklikom fork yakij i viklikaye ptrace vkazuyuchi v parametrah vikliku sho zapuskayetsya dochirnij proces Microsoft Windows takozh nadaye dlya shozhih cilej t zv Vidi perehoplennya sistemnih funkcijOsnovnimi metodami perehoplennya ye Pidmina adresi spravzhnoyi funkciyi modifikaciya en tablic modifikaciya en IDT tablic Bezposerednya zmina funkciyi splajsing perehoplennya v rezhimi yadra z modifikaciyeyu tila funkciyi Bezposerednya pidmina vsogo komponenta programi sistemi napriklad biblioteki z cilovoyu funkciyeyu Metodi mozhna takozh rozdiliti za kriteriyem rezhimu vikonannya Koristuvacki kilcya zahistu metodi modifikaciya IAT tablic splajsing Yih osoblivist v tomu sho nemozhlivo shos zminiti v povedinci yadra operacijnoyi sistemi ta jogo rozshiren Rezhimu yadra modifikaciya SSDT IDT tablic perehoplennya v rezhimi yadra z modifikaciyeyu tila funkciyi Dozvolyaye modifikuvati strukturi danih i kod bud yakoyi chastini operacijnoyi sistemi ta program SplajsingSplajsing vid angl Splice zroshuvati abo skleyuvati kinci chogo nebud metod perehoplennya API funkcij shlyahom zmini kodu cilovoyi funkciyi Zazvichaj zminyuyutsya pershi 5 bajt funkciyi Zamist nih vstavlyayetsya perehid na funkciyu yaku viznachaye programist Shob zabezpechiti korektnist vikonannya operaciyi programa yaka perehoplyuye funkciyu zobov yazana dati mozhlivist vikonatisya kodu yakij buv zminenij v rezultati splajsingu Dlya cogo programa zberigaye zminenu dilyanku pam yati u sebe a pislya vidpracyuvannya funkciyi perehoplennya vidnovlyuye zminenu dilyanku funkciyi i daye povnistyu vikonatisya spravzhnij funkciyi Osoblivosti tehnologiyi Dlya togo shob programa mogla vikoristovuvati danu tehnologiyu vona povinna mati vbudovanij dizasemblernij rushij i specialnij ru yakij dozvolit znahoditi potribnu funkciyu i korektno yiyi zminyuvati Cya tehnologiya vkraj platformno zalezhna a tomu potrebuye retelnogo kontrolyu ta perevirki sistemi na vidpovidnist versij a takozh perevirki samoyi funkciyi na vidpovidnist cilovoyi Sistemni funkciyi mozhut zminyuvatisya pri vihodi patchiv i onovlen Windows osoblivo Service Pack dlya Windows a takozh v rezultati modifikacij z boku inshih program Pomilki pri roboti z danoyu tehnologiyeyu mozhut prizvoditi do BSOD Vodnochas cya tehnologiya dozvolyaye zdijsnyuvati globalne perehoplennya API funkcij vplivayuchi takim chinom na vsi procesi v sistemi Pochinayuchi z Windows XP SP2 dlya pidtrimki garyachogo patchu Microsoft zminila standartnij prolog funkcij z troh bajt do p yati dodala mov edi edi v standartnij prolog push ebp mov ebp esp sho dozvolyaye ne provoditi analiz dovzhin Dovzhini v p yat bajt vistachaye dlya zamini prologu na opkodi dalnogo perehodu a vidomij prolog dozvolyaye korektno peredati upravlinnya funkciyi yaku pidminyayut Sferi zastosuvannya splajsinga i metodi viyavlennya Vin zastosovuyetsya V PO yakomu neobhidno zdijsnyuvati funkciyi monitoringu sistemi Mehanizmom gukiv v Windows Riznogo rodu shkidlivimi programami Ce osnovna tehnologiya prihovuvannya dlya rutkitiv koristuvackogo rivnya Osnovnij metod viyavlennya faktu splajsingu ce porivnyannya mashinnogo kodu funkciyi yakij pereviryayetsya na splajsing i kodu sistemnoyi funkciyi otrimanogo v napevno chistij sistemi Takozh v viyavlenni splajsinga funkciyi mozhe dopomogti kontrol adres perehodu Porivnyannya z inshimi tehnologiyami Zmina IAT tablic procesu Dana tehnologiya ne dozvolyaye zminiti povedinku samoyi sistemnoyi funkciyi a lishe daye mozhlivist obduriti vibranu programu zmusivshi yiyi vikoristovuvati vashu funkciyu IAT tablicya tablicya adres funkcij importovanih procesom Tehnologiya nosit lishe lokalnij harakter hocha mozhe buti zastosovana vidrazu do grupi program Mozhe buti dosit shvidko viyavlena cherez neobhidnist zavantazhennya DLL v adresnij prostir cilovogo procesu Splajsing zhe ne vimagaye DLL i vprovadzhennya v chuzhij proces volodiye mozhlivistyu globalnogo zahvatu funkciyi V nomu ye she odna perevaga ne vsi sistemni funkciyi importuyutsya procesom cherez IAT Napriklad funkciya mozhe buti zavantazhena viklikom Getprocaddress Vikoristannya zh bezposerednoyi modifikaciyi kodu funkciyi znimaye podibne obmezhennya Perehoplennya v rezhimi yadra Dozvolyaye perehoplyuvati bud yaki funkciyi v tomu chisli i eksportovani yadrom Najbilsh vazhkij dlya viyavlennya v razi uspihu tomu sho dozvolyaye falsifikuvati bud yaki dani sho nadayutsya operacijnoyu sistemoyu Vimagaye napisannya specialnogo komponentu dlya vzayemodiyi z yadrom drajvera Mozhe privesti do BSOD pri nepravilnomu programuvanni v rezhimi yadra Mozhe buti viyavlenij na fazi zavantazhennya drajvera v yadro abo pri perevirci aktivnih drajveriv a takozh pri perevirci yadra na zmini Bilsh vazhkij u programuvanni metod nizh splajsing ale bilsh gnuchkij tomu sho dozvolyaye perehopiti funkciyi samogo yadra a ne tilki WinAPI funkciyi yaki sluzhat lishe poserednikom mizh yadrom i programoyu yaka sho nebud zapituye u operacijnoyi sistemi Zamina samoyi biblioteki z funkciyeyu Velmi radikalne virishennya problemi maye ryad istotnih nedolikiv Vimagaye zamini fajlu na disku sho mozhe buti zaboroneno ta pripineno samoyu sistemoyu Napriklad zaminu sistemnih fajliv Windows ne dozvolit vikonati en hocha jogo mozhna i viklyuchiti Taka diya mozhe buti takozh viyavlena pri statichnomu analizi sistemi revizorami Potribna povna emulyaciya vsih mozhlivostej zaminnoyi DLL chi inshogo komponenta sho duzhe zanadto navit u razi vidkritosti i uskladnyuyetsya neobhidnistyu dizasemblyuvannya v razi zakritosti cilovoyi programi Vse ce pokazuye sho ce velmi neracionalnij sposib virishennya problemi zmini povedinki programi v razi mozhlivosti zastosuvannya pershih dvoh pidhodiv abo splajsinga Perehoplennya v rezhimi yadraVin zasnovanij na modifikaciyi struktur danih yadra i funkcij Golovnimi mishenyami vplivu ye tablici IDT Tablicya dispetcherizaciyi pererivan Dosit vazhlivim dlya perehoplennya ye pererivannya sho obroblyaye zvernennya do tablici sluzhb SSDT 0x2E SSDT System Service Dispatch Table Tablicya dispetcherizaciyi sistemnih servisiv Zvertayuchis do neyi sistema za nomerom zaboronenogo servisu mozhe otrimati adresu vidpovidnogo servisu yadra i viklikati jogo A tablicya SSPT mistit zagalnij rozmir parametriv sho peredayutsya sistemnomu servisu PsActiveprocess Struktura yadra sho zberigaye spisok procesiv v sistemi ru Tablicya drajvera yaka zberigaye pokazhchiki na funkciyi obrobki IRP paketiv EPROCESS Struktura yadra sho zberigaye veliku kilkist informaciyi pro proces vklyuchayuchi napriklad PID identifikator procesu Takogo rodu rutkiti nazivayutsya DKOM rutkitami tobto rutkitami zasnovanimi na bezposerednij modifikaciyi ob yektiv yadra V rutkitah dlya sistem Windows Server 2003 i XP cya tehnologiya bula modernizovana tak yak v cih OS z yavivsya zahist vid zapisu deyakih oblastej pam yati yadra Windows Vista i 7 otrimali dodatkovij zahist yadra PatchGuard odnak vsi ci tehnologiyi buli podolani rutkitopisatelyami Vodnochas perehoplennya sistemnih funkcij v rezhimi yadra osnova proaktivnih sistem zahistu ta gipervizoriv Inshi formi perehoplennyaMozhna vidiliti j inshi formi perehoplennya Perehoplennya merezhevih z yednan ta paketiv Perehoplennya paroliv Napriklad za dopomogoyu shpigunstva za klaviaturnim vvedennyam za dopomogoyu kejloggera Perehoplennya zvernen brauzera do sajtiv za dopomogoyu HTTP Proxy abo rozshiren brauzera Dozvolyaye proanalizuvati ta abo pidminiti dani yakimi obminyuyutsya brauzer i server Tut opisana lishe chastina zastosuvan danoyi tehnologiyi Prikladi program sho vikoristovuyut perehoplennyaGipervizor XenUtiliti en Filemon Regmon en Rutkit Rustock C 13 travnya 2014 u Wayback Machine Div takozhOtladchik Asembler Rutkit Komp yuternij virusPrimitki Arhiv originalu za 18 zhovtnya 2012 Procitovano 18 zhovtnya 2012 napriklad nemozhlivo otrimati dostup do procesu Kaspersky Internet Security shtatnimi zasobami Windows API tak yak vidpovidni funkciyi perehopleni antivirusom Storinka z man Linux Ubuntu man storinka pro viklik ptrace 21 sichnya 2010 u Wayback Machine i rosijskomovna versiya Russkij pereklad na OpenNET 1 listopada 2014 u Wayback Machine Oficijnij opis The Debugging Application Programming Interface 30 travnya 2014 u Wayback Machine a takozh prikladi vikoristannya Win32 API Urok 28 Win32 Debug API I 4 bereznya 2010 u Wayback Machine Arhiv originalu za 23 grudnya 2009 Procitovano 31 zhovtnya 2014 Metodi dostupu i modifikaciyi IAT tablici dosit dokladno opisani u Hoglund G Batler Dzh Rutkiti vprovadzhennya v yadro Windows Gl 4 Davnye mistectvo zahoplennya Metodi vprovadzhennya DLL v chuzhij proces opisani dosit dokladno u Dzh Rihtera Kristofera Nazara Windows via C C Programuvannya na movi Visual C Deyaki metodi vprovadzhennya vpershe dokumentuvav sam Dzh Rihter Napriklad odin z pershih rutkit detekterov KLISTNER 25 lipnya 2010 u Wayback Machine G Hoglund Dzh Batler Rutkiti vprovadzhennya v yadro Windows Glava 4 Davnye mistectvo zahoplennya 072 072 5 asp vbivstvo godinnogoKris Kasperski AKA MIShH Specvipusk Haker nomer 072 str 072 072 5 Napriklad cim zajmayutsya sniferi Odniyeyu z bezkoshtovnih realizacij zahoplennya merezhevih paketiv ye merezhevij drajver rivnya NDIS WinPCAPLiteraturaDzhefri Rihter Windows via C C programuvannya na movi Visual C Windows via C C SPb Piter 2010 S 689 728 ISBN 978 5 7502 0367 3 Hoglund G Batler Dzh Rutkiti vprovadzhennya v yadro Windows Rootkits Subverting the Windows kernel SPb Piter 2010 S 36 58 77 129 ISBN 978 5 469 01409 6 PosilannyaCe nezavershena stattya pro operacijni sistemi Vi mozhete dopomogti proyektu vipravivshi abo dopisavshi yiyi