25900 авторів і 91 редактор відповіли на 98952 питання,
розмістивши 129771 посилання на 81900 сайтів, приєднуйтесь!

Реклама партнерів:

Що означає в перекладі обфускація?

РедагуватиУ обранеДрук

Обфускація (Від лат. Obfuscare - затінювати, затемнять- і англ. Obfuscate - робити неочевидним, заплутаним, збивати з пантелику) або заплутування коду - приведення вихідного тексту або виконуваного коду програми до виду, що зберігає її функціональність, але утрудняє аналіз, розуміння алгоритмів роботи і модифікацію при декомпіляції.

«Заплутування» коду може здійснюватися на рівні алгоритму, початкового тексту або ассемблерного тексту. Для створення заплутаного ассемблерного тексту можуть використовуватися спеціалізовані компілятори, що використовують неочевидні або недокументовані можливості середовища виконання програми. Існують також спеціальні програми, що виробляють обфускаціі, звані обфуськатор.



Цілі обфускаціі:

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

Плюси обфускаціі:

  1. Обфуськатор роблять дизасемблювати код важким для вивчення, перетворюючи IsLicensed () в x ().
  2. Деякі обфуськатор використовують баги ILDASM для захисту від дізассемблінга в ньому (Salamander).
  3. Деякі обфуськатор навіть конвертують код в native код, роблячи марним дізассемблінг (Salamander).
  4. Деякі обфуськатор шифрують і пакують ваш exe і іже з ним referenced збірки в один exe-файл, так що розмір проги може зменшитися 2-4 рази і не піддається дізассемблінгу (Thinstall).

Мінуси обфускаціі:

  1. Продукт залишається дізассембліруемим.
  2. Зібрати збірку після дізассемблінга не складе труднощів.
  3. IL код - доступний для читання і розуміння в порівнянні c асемблерним.
  4. «Захист» обфуськатор, які використовують баги ILDASM будуть безсилі перед дізассемблер інших розробників.
  5. Захист обфуськатор, які використовують шифрування символьної частини метаданих, строкових і бінарних ресурсів заважає користувачам продукту, налагоджувати і тестувати свої продукти. Крім цього - це ризик, так як деякі символьні дані використовуються в Reflection - для отримання типу (GetType (MyType)), або завантаження ресурсу (GetManifestResourceStream (MyResource)).
  6. Найчастіше обфуськатор мають багато налаштувань, незрозумілих або складних для розуміння звичайному користувачеві. Непоінформованість користувача може призвести до того що його обфусцірованная прога буде працювати не так як хотілося, та ще й не відловлювали отладчиком.
  7. Ціна - порядок цін - від 40 до 1500 доларів за програму. І ціна може нічого не говорити про якість обфускаціі.
  8. Захищена таким чином прога «жорстко прив'язана» до використовуваного .Net Framework, і сервіс-пак встановлений, порушить коректність роботи захищеної програми. Та й такий захист можлива тільки для Intel-процесорів.
  9. Продукт завантажує з ресурсу потрібні збірки в пам'ять і managed exe файл і передає йому управління, займаючись тільки розрулювання проблем зі складками, типами, ресурсами (через AssemblyResolve, TypeResolve, ResourceResolve). Але - не всі збірки потрібні відразу, завантаження їх вимагає дешифрування та розпакування - додаткового часу і навантаження на процесор. Не всі виробляють exe-файли. А Thinstall буде працювати тільки з exe, так як dll-збірки вже не мають як раніше процесорного DllMain, з якої це було можливо виробляти. Є така програма ProcDump - вона може продампіть запущений процес і відповідно легко отримати розшифрованими і розпакованими захищений exe і referenced збірки. Thinstall матиме проблеми із завантаженням в пам'ять managed C ++ збірки.
  10. Деякі обфуськатор створюють замкнуту систему обфусцірованних збірок, де необфусцірованнимі залишаються збірки сторонніх виробників і MS-вський. Обфуськатор не знає як використовуються ресурси збірки, тому може привести прогу до неробочому стані. Хоча в даному випадку якість обфускаціі стає ідеальним - ні до чого не підкопатися. Знову ж таки - це можливо тільки для exe-прог. Якщо є необхідність захищати бібліотеку класів, то необхідно буде залишати необфусцірованнимі публічні члени класів і публічні класи.

Реклама партнерів:

РедагуватиУ обранеДрук


«Що означає в перекладі обфускація?»

В інших пошукових системах:

GoogleЯndexRamblerВікіпедія

» » Що означає в перекладі обфускація?