Зворотна розробка

Матеріал з Вікіпедії — вільної енциклопедії.

Перейти до: навігація, пошук
ВікіПідручник
ВікіПідручник en має дані стосовно:

Зворо́тна розро́бка (англ. reverse engineering) — дослідження деякого пристрою чи програми з метою розуміння принципів роботи досліджуваного об'єкту. Найчастіше використовується з метою створення об'єкту, за функціональністю аналогічного досліджуваному але без точного копіювання його функцій.

Зазвичай використовується у випадках, коли розробник оригінального пристрою чи програми не надає точних відомостей про алгоритми функціонування виробу, або будь-яким чином намагається завадити використанню технологій, що є задіяними його функціоналом.

В наш час зворотна розробка найбільш широко вживається для аналізу програмного забезпечення з закритими вихідним кодом. При цьому людина, що використовує даний метод дослідження, аналізує машинний код програми (зазвичай в дизасембльованому вигляді) та складає алгоритм функціонування ПЗ для подальшої реалізації в окремому продукті або відтворює його у відповідних специфікаціях.

Зазвичай зворотна розробка є забороненою законом та/або ліцензійними угодами з кінцевим користувачем, але продукти, створені на основі аналізу алгоритмів є цілком законними, оскільки кінцевий продукт дуже рідко є схожим на оригінальний.

[ред.] Використання

[ред.] Програмне забезпечення

Дослідження програм часто використовують з метою подальшої їх модифікації, розширення функціоналу або створення засобів, що дозволяють обходити обмеження на їх використання (наприклад умовно-безкоштовні програми). Також такі методи можуть використовуватися для отримання специфікації протоколів обміну інформацією (наприклад мережевих протоколів) або способів її зберігання (формати файлів).

Зворотна розробка програмного забезпечення зазвичай проводиться такими методами:

  1. Моніторинг активності. Таким способом найчастіше проводиться дослідження протоколів обміну інформацією. Наприклад для дослідження мережевих проколів може використовуватися перехоплення потоків даних в мережі за допомогою спеціалізованих програмних чи/та апаратних засобів. Даний метод може не дати повного уявлення про алгоритми функціонування ПЗ.
  2. Дизасемблювання. Машинний код програми читається та перекладається мовою асемблера для свого розуміння в чистому вигляді. Таким способом можна досліджувати будь-яке програмне забезпечення, але за допомогою використання певних технологій при розробці ПЗ дизасемблювання можна значно ускладнити. Метод вимагає високої кваліфікації людини, що проводить зворотну розробку та великих затрат часу.
  3. Декомпіляція. Полягає у перекладі машинного коду програми мовою високого рівня. Метод важко реалізувати з огляду на складність створення інструментів.


Комп'ютер Це незавершена стаття про комп'ютери.
Ви можете допомогти проекту, виправивши або дописавши її.
Особисті інструменти