і проаналізувати його.
Тепер розглянемо основні методи злому і протидії йому.
Налагодження
Відладчики існує велика кількість: від отладчиков, що є частиною середовища розробки, до сторонніх емулює отладчиков, які повністю "Занурюють" отлаживаемого додаток в аналітичну середу, даючи розробнику (або хакеру) повну статистику про те, що і як робить додаток. З іншого ж боку, подібний відладчик настільки чітко імітує середу, що додаток, набираючись під ним, вважає, що працює з системою безпосередньо (Типовий приклад подібного відладчика - NuMega SoftIce). p> Способів протидії налагодженні існує не менше ніж отладчиков. Це саме способи протидії, оскільки основне їх завдання зробити роботу відладчика або зовсім неможливою, або максимально трудомісткою. Опишемо основні способи протидії:
засмічування коду програми. Спосіб, при якому в програму вносяться спеціальні функції і виклики, які виконують складні дії, звертаються до накопичувачів, але за фактом нічого не роблять. Типовий спосіб обману. Хакера потрібно відволікти, створивши відгалуження, яке і буде привертати увагу складними викликами, і містити в собі складні і великі обчислення. Хакер рано чи пізно зрозуміє, що його обманюють, але час буде втрачено. p> Використання багатопоточності. Теж ефективний спосіб захисту, що використовує можливості Windows по паралельному виконанню функцій. Будь-який додаток може йти як лінійно, тобто інструкція за інструкцією, і легко читатися отладчиком, а може розбиватися на кілька потоків, виконуваних одночасно, природно, в цьому випадку, немає ніякої розмови про лінійність коду, а раз немає лінійності, то аналіз тут трудноосуществім. Як правило, створення 5-6 і більше потоків істотно ускладнює життя хакеру. А якщо потоки ще й шифруються, то хакер надовго загрузне, намагаючись розкрити додаток. p> Придушення зміни операційного середовища. Програма сама кілька разів переналаштовує середу оточення, або взагалі відмовляється працювати в зміненому середовищі. Не всі отладчики здатні на 100% імітувати середу системи, і якщо "піддослідна" додаток буде міняти налаштування середовища, то рано чи пізно "Неправильний" відладчик може дати збій. Протидія постановці контрольних точок. Спеціальний механізм, підтримувані мікропроцесором, при допомогою якого можна досліджувати не всю програму спочатку, а, наприклад, тільки починаючи з середини. Для цього в середині програми ставлять спеціальний виклик (Контрольну точку - Breakpoint), який передає управління відладчику. Недолік способу криється в тому, що для здійснення переривання в код досліджуваного додатки треба внести зміну. А якщо додаток час від часі перевіряє себе на наявність контрольних точок, то зробити подібне буде дуже і дуже непросто.
Зміна певних регістрів процесора, на які отладчики неадекватно реагують. Також як і з середовищем. Отладчик теж програма і теж користується і операційної системою і процесором, який один на всіх. Так, якщо...