eponim2008 (eponim2008) wrote,
eponim2008
eponim2008

Categories:

Что такое обфускация?


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

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

Мой отец так и сделал: съездил в командировку, представил необходимые чертежи. Завод крутанул свои мощности и произвел требуемое количество изделий по местному заказу. Уже через несколько месяцев мелитопольцы смогли отдыхать на новых парковых скамейках, которые, в самом деле, оказались очень удобными.

То, что сделал в те давние далекие годы мой папенька, сейчас называется учеными словами «обратная разработка» или же «реверс-инжиниринг».

Примеров «реверс-инжиниринга» в истории мировой техники – воз и маленькая тележка. «Передирали» все и у всех. Известно, что советский грузовик АМО-3 был почти полной копией американского грузовика AutoCar-SA, а бомбардировщик Ту-4 в конструкторском бюро А. Н. Туполева почти полностью скопировали с американского самолета Boeing B-29 Superfortress. Последняя история довольно весело описана Виктором Суворовым в его книге «Победитель» в главе «Кирпичный бомбардировщик».

В министерстве электронной промышленности СССР приказом министра были запрещены любые рационализаторские предложения. Почему? А потому, что минэлектронпром занимался копированием электронных приборов, чертежи которых разведчики крали в США. А посему, шаг вправо, шаг влево от этих чертежей считался нарушением технологической дисциплины и сурово карался. Какая уж тут рационализация!

Не следует думать, что только Советский Союз отличался в этом, мягко говоря, реверс-инжиниринге. Как уже было сказано, крали все и у всех. Автомат Калашникова был настолько прост в конструкции и в производстве, что во многих странах его копировали без лицензии и без разрешения Ижевского завода. Во время Второй мировой войны немцы скопировали и применяли советский 120-миллиметровый миномет. А американцы и англичане, не мучаясь угрызениями совести, скопировали очень удобные немецкие канистры для бензина. Потом то же самое сделала советская промышленность. Этими канистрами, кажется, пользуются до сих пор. Только кто помнит, что они – немецкие?

Китайская индустрия – это тоже всем известно – очень часто базируется именно на грамотной и дотошной обратной разработке. Американские, японские или европейские образцы копировались, производились и продавались по ценам значительно более низким, чем цена оригиналов. Тем и жили. Да и по сю пору живут.

В области же программирования обратная разработка процветала и расцветала еще более пышным цветом. Ведь для того, чтобы скопировать компьютерную программу даже усилий больших не требуется. А программа, как известно, это набор компьютерных кодов. Эти коды легко проанализировать, а проанализировав, понять алгоритм. Алгоритм же – самое главное в любой компьютерной программе. Появляется возможность захватить know how производителя, так сказать, «малой кровью, могучим ударом». На основе расшифрованного алгоритма, можно создать «собственную» версию программы, немного по-другому выглядящую, а значит, как бы и не краденную.

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

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

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

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

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

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

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

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



Статья опубликована на сайте Школа жизни

Статья опубликована на сайте Школа жизниПолезные ссылки:

  1. Юричев Д., Введение в reverse engineering для начинающих

  2. Что такое обфускация

  3. Защита приложения. Ч. 2. Обфускация

  4. О чудесах современной обфускации

  5. Реверсинг и обфускация, как это работает


from Facebook
Tags: компьютеры, криптология, непонятные слова, школа жизни
Subscribe

Buy for 20 tokens
Да-да, речь про помощника Навального, который сейчас находится в изгнании. (фото-скрин: Канал Навальный LIVE) Тут прям серия настоящих шедевров, вскрывающая правду про реальное отношение к нашей стране. Благодарить за такое нужно наших пранкеров Вована и Лексуса, Владимира Кузнецова и…
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 0 comments