Один из разработчиков Microsoft считает, что ReactOS не мог обойтись без заимствования кода Windows

Аксель Ритчен (Axel Rietschin), инженер компании Microsoft, занимающийся разработкой ядра Windows, поставил под сомнение возможность разработки операционной системы ReactOS без заимствования кода из Windows. По его мнению разработчики ReactOS воспользовались кодом из ядра Windows Research, исходные тексты которого лицензировались для университетов. Утечки данного кода публиковались в различных местах, в том числе на GitHub.

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

Напомним, что в 2006 году в ReactOS было выявлено включение около 100 строк кода на ассемблере, полученного в результате декомпиляции Windows. После этого разработка примерно на месяц была приостановлена на проведение аудита возможных пересечений. С тех пор разработчики ReactOS особенно трепетно относятся к проверке предлагаемых для включения в состав проекта исходных текстов.

При проведении обратного инжиниринга для соответствия законодательству США в области авторских прав, проект ReactOS применяет двойную схему, при которой один исследователь проводит анализ работы и на его основе составляет документацию, а другой разработчик на основе этой документации создаёт новую реализацию для ReactOS. Не исключено, что на этапе анализа могли использоваться полученные в результате утечек исходные тексты Windows и в составляемой документации были отражены совпадающие имена функций и структур, но при применяемой в ReactOS схеме разработки реализация будет совершенно иной и созданной с нуля.

Кроме того, уже были факты публикации по недосмотру сборок ядра NT и W2K с неочищенной отладочной информацией, включающей данные об именах внутренних переменных. Многие имена структур и функций также приводятся в заголовочных файлах, входящих в SDK/DDK, а структуру системных вызовов можно определить через анализ таких компонентов, как COM runtime. Без чистки символьных таблиц имён часто публикуются hotfix-обновления. Кроме того, некоторые программы и драйверы для Windows используют непубличные недокументированные вызовы, а многие скрытые возможности Windows всплывают в процессе адаптации запуска в системах вируализации и эмуляторах.

Разработчики ReactOS могли использовать данные компоненты в процессе обратного инжиниринга.

Источник: opennet.ru

Добавить комментарий