Slashdot Mirror


Did Microsoft Borrow GPL Code For a Windows 7 Utility?

Goatbert writes "Rafael Rivera over at WithinWindows.com has found evidence that Microsoft has potentially stolen code from an open source/GPL'd project (ImageMaster) for a utility made available on the Microsoft Store to allow download customers to copy the Windows 7 setup files to a DVD or USB Flash Drive. If Rivera's evidence holds up, this could be some serious egg in the face for Microsoft at a time when they're getting mostly good press from the tech media."

25 of 493 comments (clear)

  1. Re:"Obviously lifted" not so obvious by jdkane · · Score: 4, Informative

    Except that a truly Microsoft-written ReadBytes method on the .NET Framework can be that simple, for example one int parameter http://msdn.microsoft.com/en-us/library/system.io.binaryreader.readbytes.aspx
    So I wouldn't even jump to conclusions based on the signature of the method in question as to who it might have come from.

  2. Re:"Obviously lifted" not so obvious by caffeinemessiah · · Score: 4, Informative

    Except that a truly Microsoft-written ReadBytes method on the .NET Framework can be that simple, for example one int parameter http://msdn.microsoft.com/en-us/library/system.io.binaryreader.readbytes.aspx [microsoft.com]

    There's a difference between a calling a method, where the object has internal state, and a C Win32 API function call, i.e., sans objects. I absolutely guarantee that you won't see many pretty signatures in the Win32 API. I'd bet that 99% of the Win32 API function SIGNATURES won't make it through a standards-compliant compiler without Windows.h. Anyway, my comment was supposed to be funny, but on second thought, it might actually deserve that informative mod.

    Don't even get me started on the dual-version ANSI and Unicode functions, although given the mess that the Win32 API is, it's probably an elegant solution.

    --
    An old-timer with old-timey ideas.
  3. Re:"Obviously lifted" not so obvious by VGPowerlord · · Score: 2, Informative

    Except that a truly Microsoft-written ReadBytes method on the .NET Framework can be that simple, for example one int parameter http://msdn.microsoft.com/en-us/library/system.io.binaryreader.readbytes.aspx [microsoft.com]

    There's a difference between a calling a method, where the object has internal state, and a C Win32 API function call, i.e., sans objects. I absolutely guarantee that you won't see many pretty signatures in the Win32 API. I'd bet that 99% of the Win32 API function SIGNATURES won't make it through a standards-compliant compiler without Windows.h. Anyway, my comment was supposed to be funny, but on second thought, it might actually deserve that informative mod.

    Don't even get me started on the dual-version ANSI and Unicode functions, although given the mess that the Win32 API is, it's probably an elegant solution.

    I was under the impression that we were talking about a function in a program, not an API call.

    --
    GLaDOS for President 2016! "Well here we are again. It's always such a pleasure." -- GLaDOS, 2011
  4. Re:not sureprised by McGiraf · · Score: 4, Informative

    Copyright infringement is not stealing. No mater who does it.

  5. Re:no big deal by jimicus · · Score: 2, Informative

    well i think that the gpl only requires you to serve up the source code *upon request*, so MS has not yet broken the law, i suppose.

    You also have to offer the source code - you can't keep your mouth shut and hope nobody ever asks for it.

  6. Re:not sureprised by Abreu · · Score: 4, Informative

    Ok, then... If MS used GPL code, then they did not "Borrow" it either

    They used it in violation of copyright

    --
    No sig for the moment.
  7. Re:"Obviously lifted" not so obvious by ozmanjusri · · Score: 4, Informative
    The code in question seems to be called into scrutiny because the two areas of code bear the same name (ReadBytes) and operate similarly.

    The ReadBytes code was just one example

    If you read TFA (yeah, I know...) you'll see the author has updated that original example with others.

    It looks like Microsoft's defence will be that the EULA says "“You may not reverse engineer, decompile or disassemble the software". They'll probably charge the guy with a DMCA violation...

    --
    "I've got more toys than Teruhisa Kitahara."
  8. Re:"Obviously lifted" not so obvious by cwebster · · Score: 2, Informative

    You are getting copyright and patent confused. Copyright protects the words, not the process. Copyrighting a software program used to be registered with the same form a book was. If they cut and paste a bunch of copyrighted code, that is infringement. If they change it slightly, that is an unauthorized derivative of the work. They can however come up with a clean-room solution where someone who has never seen the code comes up with something that looks exactly like it, and that is not infringement because they did not copy the code.

    Patents on the other hand dont protect the implementation, they protect the idea/process that is being implemented. In that case no matter what language/program/style/etc you wanted to use, if you implement a patented process you are opening yourself up to lawsuits. This allegation has nothing to do with patents though.

  9. Re:not sureprised by Spy+der+Mann · · Score: 4, Informative

    Microsoft is evil. Always has been. Always will be.

    Maybe you're very young, but I seem to recall that Microsoft was at one time held as a sort of liberator from IBM's hegemony. I guess it's all a matter of perspective...

    Bill Gates' open letter to hobbyists. Any questions?

  10. Re:"Obviously lifted" not so obvious by ShadowRangerRIT · · Score: 2, Informative

    You misunderstand copyright. Copyright protects a particular expression of an idea, not the idea itself. You're thinking of patents, which are completely different. The GPL is copyright based, not patent based. A perfectly valid way to bypass the GPL is to, source unseen, re-implement the function to mimic the behavior of the desired GPL function. So no, if Microsoft happened to write the exact same function from scratch without reference to GPL source code, it's not infringement.

    --
    $_ = "wftedskaebjgdpjgidbsmnjgcdwatb"; tr/a-z/oh, turtleneck Phrase Jar!/; print
  11. Re:It's not "stealing"...right? by amorsen · · Score: 2, Informative

    No, you are defrauding whoever you sold the property to.

    --
    Finally! A year of moderation! Ready for 2019?
  12. Re:Gpl violation by arose · · Score: 3, Informative

    True, and it's interesting how the FOSS movement delightfully and intentionally has made every piece of GPL3 code a trojan horse that can destroy a company's business model if a single programmer without the knowledge of the business copies a snippet of code to make his job easier.

    Not really, they just don't accept the license and deal with the copyright violation instead, just like they would if the programmer copied a piece of proprietary software.

    --
    Analogies don't equal equalities, they are merely somewhat analogous.
  13. Re:From TFA by Ash-Fox · · Score: 2, Informative

    It's completely legal where I live to disassemble and reverse engineer software, could be for the author too.

    --
    Change is certain; progress is not obligatory.
  14. Re:Knee jerk by KarmaMB84 · · Score: 4, Informative

    The magic numbers are from a file format specification. You're not going to change those magic numbers if you want the tool to work.

  15. Re:Why was this posted on slashdot? by FunPika · · Score: 2, Informative

    To get people to bash Microsoft of course. ;)

    --
    After years of not using a signature, I am going to make one to say the following: Fuck Beta
  16. Re:That's his evidence? by Ironsides · · Score: 5, Informative

    Actually, it does suggest class and type names. Start here Now, show me more than 15 lines and I'll start to believe it was copied. Say, show me what called RealLogicalDescriptor (and all of RealLogicalDescriptor too) in combination with all of UdfReader.cs. Preferably in text and not in an image. Actually, just give me the MS code and I'll line it up to the ImageMaster code myself.

    --
    Fly me to the moon Let me sing among those stars Let me see what spring is like On jupiter and mars
  17. Re:"Obviously lifted" not so obvious by kjart · · Score: 4, Informative

    If you read TFA (yeah, I know...) you'll see the author has updated that original example with others [withinwindows.com].

    OP clearly did read TFA since he was criticizing the specifics provided. I'm not sure why you're taking a shot at that since the update was clearly made after the comment was posted.

    It looks like Microsoft's defence will be that the EULA says "“You may not reverse engineer, decompile or disassemble the software". They'll probably charge the guy with a DMCA violation...

    Why does it look like that exactly? Are you getting this from anywhere or just pulling it out of your ass?

  18. Re:not sureprised by Anonymous Coward · · Score: 1, Informative

    > Why is it that the only copyright violations that upset the /. masses are those involving code under the GPL?

    Because Slashdotters care about sharing and infringing upon the GPL harms that. Many of us don't give a used fig about copyrights in and of themselves.

  19. patents by falconwolf · · Score: 2, Informative

    Patents on the other hand dont protect the implementation, they protect the idea/process that is being implemented.

    • "Congress intended that a patent would protect a unique implementation of an idea or a formula that uniquely described a natural transformation."
    • "Patents protect the implementation of ideas; copyrights protect the expression of ideas; trade secrets protect confidential information; and trademarks protect the identification of the source of goods or services."
    • "Without the ability to protect the expression and implementation of its ideas, a business has little chance of success."

    Patent do protect specific implementations of ideas, not the ideas themselves.

    Falcon

  20. You misunderstand copyright. by falconwolf · · Score: 2, Informative

    Copyright protects a particular expression of an idea, not the idea itself. You're thinking of patents, which are completely different.

    And you misunderstand patents. Look at my reply to the post above yours. Especially see what Findlaw says about patents.

    Falcon

  21. Re:"Obviously lifted" not so obvious by Dumnezeu · · Score: 2, Informative

    True, but if you RTFA, you see this: http://www.withinwindows.com/wp-content/uploads/2009/11/example1.png We're not talking about some int parameter here, we're talking about huge chunks of identical code.

    --
    Yes, it's sarcasm. Deal with it!
  22. Re:not sureprised by chrysrobyn · · Score: 3, Informative

    Maybe you're very young, but I seem to recall that Microsoft was at one time held as a sort of liberator from IBM's hegemony. I guess it's all a matter of perspective...

    Maybe I am very young, but I seem to recall Gary Kildall having a few words to say about both Microsoft and IBM in this era of liberation you speak of. Something about Microsoft stealing CP/M through a thinly veiled Seattle Computer Products?

  23. Re:I, for one by icebraining · · Score: 2, Informative

    The code is not part of Windows 7, it's a tool to download copies of it.

  24. Re:"Obviously lifted" not so obvious by asaz989 · · Score: 2, Informative

    Except... he didn't name all the local variables (they're named, in his decompiled version, things like "num" and "index", based on their syntactic use in the decompiled version). It's just that these variables happen to correspond exactly in their use and assignments to things like numPartitionMaps and position in the ImageMaster source.

    The method and class names, on the other hand, are actually present in the binary file (usually as symbols used for linking as a shared library or, in object-oriented languages like Java and C++, used at run-time to figure out things like inheritance. And (oh great coincidence) they match up character-for-character. And let's not even get into the fact that in structure of the classes and methods (at what position in the code calls are made to static methods of external classes, which of these external classes are the same as each other, at what points methods are called on specific variables, etc.) these two code snippets match up exactly.

  25. Re:"Obviously lifted" not so obvious by noidentity · · Score: 2, Informative

    I put them there, but someone in Slashdot stole the comments that referenced the GPL!! They're trying to steal my programs, just like I told you.