Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
A A Maluk.doc
Скачиваний:
8
Добавлен:
01.03.2025
Размер:
11.62 Mб
Скачать

Глава 5. Интеллектуальная собственность в сфере информационных технологий 223

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

Если программисты просто декомпилируют программу и скопируют ис­ходный код в свои собственные программы, это будет нарушением закона об авторском праве. Поэтому чаще всего для обратной разработки используются специальные инструменты - дизассемблеры и отладчики [94]. Первые ис­пользуются для того, чтобы преобразовать имеющийся машинный код про­граммы в удобочитаемый код на языке программирования низкого уровня - на языке ассемблера. Отладчики же позволяют программистам наблюдать за выполнением исследуемой программы, останавливать и перезапускать ее, прогонять в замедленном темпе, изменять значения в памяти и даже, в неко­торых случаях, возвращать назад по времени, чтобы можно было понять суть всех операций. При дизассемблировании прямой машинный код программы читается и понимается в своем чистом виде, только с помощью мнемоник машинного языка. Этот способ применим к любой компьютерной программе, но достаточно трудоемок и длителен. Для обратной разработки протоколов обмена данными выполняется анализ обмена данными с помощью анализа­тора шины и сетевого анализатора трафика.

Обычно исследование и обратная разработка программ осуществляются с целью:

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

  • получения некоторых закрытых сведений о внутреннем устройстве про­граммы - о протоколе сетевого обмена с сервером, устройством, ключом защиты, взаимодействия с другой программой.

  • получения информации о способах экспортирования данных из много­численных проприетарных форматов файлов (часто применяется, напри­мер, в отношении форматов, поддерживаемых М1сго$ой ОШсе).

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

224 Этика в сфере информационных технологий

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

Примеры обратной разработки

Начнем с наиболее показательного примера, как обратная разработка из­менила рынок персональных компьютеров в течение нескольких лет. В нача­ле 1980-х годов компания 1ВМ была лидером растущей индустрии персо­нальных компьютеров [60]. Она обладала практически всей долей рынка, по­скольку ей принадлежали авторские права на 1ВМ ВЮ8. Базовая система ввода-вывода ВЮ8 (англ. Вазю 1при1-Ои1ри1 ЗуМет) - это программа, нахо­дящаяся в постоянном запоминающем устройстве персонального компьютера и исполняющаяся при включении питания. Программа отвечает за базовые функции интерфейса и настройки оборудования, на котором она установлена, и объединяет аппаратные средства персонального компьютера с операцион­ной системой. Корпорация Сошрад Согрогайоп израсходовала свыше 1 млн долл. США на обратную разработку 1ВМ ВЮ8 и стала продавать первые клоны ШМ-совместимых персональных компьютеров. Корпорация Сотра^ продала 53 тыс. компьютеров за первый год своего бизнеса и создала новый рынок. Вскоре после этого, она совсем вытеснила компании 1ВМ и Раскагс! Ве11 с рынка домашних компьютеров. Это был один из серьезных шагов для развития производства 1ВМ-совместимых компьютеров от сторонних произ­водителей.

Другой случай иллюстрирует выполнения обратной разработки для обес­печения функциональной совместимости сервера приложений 8ашЬа, входя­щего в состав ОС ОММлпих (Ьир://\уду^.затЬа.ог§), с файл-сервером компа­нии Мюгозой. Создание сервера 8атЬа, потребовало обратной разработки протокола 8егуег Мезза^е В1оск (8МВ) для подключения к проприетарному файл-серверу Мюгозой 8МВ. Сервер 8агпЬа позволяет пользователям Ыпих обмениваться документами и файлами с операционными системами Мюгозой АА/шс1олу5. Группе разработчиков 8ашЬа пришлось выполнить обратную раз­работку проприетарного протокола 8МВ, чтобы выяснить, как обеспечить взаимодействие с компьютерами, работающими под управлением \\^пс1о\У8.

Хорошей иллюстрацией является создание системы Ореп ОШсе (Ъйр://\у\у\у.орепоШсе.ог§), бесплатной, с открытым исходным кодом, аль­тернативы Мюгозой ОШсе. Ореп ОШсе позволяет пользователям ^шс1о\У5, Мае и Ыпих открывать и сохранять документы форматов Мюгозой ОШсе: файлы в формате \Уогс1 (.с!ос), Ехсе1 (.х1з) и Ро^егРот* (.рр1). Для того чтобы иметь возможность читать и создавать файлы в этих проприетарных форма­тах, разработчикам программного обеспечения Ореп ОШсе пришлось деком­пилировать файлы форматов Мюгозой ОШсе.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]