Аксель Рытчэн (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
