Axel Rietschin, inżynier firmy Microsoft zajmujący się rozwojem jądra Windows, 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 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ż 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.

Źródło: opennet.ru
