Зворо́тня розро́бка (англ. reverse engineering) — дослідження деякого пристрою чи програми з метою розуміння принципів роботи досліджуваного об'єкта. Найчастіше використовується з метою створення об'єкта, за функціональністю аналогічного досліджуваному але без точного копіювання його функцій.
Зазвичай використовується у випадках, коли розробник оригінального пристрою чи програми не надає точних відомостей про алгоритми функціонування виробу, або будь-яким чином намагається завадити використанню технологій, що задіяні його функціоналом.
У наш час зворотна розробка найширше вживається для аналізу програмного забезпечення з закритими вихідним кодом. При цьому людина, що використовує даний метод дослідження, аналізує машинний код програми (зазвичай в дизасембльованому вигляді) та складає алгоритм функціонування ПЗ для подальшої реалізації в окремому продукті або відтворює його у відповідних специфікаціях.
Зазвичай зворотна розробка є забороненою законом та/або ліцензійними угодами з кінцевим користувачем, але продукти, створені на основі аналізу алгоритмів є цілком законними, оскільки кінцевий продукт дуже рідко є схожим на оригінальний.
Використання
Програмне забезпечення
Дослідження програм часто використовують з метою подальшої їхньої модифікації, розширення функціоналу або створення засобів, що дозволяють обходити обмеження на їхнє використання (наприклад умовно-безкоштовні програми). Також такі методи можуть використовуватися для отримання специфікації протоколів обміну інформацією (наприклад мережевих протоколів) або способів її зберігання (формати файлів).
Зворотна розробка програмного забезпечення зазвичай проводиться такими методами:
- . Таким способом найчастіше проводиться дослідження протоколів обміну інформацією. Наприклад для дослідження мережевих проколів може використовуватися перехоплення потоків даних в мережі за допомогою спеціалізованих програмних чи/та апаратних засобів. Цей метод може не дати повного уявлення про алгоритми функціонування ПЗ.
- Дизасемблювання. Машинний код програми читається та перекладається мовою асемблера для свого розуміння в чистому вигляді. Таким способом можна досліджувати будь-яке програмне забезпечення, але за допомогою використання певних технологій при розробці ПЗ дизасемблювання можна значно ускладнити. Метод вимагає високої кваліфікації людини, що проводить зворотну розробку та великих затрат часу.
- Декомпіляція. Полягає у перекладі машинного коду програми мовою високого рівня. Метод важко реалізувати з огляду на складність створення інструментів.
Див. також
![]() | Це незавершена стаття про інформаційні технології. Ви можете проєкту, виправивши або дописавши її. |
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Zvoro tnya rozro bka angl reverse engineering doslidzhennya deyakogo pristroyu chi programi z metoyu rozuminnya principiv roboti doslidzhuvanogo ob yekta Najchastishe vikoristovuyetsya z metoyu stvorennya ob yekta za funkcionalnistyu analogichnogo doslidzhuvanomu ale bez tochnogo kopiyuvannya jogo funkcij VikiPidruchnik VikiPidruchnik en maye dani stosovno Reverse Engineering Zazvichaj vikoristovuyetsya u vipadkah koli rozrobnik originalnogo pristroyu chi programi ne nadaye tochnih vidomostej pro algoritmi funkcionuvannya virobu abo bud yakim chinom namagayetsya zavaditi vikoristannyu tehnologij sho zadiyani jogo funkcionalom U nash chas zvorotna rozrobka najshirshe vzhivayetsya dlya analizu programnogo zabezpechennya z zakritimi vihidnim kodom Pri comu lyudina sho vikoristovuye danij metod doslidzhennya analizuye mashinnij kod programi zazvichaj v dizasemblovanomu viglyadi ta skladaye algoritm funkcionuvannya PZ dlya podalshoyi realizaciyi v okremomu produkti abo vidtvoryuye jogo u vidpovidnih specifikaciyah Zazvichaj zvorotna rozrobka ye zaboronenoyu zakonom ta abo licenzijnimi ugodami z kincevim koristuvachem ale produkti stvoreni na osnovi analizu algoritmiv ye cilkom zakonnimi oskilki kincevij produkt duzhe ridko ye shozhim na originalnij VikoristannyaProgramne zabezpechennya Doslidzhennya program chasto vikoristovuyut z metoyu podalshoyi yihnoyi modifikaciyi rozshirennya funkcionalu abo stvorennya zasobiv sho dozvolyayut obhoditi obmezhennya na yihnye vikoristannya napriklad umovno bezkoshtovni programi Takozh taki metodi mozhut vikoristovuvatisya dlya otrimannya specifikaciyi protokoliv obminu informaciyeyu napriklad merezhevih protokoliv abo sposobiv yiyi zberigannya formati fajliv Zvorotna rozrobka programnogo zabezpechennya zazvichaj provoditsya takimi metodami Takim sposobom najchastishe provoditsya doslidzhennya protokoliv obminu informaciyeyu Napriklad dlya doslidzhennya merezhevih prokoliv mozhe vikoristovuvatisya perehoplennya potokiv danih v merezhi za dopomogoyu specializovanih programnih chi ta aparatnih zasobiv Cej metod mozhe ne dati povnogo uyavlennya pro algoritmi funkcionuvannya PZ Dizasemblyuvannya Mashinnij kod programi chitayetsya ta perekladayetsya movoyu asemblera dlya svogo rozuminnya v chistomu viglyadi Takim sposobom mozhna doslidzhuvati bud yake programne zabezpechennya ale za dopomogoyu vikoristannya pevnih tehnologij pri rozrobci PZ dizasemblyuvannya mozhna znachno uskladniti Metod vimagaye visokoyi kvalifikaciyi lyudini sho provodit zvorotnu rozrobku ta velikih zatrat chasu Dekompilyaciya Polyagaye u perekladi mashinnogo kodu programi movoyu visokogo rivnya Metod vazhko realizuvati z oglyadu na skladnist stvorennya instrumentiv Div takozhBenchmarking Ce nezavershena stattya pro informacijni tehnologiyi Vi mozhete dopomogti proyektu vipravivshi abo dopisavshi yiyi