~~~~~~~~~~~~~~~~~~~~ Arc.Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~ 
Номер скриншота №:
✰ F247612978351F739402C9EADAC4360D__1718283060 ✰
Заголовок документа оригинал.:
✰ Obfuscation (software) - Wikipedia ✰
Заголовок документа перевод.:
✰ Обфускация (программное обеспечение) — Википедия ✰
Снимок документа находящегося по адресу (URL):
✰ https://en.wikipedia.org/wiki/Code_obfuscation ✰
Адрес хранения снимка оригинал (URL):
✰ https://arc.ask3.ru/arc/aa/f2/0d/f247612978351f739402c9eadac4360d.html ✰
Адрес хранения снимка перевод (URL):
✰ https://arc.ask3.ru/arc/aa/f2/0d/f247612978351f739402c9eadac4360d__translat.html ✰
Дата и время сохранения документа:
✰ 22.06.2024 09:11:37 (GMT+3, MSK) ✰
Дата и время изменения документа (по данным источника):
✰ 13 June 2024, at 15:51 (UTC). ✰ 

~~~~~~~~~~~~~~~~~~~~~~ Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~~ 
Сервисы Ask3.ru: 
 Архив документов (Снимки документов, в формате HTML, PDF, PNG - подписанные ЭЦП, доказывающие существование документа в момент подписи. Перевод сохраненных документов на русский язык.)https://arc.ask3.ruОтветы на вопросы (Сервис ответов на вопросы, в основном, научной направленности)https://ask3.ru/answer2questionТоварный сопоставитель (Сервис сравнения и выбора товаров) ✰✰
✰ https://ask3.ru/product2collationПартнерыhttps://comrades.ask3.ru


Совет. Чтобы искать на странице, нажмите Ctrl+F или ⌘-F (для MacOS) и введите запрос в поле поиска.
Arc.Ask3.ru: далее начало оригинального документа

Обфускация (программное обеспечение) — Википедия Jump to content

Обфускация (программное обеспечение)

Из Википедии, бесплатной энциклопедии
(Перенаправлено с Обфускации кода )

В разработке программного обеспечения обфускация это процесс создания исходного или машинного кода , который трудно понять людям или компьютерам. Подобно обфускации в естественном языке , он может использовать неоправданно окольные выражения для составления утверждений. Программисты могут намеренно запутывать код, чтобы скрыть его назначение ( безопасность через неясность ) или его логику или неявные значения, встроенные в него, в первую очередь, чтобы предотвратить несанкционированный доступ, сдержать обратное проектирование или даже создать головоломку или развлекательную задачу для тех, кто читает исходный код. код. Это можно сделать вручную или с помощью автоматизированного инструмента, причем последний метод является предпочтительным в промышленности. [1]

Обзор [ править ]

Архитектура и характеристики некоторых языков могут облегчить запутывание их, чем других. [2] [3] С , [4] С++ , [5] [6] и Perl язык программирования [7] Вот несколько примеров языков, которые легко запутать. Haskell также довольно запутан. [8] несмотря на то, что они совершенно разные по структуре.

Свойства, которые делают язык запутанным, не очевидны сразу.

Техники [ править ]

Типы обфускации включают простую замену ключевых слов, использование или неиспользование пробелов для создания художественных эффектов, а также самогенерирующиеся или сильно сжатые программы.

По словам Ника Монфора , методы могут включать в себя:

  1. запутывание именования, которое включает бессмысленное или вводящее в заблуждение именование переменных;
  2. путаница данных/кода/комментариев, которая включает в себя придание фактическому коду вида комментариев или путаницу синтаксиса с данными;
  3. двойное кодирование, которое может представлять собой отображение кода в поэтической форме или в интересных формах. [9]

Автоматизированные инструменты [ править ]

Существует множество инструментов для выполнения или помощи в обфускации кода. К ним относятся инструменты экспериментальных исследований, созданные учеными, инструменты для любителей, коммерческие продукты, написанные профессионалами, и программное обеспечение с открытым исходным кодом . Также существуют инструменты деобфускации, которые пытаются выполнить обратное преобразование.

Хотя большинство коммерческих решений для запутывания работают путем преобразования либо исходного кода программы, либо независимого от платформы байт-кода, используемого Java и .NET , есть также такие, которые работают непосредственно с скомпилированными двоичными файлами.

Рекреационный [ править ]

Написание и чтение запутанного исходного кода может оказаться непростой задачей . Ряд конкурсов по программированию награждает наиболее творчески запутанный код, например, International Obfuscated C Code Contest и Obfuscated Perl Contest .

