Earlier quoted context omitted.
In the United States, clean room reverse engineering is legal for interoperability purposes. In general reverse engineering is legal unless there is a contract involved prohibiting it. Unless you’re reusing the original source code, there’s no copyright violation per se, simply functionality reimplemented in a compatible manner. The lengths that ReactOS goes to might actually be overkill, but no one can credibly clai…
Does a software license in this case count as a contract? Moreover, interoperability is not the same as distribution no? Honestly ReactOS's lengths do not seem like overkill to me, quite the contrary. Even re-implementing an API is legally suspect these days (see: Oracle vs. Google re: Android). Copying the internals of a piece of software by having one person explain verbally exactly how it works to another person w…
A Kernel Engineer at Microsoft's Answer to “What Do You Think about ReactOS?”
61–70 of 291 posts
Re: A Kernel Engineer at Microsoft's Answer to “What Do You Think about ReactOS?”
#62Earlier quoted context omitted.
The comment is from one dude in late 2017 - it probably doesn't mean shit. Like dude is talking about "there is absolutely no way on earth this was written from a clean sheet only from the available public documentation.", but that's not the bar for reverse engineering systems. It is legal (if you do it right anyways) to examine, use, and disassemble software in the process of reverse engineering.
What about EULA then? I know in some cases it is not enforceable, but I think it might apply in case of reverse engineering.
Re: A Kernel Engineer at Microsoft's Answer to “What Do You Think about ReactOS?”
#63Can you taste the power-trip?
Re: A Kernel Engineer at Microsoft's Answer to “What Do You Think about ReactOS?”
#64The researcher is unable to name any data structure in the source file. If -- as he claims -- it's littered with them, this should be easy to prove. His shock that this could be a clean room implementation would be meaningful, except that the WINE project has successfully clean-room reverse engineered much of the Win32 API (including private stuff) by observing how programs use them. Literally no one wants to read Mi…
Just a tip - if you want to make statements and have people take you seriously, stick to facts and don't add stupid things like: > Literally no one wants to read Microsoft code anyway; knowing them, it's probably horrendous. This added NOTHING to your previous statement, and only served to make me think your acting as a troll and actually worked against everything else you had previously said.
Don't use the word "stupid" when another, less self-righteous word suffices.
Re: A Kernel Engineer at Microsoft's Answer to “What Do You Think about ReactOS?”
#65I have always been confused as to what level of reverse engineering is legally acceptable in this case. Is having a sneak peak at one of the win32 dlls with IDA or Radare allowed? Or, are you expected to re-invent the wheel based on documentation and observed behaviour? In the case of the former, how can it be conclusively legally proven that it was not reverse engineered (from machine code)?
In the U.S. it is perfectly legal to reverse anything that you obtained legally.
And https://en.wikipedia.org/wiki/Bowers_v._Baystate_Technologie....
Note that pretty much any EULA I've seen in the past 10 years has had an anti reverse engineering clause.
Re: A Kernel Engineer at Microsoft's Answer to “What Do You Think about ReactOS?”
#66Earlier quoted context omitted.
Just a tip - if you want to make statements and have people take you seriously, stick to facts and don't add stupid things like: > Literally no one wants to read Microsoft code anyway; knowing them, it's probably horrendous. This added NOTHING to your previous statement, and only served to make me think your acting as a troll and actually worked against everything else you had previously said.
> don't add stupid things like Don't use the word "stupid" when another, less self-righteous word suffices.
I stand by my choice of descriptor for that sentence.
Re: A Kernel Engineer at Microsoft's Answer to “What Do You Think about ReactOS?”
#67Earlier quoted context omitted.
I do not wish to view the leaked copies of Windows source code, unfortunately. It does have potential legal ramifications, in the United States. If someone who doesn't care can attempt to audit it, that would be absolutely great. That said, KiInitializeContextThread isn't 'secret' enough to not appear, it is a well-known bit of internals. Here you can find some docs about it on Microsoft's own website, albeit I have…
Just going to throw this out there, if Microsoft cared that anyone viewed it, wouldn't they have taken it down by now?
Still, even if Microsoft doesn't care, Wine Project and ReactOS care. My employer might care. There are unfortunately legal implications that exist, and if people want to play by the books they have to at least do the basic due diligence.
If you genuinely just don't care, you can lie to them and claim you never saw the original code, and attempt to cloak any code theft to make it indistinguishable from clean-room reverse engineering. Nothing stops you from doing that. Hell, the trouble is that it really can't be proven for sure. Even holding the positions I do on forums wouldn't prove my own innocence in such a situation, though maybe it helps build a case.
Re: A Kernel Engineer at Microsoft's Answer to “What Do You Think about ReactOS?”
#68The researcher is unable to name any data structure in the source file. If -- as he claims -- it's littered with them, this should be easy to prove. His shock that this could be a clean room implementation would be meaningful, except that the WINE project has successfully clean-room reverse engineered much of the Win32 API (including private stuff) by observing how programs use them. Literally no one wants to read Mi…
Just a tip - if you want to make statements and have people take you seriously, stick to facts and don't add stupid things like: > Literally no one wants to read Microsoft code anyway; knowing them, it's probably horrendous. This added NOTHING to your previous statement, and only served to make me think your acting as a troll and actually worked against everything else you had previously said.
Re: A Kernel Engineer at Microsoft's Answer to “What Do You Think about ReactOS?”
#69ReactOS underwent a big audit years ago because people kept saying things like this, and AFAIK it's over and nothing exciting turned up. [1] - https://reactos.org/wiki/Audit
The author of post, Axel Rietschin at Microsoft, should remove this post and publicly apologize for his baseless defamation of ReactOS ("like a baby mosquito on the back of an giant elephant") if he cannot give authoritative evidence to back his claims. There may be copyright issues in some subroutines, but calling the entire project "a ripoff of the Windows Research Kernel" is an extraordinary, arrogant claim. If yo…
If only he had called it a cancer. That seems to work well generally.
Re: A Kernel Engineer at Microsoft's Answer to “What Do You Think about ReactOS?”
#70There are lots of good answers in this thread. In particular, someone took the time to look at the code, and that person wrote it only took them minutes to find similarities that make my opinion difficult to dismiss.
About the lack of documentation, consider that only a tiny fraction of the kernel’s internals surface in the DDK. All our internal headers have a .w extension and are littered with directives like begin_ntddk, end_ntddk (and many others), so a large number of structures and many fields inside existing structures are hidden or replaced by a generic reserved field.
Macros names, parameters, etc. never appears in the compiled code. It is highly improbable (I studied math, “impossible” is not a word lol), almost surely impossible that a clean-room reimplementation ends up using macros for the same things, let alone macros with the same or similar names.
Also, consider that optimizing compilers emit code that is extremely hard to follow even for us. Heck, the debugger, together with the PRIVATE symbols that has the name of all private symbols, and the actual source code, has a hard time to sync with the disassembly with the code when stepping through. While it is possible to write code that behaves similarly seen from outside, it is again implausible that the expression of this behavior results in code that looks nearly identical to the original. Consider that the name of local variables is never part of the binaries, only public symbols are. Also, consider that the compiler aggressively optimizes out variables to reduce memory accesses and holds values in CPU registers as much as possible, so those variables, while conceptually present, don’t really exist as such in the disassembled code. How to explain that a reimplementation comes up with the same variables, declared in the same order, when those variables are optimized out by the compiler?
What about in-line functions, both explicit and auto-unlined by the compiler? How do you even know there was a function in the first place, and how do you invent a name that is identical to the name of said function in the original code?
Funnily, I had a conversation with a very seasoned kernel engineer (I report directly to him) about ReactOS and my Quora reply. He told me the team looked into ReactOS some time ago and reached the exact same conclusions: impossible.
In particular, this person distinctly remembers a hack he implemented (I’m not going to reveal any details, but suffice to say it was in response to some assertion by some 3rd parties that something Microsoft declared in a court of law as very difficult). He explained the hack to me in full details and, boy, hacky that was, and they found the same hack in ReactOS’s code, except that the présumer authors of that “clean room” implementation probably have no idea regarding why the hack was there.
Finally, “clean room” takes another sense when one knows that Alex (yes) worked for Microsoft until spring 2019 at least, as a contractor for a company called Cloudbase Solutions SRL. His Microsoft email address was v-alione@microsoft.com. I don’t know if he had access to the ntos code, or NTFS or anything else, but very close from home he was, for sure.
So to those who want to take my opinion to court, I say it’s a “careful what you wish for” type of thing, but again I’m not a lawyer, and in other regards ReactOS aligns with a very old version of the NT kernel. It is possible (my opinion only) that Microsoft does does not care?