Реальный мир использует для обфускации

Для каких целей вы хотите запутать свой код? Я не сталкивался с какими-либо реальными целями, кроме участвовал в конкурсах, но я уверен, что должны быть некоторые разумные и полезные причины для запутывания исходного кода.

Почему, в общем, вам нужно или нужно запутывать ваш код?

В каких реальных приложениях есть обфускация?

Ответ 2

Он замедляет (но не останавливает те, которые определены) от обратного проектирования вашего кода.

Ответ 3

  • усложнить хищение интеллектуальной собственности
  • безопасность через безвестность
  • минимизация полосы пропускания в таких случаях, как javascript minify

Ответ 4

Обфускация кода стала популярной в то время, когда перл был впервые выпущен. Это был действительно артефакт, чтобы сделать код более эффективным. В те ранние годы существовала пламенная война между созданным сообществом программистов "c" и "защитником" отступников. Ребята из старой школы, очевидно, превзошли ребята из Perl, разместив производительность. Перлы (?) В ответ начали придумывать хакеры производительности без учета удобочитаемости. Следовательно, запутывание. Это, конечно, уже не нужно, так как перлы (?) Уступили исполнение давно давным-давно (хороший пинь-ха-ха?). Обфускация НИКОГДА не использовалась для целей безопасности, которые я видел. На самом деле, если бы вы предложили ему какую-то меру безопасности, люди смеяли вас из комнаты. Хакеры, пытающиеся обойти безопасность, в целом хорошо осведомлены о языках и наборах инструментов, на которые они нацелены. Вот что делает их такими успешными. Обфускация никоим образом не является защитой от них.

Ответ 5

Скажем, у вас есть контракт с компанией на производство какого-либо программного обеспечения. Они - боль для работы и в основном сделали вашу жизнь живым адом. Часть контракта гласит, что после завершения проекта вы должны перевернуть весь исходный код...: D

Ответ 6

Прочитайте здесь

Цель обфускации - создать спутанность сознания. По мере создания путаницы способность человеческого разума понимать многогранный интеллектуальный концепции ухудшаются. Обратите внимание, что это предписание ничего не говорит об изменении передняя (исполняемая) логика - только представляя его непонятно. когда хорошо написанный инструмент обфускатора идет к работа над читаемыми инструкциями программы, вероятным побочным эффектом является то, что выход не только смутит человека переводчика, он сломает декомпилятор.

Ответ 7

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

  • Это неэтично, но с критически важным кодом, который только вы понимаете, это один из способов, которым некоторые программисты обеспечивают безопасность своей работы.

Ответ 8

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

Когда вы новый сайт, избиение толпы "меня тоже" может быть важным.

Но предупреждение слабое и не стоит времени IMHO.

Ответ 9

Обфускация кода обычно применяется к интерпретируемым языкам, таким как php, где исходный код не компилируется и должен быть распространен конечному пользователю. На самом деле обфускация разрушительна, и я использую ее только для того, чтобы честные честные люди. Знаешь, легче получить что-то взломанное, чем на самом деле добраться до кредитной карты.

Ответ 10

Самое важное использование - уменьшить размер. Я всегда использую его на Javascript и на Java-приложениях для мобильных телефонов (j2me).

Некоторые обфускаторы также могут выполнять небольшие оптимизации.

Ответ 11

Мы продаем obufuscators людям, проектирующим схемы в VHDL и Verilog. Поскольку такие проекты, как правило, довольно большие, есть много, чтобы запутывать (часто десятки тысяч строк), и пытаться перепроектировать их чрезвычайно сложно.

Ответ 12

В качестве конкретного примера взгляните на script за gmail. Это запутывается прежде всего, чтобы остановить какого-нибудь предприимчивого хакера, создающего альтернативный интерфейс, который говорит с серверами gmail.

Вторичное - хотя важно - преимущество - уменьшение размера script.

Ответ 13

Я использовал обфускацию кода в реальном проекте. Я разработал корпоративное программное обеспечение (сервлеты Java). С сервлетами скомпилированные классы ДОЛЖНЫ находиться на сервере для работы (WAR/JAR файлы). В большинстве случаев они находятся на серверах, на которых я могу либо a) контролировать, либо b) доверять операторам.

Однако один клиент настаивал на том, чтобы приложение находилось на сервере THEIR для использования "интрасети". Поскольку у клиента была история "менее звездной" этики, я принял меры предосторожности при запуске скомпилированной Java через обфускатор. Я также проверил результат достаточно хорошо, чтобы декомпилированный код был в значительной степени непригодным.

Вы могли бы спросить: "зачем иметь дело с таким клиентом?", но общий маркетинг этого конкретного приложения был вне моего контроля, хотя никаких проблем с безопасностью не было. Это было лучшее компромиссное решение для конкретного случая

Приветствия,

-R

Ответ 14

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

Сначала я столкнулся с запутанием в ранние дни Unix, когда большинство программ на C пришлось доставлять в исходной форме из-за множества разных архитектур процессора и отсутствия умных компоновщиков или обычных объектных форматов файлов.

С ростом интерпретируемых языков обфускация теперь, вероятно, используется более чем когда-либо для коммерческого программного обеспечения.

Ответ 15

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