Slashdot Mirror


After DeCSS, DVD Jon Releases DeDRMS

An anonymous reader writes "Jon Lech Johansen, who reverse engineered FairPlay back in January, and wrote the decryption code that was later used by an anonymous developer to create the playfair utility, has released a similar utility: DeDRMS. It's only 230 lines. T-shirts anyone?"

37 of 610 comments (clear)

  1. Curious how he wrote it in C#. by brunes69 · · Score: 5, Interesting

    Not that I have anything against C#, I actually find it quite nice, just stuck me as odd that someone would write a cracking toolin it. These things are traditionally written in C ( for speed ).... like DeCSS was.

    1. Re:Curious how he wrote it in C#. by Deraj+DeZine · · Score: 5, Funny

      Maybe Microsoft sponsored his efforts to screw over Apple?

      --
      True story.
    2. Re:Curious how he wrote it in C#. by Anonymous Coward · · Score: 5, Funny

      You are implying it is. That is not a good implication.

    3. Re:Curious how he wrote it in C#. by Anonymous Coward · · Score: 5, Informative
      I was able to access the README before the server went down:

      Compiling:

      * With MonoDevelop [1]: Open DeDRMS.cmbx and click F8.
      * With mcs [2]: mcs -out:DeDRMS.exe *.cs
      * With csc [3]: csc /out:DeDRMS.exe *.cs

      [1] http://www.monodevelop.org
      [2] http://www.go-mono.com
      [3] http://msdn.microsoft.com/netframework/technologyi nfo/howtoget/

      Usage:

      * DeDRMS.exe file.m4p

      Notes:

      DeDRMS requires that you already have the user key file(s) for
      your files. The user key file(s) can be generated by playing
      your files with the VideoLAN Client [1][2].

      DeDRMS does not remove the UserID, name and email address.
      The purpose of DeDRMS is to enable Fair Use, not facilitate
      copyright infringement.

      [1] http://www.videolan.org/vlc/
      [2] http://wiki.videolan.org/tiki-read_article.php?art icleId=5
    4. Re:Curious how he wrote it in C#. by Sam+H · · Score: 5, Informative

      Using C# makes sense to me. It provides Rijndael and MD5 in System.Security.Cryptography out of the box. These cypher and hash algorithms are at the core of the DRMS encryption scheme. The same code in C would either use obscure libraries or 1000 extra lines of code.

      --
      God, root, what is difference ?
    5. Re:Curious how he wrote it in C#. by t_pet422 · · Score: 5, Informative

      I don't even have a C# compiler.

      Install the .NET Framework (run Windows Update). It will install one at %WINDIR%\Microsoft.NET\Framework\v1.1.4322\csc.exe
      You can compile this with csc /out:DrDRMS.exe *.cs

    6. Re:Curious how he wrote it in C#. by Anonymous Coward · · Score: 5, Funny

      I don't think my Slackware came with Windows Update. Where can I download it?

    7. Re:Curious how he wrote it in C#. by Cthefuture · · Score: 5, Interesting

      Thanks for the link. I always like to look at what other people have tried. However, I highly doubt those results. Besides, C++ still came out on top.. eh?

      For one thing they don't really test anything useful as the tests are just tight loops of very basic math stuff. His C code doesn't even compile with the VC++ compiler because he's using C99 syntax (Microsoft's compiler is not C99 compliant). And even when I fixed those problems there where a lot of warnings due to questionable variable usage. The C++ version isn't even written in C++, I wonder why there are even two separate files. Not a good start and makes me seriously question this programmers abilities.

      Just a quick glance at the code suggests at least the trig benchmarks are more a test of the standard math library rather than the language. C# is going to use the same version as C/C++.

      His timing methods are also questionable. Using CPU time can be highly inaccurate. It's much better to use the high precision timing functions.

      I will need to take a more detailed look and do some testing of my own to see if these results are valid. Off the top of my head I will say there seems to be something screwy going on because I've never seen properly written code run faster in C#. It's just not possible. C and C++ are so close to the hardware that when written properly it is near impossible to make it faster without going to assembly. The best C# can hope for is something close to C/C++, but never better.

      I'll make another post if I get time to take a more detailed look but I'm not optimistic about these tests being worth anything. Try the Language Shootout (or the win32 version) benchmarks for broader benchmarks where a lot of them have actually been looked at by programmers that know what they are doing. If you know what you are doing then you might want to really try them, don't just go by the results on the pages because some of them are skewed because the run times are way too short to be meaningful.

      Again, I ask you to design a vector class in C# that uses the same or less memory than C++ and performs the same or better. It's not even close to possible.

      --
      The ratio of people to cake is too big
  2. Written in C# by sweet+cunny+muffin · · Score: 5, Funny

    Wow. This is written in C#. I wonder if we can get .NET banned now that we can prove it's used for illegal purposes :)

    1. Re:Written in C# by Anonymous Coward · · Score: 5, Funny

      How is it pronounced? I always thought the # meant rap, as in C#

    2. Re:Written in C# by mrpuffypants · · Score: 5, Interesting

      I actually like the irony of a Microsoft pushed technology being used to kill an Apple-pushed technology THEN getting GPL'd!

    3. Re:Written in C# by RPoet · · Score: 5, Funny

      # is the "hash" symbol. C#, while written out as "C Hash", is pronounced "Cash", reflecting the reason Microsoft invented it.

      [This notice inserted to assist the humor impaired: This post may contain attempts at humor.]

      [ObKarmaProtection: "Well, this will probably send my karma to hell, but ..."]

      --
      "Oppression and harassment is a small price to pay to live in the land of the free." -- Montgomery Burns.
    4. Re:Written in C# by satanami69 · · Score: 5, Funny

      I thought it was just a quick way to write c++++, since the # looks like four +'s in a square.

      --
      I really hate Dan Patrick.
    5. Re:Written in C# by tempest303 · · Score: 5, Insightful

      let's give props where props are due.

      You mean to the Java folks, then?

      buh-dum ching! Thank you, I'll be here all weekend! Try the buffet!

      That said, C# does seem cool... basically Java++. Now if only MS would make a legally binding document saying they won't sue the Mono guys... :-P
  3. DeDRMS by gnu-generation-one · · Score: 5, Interesting

    "In practice, the goal of maximizing publication regardless of the cost to freedom is supported by widespread rhetoric which asserts that public copying is illegitimate, unfair, and intrinsically wrong. For instance, the publishers call people who copy "pirates," a smear term designed to equate sharing information with your neighbor with attacking a ship. (This smear term was formerly used by authors to describe publishers who found lawful ways to publish unauthorized editions; its modern use by the publishers is almost the reverse.) This rhetoric directly rejects the Constitutional basis for copyright, but presents itself as representing the unquestioned tradition of the American legal system.

    The "pirate" rhetoric is typically accepted because it blankets the media so that few people realize that it is radical. It is effective because if copying by the public is fundamentally illegitimate, we can never object to the publishers' demand that we surrender our freedom to do so. In other words, when the public is challenged to show why publishers should not receive some additional power, the most important reason of all -- "We want to copy" -- is disqualified in advance.

    This leaves no way to argue against increasing copyright power except using side issues. Hence opposition to stronger copyright powers today almost exclusively cites side issues, and never dares cite the freedom to distribute copies as a legitimate public value."

    Misinterpreting Copyright

  4. This just in! by mrpuffypants · · Score: 5, Funny

    Real, Inc.'s Realplayer now natively plays back iTMS purchases! It's Magic!

  5. Oh dear by Realistic_Dragon · · Score: 5, Funny

    Perhaps for his next trick he will stand outside RIAA/MPAA headquaters holding a 6 foot neon sign that says SUE ME AGAIN!

    I hope that eventually someone incorporates this code into a iTunes client for Linux, as it would be nice to be able to buy music from iTMS but I have no desire to buy a Mac.

    --
    Beep beep.
    1. Re:Oh dear by spektr · · Score: 5, Funny

      Perhaps for his next trick he will stand outside RIAA/MPAA headquaters holding a 6 foot neon sign that says SUE ME AGAIN!

      The RIAA manager will recognize him as a loyal customer and give him a friendly nod before he goes to work...

  6. T-shirts anyone? by Big+Nothing · · Score: 5, Funny

    Lawsuits anyone?

    --
    SIG: TAKE OFF EVERY 'CAPTAIN'!!
  7. Source code, ideas, communication by JoshuaDFranklin · · Score: 5, Interesting
    I am sure this will trigger another round of lawsuits, hopefully with the net effect of more education of the public and legal community as to the nature of source code as speech (that is, a method of communication).

    This code shows with more simplicity than ever before how the FairPlay DRM scheme works. This can be used by programmers to add support for applications (i.e., GStreamer) to play encrypted files with a key produced from an iTunes username/password. It can be used by researchers to see any weaknesses in FairPlay and develop better methods. Unfortunately it can also be used by those who want to destroy the iTunes Music Service.

    Interestingly, I believe the ideas could also be used to create files encrypted with a particular iTunes login, though perhaps I'm misunderstanding the scheme.

  8. DeDRMS? by capz+loc · · Score: 5, Funny

    What does DVD-Jon have against Dr. Richard M. Stallman? Is this the utility that reverses changes made by RMS-Lint?

  9. Dilbert has something to say on this very subject: by Realistic_Dragon · · Score: 5, Funny

    http://dilbert.com/comics/dilbert/archive/images/d ilbert2004042261455.jpg

    A somewhat odd view... does anyone know which big music firm United Media (the Dilbert owners) is affiliated with?

    --
    Beep beep.
  10. What will the Dairy Farmers Think? by andersen · · Score: 5, Funny

    What will the dairy farmers of the world think when they discover their Dairy Records Management System has been compromised? I will never drink milk ever again!!!

    --
    -Erik -- --This message was written using 73% post-consumer electrons--
  11. Re:Looks like his webserver was written in C#! by Anonymous Coward · · Score: 5, Informative

    I was fortunate enough to load the page during the 1 minute that the server stayed up.

    Now let's see how long my little mirror stays up!

    http://fire.prohosting.com/xonerate/dedrms.txt

  12. Inevitable by ajs318 · · Score: 5, Insightful

    If you attempt the impossible -- and make no mistake, copy-prevention is physically impossible, not just difficult -- then you will fail. You might be able to fool people into thinking you have succeeded, for a short while; but, sooner or later, your lies will catch up with you. All copy-prevention technology is pure snake oil, and can never work. It will always be defeated. Once a single CPT-free version has been created, then every penny anyone ever invested in that particular copy-prevention technology is wasted.

    --
    Je fume. Tu fumes. Nous fûmes!
  13. Re:Looks like his webserver was written in C#! by Anonymous Coward · · Score: 5, Informative

    Stupid junk filter doesn't let me post this. Why oh why? Code after filler...

    In the beginning God created the heaven and the earth.
    2 And the earth was without form, and void; and darkness was upon the face of the deep. And the Spirit of God moved upon the face of the waters.
    3 And God said, Let there be light: and there was light.
    4 And God saw the light, that it was good: and God divided the light from the darkness.
    5 And God called the light Day, and the darkness he called Night. And the evening and the morning were the first day.
    6 And God said, Let there be a firmament in the midst of the waters, and let it divide the waters from the waters.
    7 And God made the firmament, and divided the waters which were under the firmament from the waters which were above the firmament: and it was so.
    8 And God called the firmament Heaven. And the evening and the morning were the second day.
    9 And God said, Let the waters under the heaven be gathered together unto one place, and let the dry land appear: and it was so.
    10 And God called the dry land Earth; and the gathering together of the waters called he Seas: and God saw that it was good.
    11 And God said, Let the earth bring forth grass, the herb yielding seed, and the fruit tree yielding fruit after his kind, whose seed is in itself, upon the earth: and it was so.
    12 And the earth brought forth grass, and herb yielding seed after his kind, and the tree yielding fruit, whose seed was in itself, after his kind: and God saw that it was good.
    13 And the evening and the morning were the third day.
    14 And God said, Let there be lights in the firmament of the heaven to divide the day from the night; and let them be for signs, and for seasons, and for days, and years:
    15 And let them be for lights in the firmament of the heaven to give light upon the earth: and it was so.
    16 And God made two great lights; the greater light to rule the day, and the lesser light to rule the night: he made the stars also.
    17 And God set them in the firmament of the heaven to give light upon the earth,
    18 And to rule over the day and over the night, and to divide the light from the darkness: and God saw that it was good.
    19 And the evening and the morning were the fourth day.
    20 And God said, Let the waters bring forth abundantly the moving creature that hath life, and fowl that may fly above the earth in the open firmament of heaven.
    21 And God created great whales, and every living creature that moveth, which the waters brought forth abundantly, after their kind, and every winged fowl after his kind: and God saw that it was good.
    22 And God blessed them, saying, Be fruitful, and multiply, and fill the waters in the seas, and let fowl multiply in the earth.
    23 And the evening and the morning were the fifth day.
    24 And God said, Let the earth bring forth the living creature after his kind, cattle, and creeping thing, and beast of the earth after his kind: and it was so.
    25 And God made the beast of the earth after his kind, and cattle after their kind, and every thing that creepeth upon the earth after his kind: and God saw that it was good.
    26 And God said, Let us make man in our image, after our likeness: and let them have dominion over the fish of the sea, and over the fowl of the air, and over the cattle, and over all the earth, and over every creeping thing that creepeth upon the earth.
    27 So God created man in his own image, in the image of God created he him; male and female created he them.
    28 And God blessed them, and God said unto them, Be fruitful, and multiply, and replenish the earth, and subdue it: and have dominion over the fish of the sea, and over the fowl of the air, and over every living thing that moveth upon the earth.
    29 And God said, Behold, I have given you every herb bearing seed, which is upon the face of all the earth, and every tree, in the which is the fruit of a tree yielding seed; to you it shall be for meat.
    30 And to every beast of the earth, and

  14. Re:Ummm....wow by RPoet · · Score: 5, Funny

    I didn't expect it to be written in C#.

    NOBODY expects it to be written in C#!! Its chief weapon is surprise ... surprise and fear ... fear and surprise ... Its two weapons are fear and surprise ... and ruthless efficiency ... Its three weapons are fear, surprise, and ruthless efficiency ... and an almost fanatical devotion to Redmond ... Its four ... no ... Amongst its weapons ... Amongst its weaponry ... are such elements as fear, surprise ... I'll try posting some other time.

    --
    "Oppression and harassment is a small price to pay to live in the land of the free." -- Montgomery Burns.
  15. Re:I'm obviously not understanding something here. by Anonymous Coward · · Score: 5, Insightful

    I think that basically what you're missing is that 'they' can't tell you what you can and can't do with their products after you purchase them.

    Replace 'they' with any manufacturer.

    I could buy an apple that said "not for use as food." And I could then proceed to eat that apple - they have no say in what I do with it. If, for some reason, I should injure myself by eating that apple, they warned me and wouldn't be held liable. That's it. Laws come into play when I throw that apple and kill someone with it. Or try to sell it, claiming it is a pair.

    Now, the argument here is that it is illegal to decrypt the 'protections' a company puts on their music. And it is here where it gets smelly realy, really quickly.

    Sure, it might be the law, but it is written to be a pretty shitty law. (DMCA, etc). No, that's not an excuse to break the law, but it is one to cause sympathy for someone who does. There are very legitimate reasons for breaking the DRM on these files. There are also very illegitimate ones. Piracy comes to mind. You know, real piracy. Not some 14 year old girl that wants to give her friend some songs, but the people who mass produce and sell these songs on the black market.

    The black market being, by the way, about every outdoor market I've been to in Asia or South America.

    And you're right. DVD Jon shouldn't fall under any US laws. But the RIAA et al. will surely find a way to change that. Bastards.

  16. Let me get this straight... by asscroft · · Score: 5, Funny

    This same guy wrote DeCSS, FairPlay and DeCRMS....

    wow. what a brilliant ballsy sun of a bitch.

    --
    because I have been enjoined by this Holy Office to abandon the false opinion which maintains that the Sun is the centre
  17. The above post contains no code. by MillionthMonkey · · Score: 5, Funny

    I might expose myself to legal liability under the DMCA if I were to use my +2 karma bonus to publicly point out that a copy of the DeDRMS code may be found buried in the parent AC post (currently at 0, and NOT posted by myself) that I am replying to. The DMCA would expressly forbid such a reply informing others of the existence of such a post.

    Therefore, I wish to state emphatically that the parent contains no C# whatsoever and should not be moderated up as Informative, cut, pasted, compiled, or disseminated.

    1. Re:The above post contains no code. by MillionthMonkey · · Score: 5, Insightful

      If pointers to info are 'illegal' (*cough*2600*cough), then I would also like to state that you cannot buy weed at the park. If pointers to pointers are safe, then I would like to say that it's safe to dereference my friend Joey for the same pointer to the park.

      Ah, but if you recall, 2600 was enjoined by the court from providing hypertext links to DeCSS, although they were still allowed to publish the URLs themselves because of First Amendment concerns. (You had to cut and paste them into the address field yourself- no HREFs.)

      I, on the other hand, can't get rid of the hypertext link underneath my post that says "Parent".

  18. Re:pretty cool... by TravisWatkins · · Score: 5, Informative

    No, it's not up to the player to enforce the DRM. When you purchase a song from iTunes you are given the DRM'ed file, an md5 hash of the file, and two keys. Not sure what the other key is for, but one is the encryption key. You put that with the song and you get a DRM free song. Thats exactly what this does. PS - Reverse engineering the iTMS is fun!

    --

    "But I'm still right here, giving blood and keeping faith. And I'm still right here."
  19. Re:Why do you need speed for a cracking Util? by Anonymous Coward · · Score: 5, Insightful

    Just imagine how much our software would would actually do if everyone wrote in hand optimized ASM. Say goodbye to handy things like instant messaging and video players - we'd still be trying to get basic email clients and such to work. Sorry, but programmer time is much more valuable than a few bucks for hardware upgrades.

  20. What this does by EvilGrin666 · · Score: 5, Informative

    For those of you that don't know. It removes the protection from a .m4p file (Downloaded with iTunes) . So basically you end up with a Vanilla AAC file.

  21. Trouble installing .NET Framework by Ziktar · · Score: 5, Funny

    Where's the RPM for "Windows Update" again?

  22. Or for those of you on a Linux box by dethl · · Score: 5, Informative

    1. Get and compile Mono (emerge mono for those of you with Gentoo). 2. In the command line, type: mcs DeDRMS.cs 3. Then type: mono DeDRMS.exe There ya go!

    --
    "Some fight for law. Some fight for justice. What will you fight for? One day, you will see."
  23. Why C# can outperform C/C++ by ca1v1n · · Score: 5, Informative

    Remember that research that found that emulating the underlying hardware with a sufficiently intelligent userland dynamic profiler was usually faster than running directly on the underlying hardware? The dynamic profiler can optimize like no compiler will ever be able to do with static analysis. It's a similar principle to what Transmeta does with their x86 emulation. Modern Just-In-Time Compilers use dynamic profiling to accelerate things, and they're getting quite good. It's certainly quite possible to design a C# vector class that's both more memory and processor efficient in most cases than C++. Here's how:

    1) Record in the virtual machine/JIT every time a vector gets resized.
    2) Based on the pattern of resizing, speculatively allocate for new vectors/resizes as much memory as they'll ever need, or at least as much as they'll need any time soon.
    3) When you guess wrong about a speculative allocation, adjust your speculation.

    C++ doubles the amount of space allocated for a vector (or queue, or list, or stack, or dequeue, or binary heap, etc) whenever a resize exceeds the amount already allocated, unless you know enough to tell it to do otherwise. This keeps the amortized cost of increasing size by one constant. C++ doesn't benefit from profiling like C# does because there's no virtual machine that can change what binary code is actually sent to the processor. You could hack vector profiling together yourself, but it would be slow. Of course, this doesn't really help C# if you're never resizing your vectors, but that doesn't mean C# can't do better than C, even if C++ will have it beat. If you've ever done much benchmarking of the C++ STL, you know that it's usually faster than otherwise identical code written with arrays, which shouldn't be possible, since the array access code can be done fairly easily in assembly without virtual function table lookups and such, but nonetheless is quite real.

    The trick to this whole scheme is doing the speculation quickly and accurately. We may not be to the point yet where JIT code reliably outperforms statically compiled code in less space, but there are an army of extraordinarily intelligent grad students out there writing dissertations on the topic, and I assure you they'll make it happen.