Jeden z deweloperów Microsoftu uważa, że ReactOS nie mógłby się obejść bez zapożyczenia kodu z Windows

Axel Rietschin, inżynier firmy Microsoft zajmujący się rozwojem jądra Windows, zakwestionował możliwość opracowania systemu operacyjnego ReactOS bez korzystania z kodu Windows. Jego zdaniem programiści ReactOS wykorzystali kod z jądra Windows Research, którego źródła były licencjonowane dla uczelni. Przecieki dotyczące tego kodu były publikowane w różnych miejscach, w tym na GitHubie.

Rietschin jest przekonany, że fizycznie niemożliwe jest napisanie jądra ReactOS od podstaw w jego obecnej formie, korzystając tylko z dostępnej publicznej dokumentacji. W szczególności nazwy wewnętrznych struktur i funkcji w jądrze ReactOS są takie same, jak w jądrze Windows Research, podczas gdy te nazwy nie są eksportowane podczas kompilacji i nie występują nigdzie indziej poza oryginalnym kodem. To samo dotyczy nazw makr i parametrów, których nie można dokładnie odtworzyć bez zaglądania do oryginalnego kodu Windows.

Przypomnijmy, że w 2006 roku w ReactOS zostało ujawniono wdrożenie około 100 linii kodu asemblerowego, uzyskanego w wyniku dekompilacji Windows. Po tym rozwój został wstrzymany na około miesiąc w celu przeprowadzenia audytu możliwych zbieżności. Od tego czasu twórcy ReactOS szczególnie starannie podchodzą do weryfikacji źródeł, które mają zostać włączone do projektu.

Podczas przeprowadzania inżynierii wstecznej w celu zgodności z przepisami USA w zakresie praw autorskich, projekt ReactOS stosuje podwójną strategię, w której jeden badacz prowadzi analizę pracy i na jej podstawie tworzy dokumentację, a drugi programista na podstawie tej dokumentacji tworzy nową implementację dla ReactOS. Nie ma wykluczone, że na etapie analizy mogły być używane źródła Windows uzyskane w wyniku wycieków i w tworzonej dokumentacji mogły być odzwierciedlone zbieżne nazwy funkcji i struktur, ale przy stosowanej w ReactOS metodzie rozwój będzie całkowicie inny i stworzony od zera.

Ponadto, już były fakty publikacje dotyczące niedoskonałości w budowie jądra NT i W2K z nieoczyszczonymi informacjami debugowania, w tym danymi o nazwach wewnętrznych zmiennych. Wiele nazw struktur i funkcji jest również podawanych w plikach nagłówkowych wchodzących w skład SDK/DDK, a strukturę wywołań systemowych można określić poprzez analizę takich komponentów jak COM runtime. Bez oczyszczenia tabel symboli nazwy często są publikowane w aktualizacjach hotfix. Ponadto niektóre programy i sterowniki dla systemu Windows wykorzystują niepubliczne, niedokumentowane wywołania, a wiele ukrytych możliwości Windows pojawia się podczas adaptacji uruchamiania w systemach wirtualizacji i emulatorach.

Deweloperzy ReactOS mogli wykorzystać te komponenty w procesie inżynierii odwrotnej.

Odtwarzaj wideo

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster