Ця стаття потребує додаткових для поліпшення її . (вересень 2015) |
Декомпіля́тор (також детранслятор, обернений транслятор) — комп'ютерна програма, яка транслює модуль у вигляді двійкового машинного коду (об'єктний код, отриманий на виході компілятора в процесі компіляції) у функціонально подібний вихідний код на (мові програмування високого рівня). Процес трансляції коду декомпілятором називається декомпіляцією. Декомпілятори, як і дизасемблери використовуються для дослідження та зворотної розробки програмного забезпечення.
Принцип дії
Процес компіляції є незворотним в тому значенні, що не існує однозначної функції, яка б дозволила отримати назад джерельний код в початковому вигляді, оскільки при цьому втрачається дуже багато інформації. Тому в декомпіляторі використовуються різні методи та способи зворотньої розробки. Отриманий таким чином джерельний код на одній з мов програмування високого рівня, як правило, тільки функціонально схожий до первинної версії джерельного коду, який використовувався для створення піддослідної програми. Однак деякі техніки допомагають відтворенню такого коду. Наприклад, якщо програма скомпільована в зневаджувальному режимі, то імена модулів, функцій, змінних, а в деяких випадках і коментарі, а то й весь оригінальний авторський код компілятор залишає в виконавчій програмі, що надзвичайно полегшує процес зворотньої розробки. Розробники власницького ПЗ для збереження своїх алгоритмів чи модулів ліцензування в таємниці стараються максимально ускладнити можливість декомпіляції програми за допомогою та шифрування.
Декомпіляція машинного байт-коду з мов, які виконуються з допомогою віртуальної машини (Java, C#) є як правило набагато простішою, бо компілятори таких мов залишають набагато більше інформації, ніж компілятори в машинний двійковий код (C, C++).
Законодавство
Багато розробників власницького ПЗ явно забороняють в ліцензії декомпіляцію своїх програм, однак згідно з законом України «Про авторське право і суміжні права» в статті 24 дозволяється вільне копіювання, модифікація і декомпіляція комп'ютерних програм за необхідної умови, що особа правомірно володіє правомірно виготовленим примірником комп'ютерної програми. Додаткові умови для законного права на декомпіляцію програми для отримання інформації, необхідної для досягнення її взаємодії із незалежно розробленою комп'ютерною програмою:
- інформація, необхідна для досягнення здатності до взаємодії, раніше не була доступною цій особі з інших джерел;
- зазначені дії здійснюються тільки щодо тих частин комп'ютерної програми, які необхідні для досягнення здатності до взаємодії;
- інформація, одержана в результаті декомпіляції, може використовуватися лише для досягнення здатності до її взаємодії з іншими програмами, але не може передаватися іншим особам, крім випадків, якщо це необхідно для досягнення здатності до взаємодії з іншими програмами, а також не може використовуватися для розроблення комп'ютерної програми, схожої на декомпільовану комп'ютерну програму, або для вчинення будь-якої іншої дії, що порушує авторське право;
Див. також
Примітки
- . Архів оригіналу за 26 травня 2015. Процитовано 21 вересня 2015.
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Cya stattya potrebuye dodatkovih posilan na dzherela dlya polipshennya yiyi perevirnosti Bud laska dopomozhit udoskonaliti cyu stattyu dodavshi posilannya na nadijni avtoritetni dzherela Zvernitsya na za poyasnennyami ta dopomozhit vipraviti nedoliki Material bez dzherel mozhe buti piddano sumnivu ta vilucheno veresen 2015 Dekompilya tor takozh detranslyator obernenij translyator komp yuterna programa yaka translyuye modul u viglyadi dvijkovogo mashinnogo kodu ob yektnij kod otrimanij na vihodi kompilyatora v procesi kompilyaciyi u funkcionalno podibnij vihidnij kod na movi programuvannya visokogo rivnya Proces translyaciyi kodu dekompilyatorom nazivayetsya dekompilyaciyeyu Dekompilyatori yak i dizasembleri vikoristovuyutsya dlya doslidzhennya ta zvorotnoyi rozrobki programnogo zabezpechennya Princip diyiProces kompilyaciyi ye nezvorotnim v tomu znachenni sho ne isnuye odnoznachnoyi funkciyi yaka b dozvolila otrimati nazad dzherelnij kod v pochatkovomu viglyadi oskilki pri comu vtrachayetsya duzhe bagato informaciyi Tomu v dekompilyatori vikoristovuyutsya rizni metodi ta sposobi zvorotnoyi rozrobki Otrimanij takim chinom dzherelnij kod na odnij z mov programuvannya visokogo rivnya yak pravilo tilki funkcionalno shozhij do pervinnoyi versiyi dzherelnogo kodu yakij vikoristovuvavsya dlya stvorennya piddoslidnoyi programi Odnak deyaki tehniki dopomagayut vidtvorennyu takogo kodu Napriklad yaksho programa skompilovana v znevadzhuvalnomu rezhimi to imena moduliv funkcij zminnih a v deyakih vipadkah i komentari a to j ves originalnij avtorskij kod kompilyator zalishaye v vikonavchij programi sho nadzvichajno polegshuye proces zvorotnoyi rozrobki Rozrobniki vlasnickogo PZ dlya zberezhennya svoyih algoritmiv chi moduliv licenzuvannya v tayemnici starayutsya maksimalno uskladniti mozhlivist dekompilyaciyi programi za dopomogoyu ta shifruvannya Dekompilyaciya mashinnogo bajt kodu z mov yaki vikonuyutsya z dopomogoyu virtualnoyi mashini Java C ye yak pravilo nabagato prostishoyu bo kompilyatori takih mov zalishayut nabagato bilshe informaciyi nizh kompilyatori v mashinnij dvijkovij kod C C ZakonodavstvoBagato rozrobnikiv vlasnickogo PZ yavno zaboronyayut v licenziyi dekompilyaciyu svoyih program odnak zgidno z zakonom Ukrayini Pro avtorske pravo i sumizhni prava v statti 24 dozvolyayetsya vilne kopiyuvannya modifikaciya i dekompilyaciya komp yuternih program za neobhidnoyi umovi sho osoba pravomirno volodiye pravomirno vigotovlenim primirnikom komp yuternoyi programi Dodatkovi umovi dlya zakonnogo prava na dekompilyaciyu programi dlya otrimannya informaciyi neobhidnoyi dlya dosyagnennya yiyi vzayemodiyi iz nezalezhno rozroblenoyu komp yuternoyu programoyu informaciya neobhidna dlya dosyagnennya zdatnosti do vzayemodiyi ranishe ne bula dostupnoyu cij osobi z inshih dzherel zaznacheni diyi zdijsnyuyutsya tilki shodo tih chastin komp yuternoyi programi yaki neobhidni dlya dosyagnennya zdatnosti do vzayemodiyi informaciya oderzhana v rezultati dekompilyaciyi mozhe vikoristovuvatisya lishe dlya dosyagnennya zdatnosti do yiyi vzayemodiyi z inshimi programami ale ne mozhe peredavatisya inshim osobam krim vipadkiv yaksho ce neobhidno dlya dosyagnennya zdatnosti do vzayemodiyi z inshimi programami a takozh ne mozhe vikoristovuvatisya dlya rozroblennya komp yuternoyi programi shozhoyi na dekompilovanu komp yuternu programu abo dlya vchinennya bud yakoyi inshoyi diyi sho porushuye avtorske pravo Div takozhDizasembler Kompilyator Zvorotnya rozrobkaPrimitki Arhiv originalu za 26 travnya 2015 Procitovano 21 veresnya 2015