Короткие запутанные программы Perl могут использоваться в сигнатурах Perl-программистов. Это JAPH (« Просто еще один хакер Perl »). [16]

Криптографический [ править ]

Криптографы исследовали идею запутывания кода, поэтому его реверс-инжиниринг становится криптографически сложным. Это формализовано во многих предложениях по обфускации неотличимости — криптографическому примитиву, который, если его можно будет построить безопасно, позволит создавать многие другие виды криптографии, включая совершенно новые типы, которые никто не знает, как создавать. (Известно, что более сильное понятие — запутывание «черного ящика» — вообще невозможно.) [17] [18]

Недостатки обфускации [ править ]

  • Хотя обфускация может затруднить чтение, запись и реверс-инжиниринг программы, это не обязательно сделает ее невозможной. [19]
  • Это увеличивает время и сложность процесса сборки для разработчиков.
  • Это может чрезвычайно затруднить отладку после того, как программное обеспечение было запутано.
  • Как только код перестанет поддерживаться, любители могут захотеть поддерживать программу, добавлять моды или лучше понимать ее. Обфускация мешает конечным пользователям делать полезные вещи с кодом.
  • Определенные виды запутывания (т. е. код, который не является просто локальным двоичным файлом и при необходимости загружает мини-двоичные файлы с веб-сервера) могут снизить производительность и/или потребовать подключения к Интернету.

Уведомление пользователей о запутанном коде [ править ]

Некоторые антивирусные программы, такие как AVG AntiVirus , [20] также будет предупреждать своих пользователей, когда они попадают на веб-сайт с кодом, который замаскирован вручную, поскольку одной из целей запутывания может быть сокрытие вредоносного кода. Однако некоторые разработчики могут использовать обфускацию кода с целью уменьшения размера файла или повышения безопасности. Среднестатистический пользователь может не ожидать, что его антивирусное программное обеспечение будет выдавать предупреждения о безвредном фрагменте кода, особенно от доверенных корпораций, поэтому такая функция может фактически удержать пользователей от использования законного программного обеспечения.

Mozilla и Google запрещают расширения браузера, содержащие запутанный код, в своем магазине дополнений. [21] [22]

Лицензии на обфускацию и авторское лево [ править ]

Были споры о том, незаконно ли обходить с авторским левом, лицензии на программное обеспечение публикуя исходный код в запутанной форме, например, в тех случаях, когда автор менее желает сделать исходный код доступным. Эта проблема решена в Стандартной общественной лицензии GNU, требуя предоставления «предпочтительной формы для внесения изменений». [23] На веб-сайте GNU говорится: «Запутанный «исходный код» не является настоящим исходным кодом и не считается исходным кодом». [24]

Декомпиляторы [ править ]

Декомпилятор может выполнить реверс-инжиниринг исходного кода из исполняемого файла или библиотеки. Декомпиляцию иногда называют атакой «человек в конце» (клещ), основанной на традиционной криптографической атаке, известной как « человек посередине ». Он передает исходный код в руки пользователя, хотя этот исходный код часто трудно читать. Исходный код, скорее всего, будет иметь случайные имена функций и переменных, неправильные типы переменных и использовать логику, отличную от исходного исходного кода (из-за оптимизации компилятора).

Обфускация модели [ править ]

Обфускация модели — это метод, позволяющий скрыть внутреннюю структуру модели машинного обучения . [25] Обфускация превращает модель в черный ящик. Это противоречит объяснимому ИИ . Модели обфускации также можно применять к обучающим данным перед их подачей в модель для добавления случайного шума. Это скрывает конфиденциальную информацию о свойствах отдельных образцов и групп образцов. [26]

См. также [ править ]

Ссылки [ править ]

  1. ^ «Что такое обфускация (обфу)? — Определение с сайта WhatIs.com» . ПоискКачествоПрограммного обеспечения . Проверено 1 февраля 2019 г.
  2. ^ Бинсток, Эндрю (6 марта 2003 г.). «Обфускация: скрытие вашего кода от посторонних глаз» . Архивировано из оригинала 20 апреля 2008 года . Проверено 25 ноября 2013 г.
  3. ^ Этвуд, Джефф (15 мая 2005 г.). «Джефф Этвуд, 15 мая 2005 г.» . Codinghorror.com . Проверено 25 ноября 2013 г.
  4. ^ «Обфускация» . Кентер.demon.nl. Архивировано из оригинала 4 марта 2016 года . Проверено 25 ноября 2013 г.
  5. ^ «Учебные пособия по C++. Обфусцированный код. Простое введение» . DreamInCode.net . Проверено 25 ноября 2013 г.
  6. ^ «Учебники по C — запутанный код на C» . 7 июля 2011 года . Проверено 25 ноября 2013 г.
  7. ^ По состоянию на 25 ноября 2013 г., 18:22 по Гринвичу. «Пер(а)рлы в линейном шуме» . Perlmonks.org . Проверено 25 ноября 2013 г. {{cite web}}: CS1 maint: числовые имена: список авторов ( ссылка )
  8. ^ «Обфускация – Haskell Wiki» . 16 февраля 2006 года. Архивировано из оригинала 30 августа 2017 года . Проверено 3 марта 2020 г.
  9. ^ Монфор, Ник. «Запутанный код» (PDF) . Архивировано из оригинала (PDF) 24 апреля 2019 года . Проверено 24 ноября 2017 г.
  10. ^ Бен Куртович. «Запутывающее «Привет, мир!» » . benkurtovic.com .
  11. ^ «Обфусцированный Питон» . wiki.c2.com .
  12. ^ «Первый ежегодный запутанный контент Python» . code.activestate.com .
  13. ^ domas (3 ноября 2022 г.), xoreaxeaxeax/movfuscator , получено 5 ноября 2022 г.
  14. ^ Break Me00 The MoVfuscator Превращает движение в душераздирающий кошмар RE Кристофер Домас , получено 5 ноября 2022 г.
  15. ^ Уильямс, Эл (21 марта 2021 г.). «Одна инструкция, чтобы управлять ими всеми: компилятор C генерирует только MOV» . Хакадей . Проверено 23 октября 2023 г.
  16. ^ «JAPH — еще один Perl-хакер» . pm.org . Перл Монгеры. Архивировано из оригинала 16 мая 2013 года . Проверено 27 февраля 2015 г.
  17. ^ «Прорыв в криптографии может сделать программное обеспечение неуязвимым» . Проводной . ISSN   1059-1028 . Проверено 14 марта 2021 г.
  18. ^ Джайн, Аюш; Линь, Хуэйцзя; Сахай, Амит (2020). «Обфускация неотличимости от вполне обоснованных предположений» . Архив электронной печати по криптологии . arXiv : 2008.09317 .
  19. ^ « Можем ли мы запутать программы?», Боаз Барак . Math.ias.edu. Архивировано из оригинала 23 марта 2016 года . Проверено 25 ноября 2013 г.
  20. ^ «Блокировка веб-сайта, единственный способ исправить это — отключение HTTPS… | AVG» . support.avg.com . 21 июля 2020 г. Проверено 4 февраля 2022 г.
  21. ^ в 05:01, Томас Клэберн, Сан-Франциско, 2 октября 2018 г. «Google принимает меры против замаскированного кода в Интернет-магазине Chrome» . www.theregister.co.uk . Проверено 12 ноября 2019 г. {{cite web}}: CS1 maint: числовые имена: список авторов ( ссылка )
  22. ^ Чимпану, Каталин. «Mozilla объявляет о запрете расширений Firefox, содержащих запутанный код» . ЗДНет . Проверено 12 ноября 2019 г.
  23. ^ «Обоснование формулировки «предпочтительной формы произведения для внесения в него изменений» в GPL» . Lwn.net . Проверено 25 ноября 2013 г.
  24. ^ «Что такое свободное программное обеспечение?» . gnu.org . Проверено 18 декабря 2014 г.
  25. ^ Гао, Ву, Цзин; Гранди, Джон Чен, Сяо; Ли, Ли (2023) Чжоу, Минъи ; . {{cite journal}}: Для цитирования журнала требуется |journal= ( помощь )
  26. ^ Чжан, Тяньвэй; Он, Цзэчэн; Ли, Руби Б. (12 июля 2018 г.). «Машинное обучение с сохранением конфиденциальности посредством обфускации данных». arXiv : 1807.01860 [ cs.CR ].

Дальнейшее чтение [ править ]

Внешние ссылки [ править ]

Arc.Ask3.Ru: конец оригинального документа.
Arc.Ask3.Ru
Номер скриншота №: F247612978351F739402C9EADAC4360D__1718283060
URL1:https://en.wikipedia.org/wiki/Code_obfuscation
Заголовок, (Title) документа по адресу, URL1:
Obfuscation (software) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть, любые претензии не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, денежную единицу можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)