After DeCSS, DVD Jon Releases DeDRMS 610
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?"
Curious how he wrote it in C#. (Score:5, Interesting)
Re:Curious how he wrote it in C#. (Score:5, Informative)
I don't even have a C# compiler.
Re:Curious how he wrote it in C#. (Score:5, Informative)
Install the
You can compile this with csc
Re:Curious how he wrote it in C#. (Score:5, Funny)
Trouble installing .NET Framework (Score:5, Funny)
Re:Trouble installing .NET Framework (Score:5, Informative)
Re:Curious how he wrote it in C#. (Score:5, Informative)
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
And if you're on Linux, you can download Mono [go-mono.com] and compile with mcs DeDRMS.cs.
Binary available here! (Score:4, Informative)
http://userwww.sfsu.edu/~astern/DeDRM
7.00 KB
C# Source
http://userwww.sfsu.edu/~astern/DeDRMS.cs
7.21 KB
Andrew
astern at s f s u dot edu
Re:Curious how he wrote it in C#. (Score:5, Informative)
You are assuming that C# is slow. That is not a good assumption.
Re:Curious how he wrote it in C#. (Score:5, Funny)
Re:Curious how he wrote it in C#. (Score:5, Interesting)
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 [bagley.org] (or the win32 [dada.perl.it] 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.
Why C# can outperform C/C++ (Score:5, Informative)
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.
Re:Why C# can outperform C/C++ (Score:5, Interesting)
You mean you've implemented this in C#? Or are you saying what you could do?
Sorry but there's no way to do it in the current C# implementation. You can't even get access to the memory allocators. There is no C# data structure that can tightly pack data in memory while still being dynamic. The best you can do is an array of struct's which is about as efficient as C/C++ but is absolutely not dynamic without causing a ton of overhead (eg. there is no realloc in C#).
If you can do it in C# then show me some code.
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.
You're talking about the default vector allocator. STL is extremely dynamic, you do not have to use to the default allocator if you don't want you. You can be extremely flexible here for whatever you need and design anything you want.
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.
Actually, I have, and you're wrong. So me an example and I'll show you why your array code is slower than the C++ version.
Virtual function lookups?! Do you even know how the STL is designed or how C++ works? Now I'm not sure why I bothered with the rest of what I wrote above.
Re:Curious how he wrote it in C#. (Score:5, Informative)
BTW he *could* have included some comments
Re:Curious how he wrote it in C#. (Score:5, Funny)
Re:Curious how he wrote it in C#. (Score:5, Informative)
Why do you need speed for a cracking Util? (Score:5, Insightful)
Not to mention C isn't much faster then C# and java for most tasks these days.
Re:Why do you need speed for a cracking Util? (Score:4, Insightful)
It's specifically this kind of attitude that makes me have to run a 3ghz pentium4 overclocked with 2 gigs of ram... just to run a word processor. Programming has gotten SO lazy these days. Just imagine if most code was ASM optimized just how BLAZING fast your systems would really be. But no. I like waiting.
Re:Why do you need speed for a cracking Util? (Score:5, Insightful)
Re:Why do you need speed for a cracking Util? (Score:5, Insightful)
And if you're so smart and good and not lazy, go ahead and write the Assembly version of this program. Now, make sure it can work on all platforms you can get .NET or Mono on (this means Windows, Linux, Mac, Sparcs, x86s, motorollas, alphas, etc.), otherwise it's not as useful.
If you want someone that seems to agree with you, read recent interviews of Chuck Moore. Even the guy who wrote C doesn't use it anymore; Dennis Ritchie uses Aleph.
Re:Why do you need speed for a cracking Util? (Score:5, Insightful)
Re:Curious how he wrote it in C#. (Score:3, Informative)
Re:Curious how he wrote it in C#. (Score:5, Informative)
Re:Curious how he wrote it in C#. (Score:3, Insightful)
It's not magical, or fundamentally different in any way.
CODE MIRROR HERE (Score:4, Informative)
Written in C# (Score:5, Funny)
Re:Written in C# (Score:5, Funny)
Re:Written in C# (Score:5, Funny)
[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
Re:Written in C# (Score:4, Informative)
Thus c# = c sharp
Ok, Carp? (Score:3)
Microsoft(TM): Where do you want to fish today?
Re:Written in C# (Score:5, Funny)
Re:Written in C# (Score:4, Insightful)
Evil Microsoft, trying to make money. How dare they!
I can't believe these comments still get modded as funny.
Re:Written in C# (Score:3, Funny)
Re:Written in C# (Score:5, Insightful)
D may be the next iteration, but let's give props where props are due.
Re:Written in C# (Score:5, Insightful)
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...Re:Written in C# (Score:5, Insightful)
I also like the fact that pretty much anyone can run my program. If this weren't the case, then Windows users would be pretty much out of luck if they wanted my program. I'm not going to port it.
I'm sure C# people think the same about Mono. It's "cross-platform". "It's great that Linux users can run my program", I'm sure they think. They weren't going to port it to Linux either
Oh well, when there are choices, there will be arguments about an individual's choice. It's better this way, I suppose.
Re:Written in C# (Score:3, Funny)
Re:Written in C# (Score:5, Interesting)
DeDRMS (Score:5, Interesting)
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 [gnu.org]
Re:DeDRMS (Score:4, Informative)
Although I agree that your argument is correct, too - however, the legal owner isn't necessarily the rightful owner: some people will say that selling away copyrights shouldn't be possible, and certainly not rightful.
Re:DeDRMS (Score:5, Insightful)
Then in the future you better make sure that you get paid upfront for the scarce (and sometimes NOT so scarce) WORK of creation, since you can't depend on artificial scarcity enforcement without a global police state.
If you've previously earned some goodwill/respect/whuffie, I'm much more open to funding your future efforts, and even *gasp* paying for that effort indirectly by volunteering to buy a non-scarce token copy of your OLD WORK.
--
This just in! (Score:5, Funny)
Oh dear (Score:5, Funny)
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.
Re:Oh dear (Score:5, Funny)
The RIAA manager will recognize him as a loyal customer and give him a friendly nod before he goes to work...
Looks like his webserver was written in C#! (Score:3, Funny)
Re:Looks like his webserver was written in C#! (Score:5, Informative)
Now let's see how long my little mirror stays up!
http://fire.prohosting.com/xonerate/dedrms.txt
Re:Looks like his webserver was written in C#! (Score:5, Informative)
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
The above post contains no code. (Score:5, Funny)
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.
Re:The above post contains no code. (Score:5, Insightful)
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".
Freenet mirror (Score:3, Informative)
CHK@XTn8vik~xxqsIJzLcDFUlPQqrw4NAwI,griuDFoqruN
(Watch out for space inserted by the slashdot code, remove it)
T-shirts anyone? (Score:5, Funny)
Source code, ideas, communication (Score:5, Interesting)
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.
Re:Source code, ideas, communication (Score:3, Funny)
What a load of tosh. (Score:4, Interesting)
We don't do it in plain English (or Spanish, Russian, Mongolian or whatever) because we lack the technology (still) to do so.
If in the future it is possible to program a computer or any other machine with a normal conversation then how the hell are all the ridiculous copyright and patent laws are going to be applied?
As things stand computer languages are a necessary nuisance to allow people express in a succint and understandable manner their own ideas about how ro solve problems.
This is perhaps one of the purest forms of speech, which should be mantained unecumbered of patents and covered by fair copyright laws.
DeDRMS? (Score:5, Funny)
DeDRMS art... (Score:3, Interesting)
DeDRMS? I wrote a song about it. Want to hear it? Hear it goes... *da dum da dum*... slash asterisk bla bla asterisk slash... *da dum da dum*... Using System; *bah bum bah bum*...
--
Host it on Freenet? (Score:3, Informative)
Let's host this program on Freenet [sourceforge.net], it is a project that make's the best use for what Freenet was made for.
Re:Host it on Freenet? (Score:5, Informative)
CHK@XTn8vik~xxqsIJzLcDFUlPQqrw4NAwI,griuDFoqruN
(Watch out for the space inserted by the slashdot code, remove it)
Dilbert has something to say on this very subject: (Score:5, Funny)
A somewhat odd view... does anyone know which big music firm United Media (the Dilbert owners) is affiliated with?
Re:Dilbert has something to say on this very subje (Score:4, Insightful)
It could just be that the man believes that you ought to pay for what you use for entertainment, if the creator of that entertainment wants payment.
Re:Dilbert has something to say on this very subje (Score:5, Funny)
Re:Dilbert has something to say on this very subje (Score:5, Insightful)
You know, I saw that this morning, and I thought it was actually a pretty good wrap up (well, for what a comic can do anyway) of several of the main positions in the debate.
First, there are all the people who go snag copies of music because they're too a) lazy, b) stupid, c) cheap, or d) all of the above to either go buy a copy or just not buy it at all (don't give me shit: you think it costs too much or has too much filler, blah blah blah... don't buy the fucking thing, don't be a little baby about it). Then, there's the theiving nature of all the execs in the industry ripping off the artists. There's also the problem of overproduction, and the mentality of major artists that they have to make money but no, no... they're still doing it for the art.. really.
I thought it was a very good bit of satire, all around.
blah (Score:4, Informative)
jhsvjklhajskdvhakjsdhvalkjsdhkajdhfasd hsfvhasdhvf asdf asdf asdf asdf sdf asdhvashdvasdf asdf asd sdf coipx vxjzlk sdhvaasd fasd fadfg fiobvxcoizv jcxoixz jxzc sdhvaf cmdrtaco sucks akljdkls asd asd fvx sdhvas gh hh hhf dd sdf sf sd
hdvash jk k fgh jgdvvcbbn cv c dhvc c vb fg hdrghdfg fg dg df g dsf
ashdva sdfgsgewrr benrtnrt er er revr dv shdva aioajdoi jfasdioj v;xjf kldasjkl;vasj sdhva sjkdfsdkvn alkn lkan alksnsdflk nsfnvlad dhvahsdva aisovaiouvoivoiua ioua auao iuasi us shdva asivoa jvhbusa ui hiuahsiuhfsa ha ahsdjkfahkdj lfhalksjdfhalk askjda
vhasdvhasdjhvaksjdhva a kjas lkjdakljf svhasdhvaskjhvlaskjdvhas a kljs djklakslj af
asvhajkshvjkshas dhasdjvkhasdv akjdfjadf asds s d fsd fsad fads asdfas asdf asdf sdfs vxcvxcvzxcvx ss dfsdxvc dfa bioub oiu zklxcvx nsm,m,fns,m
sdfas ikj oixj movnxmcvnxcvo sdoifjs dfsddafgdfg kamlxcvbjio zkcnvzlk nxclk xcivx as df sdf asdf asd vi xoizjvzcvn socso s asd addfsdfahtgh fghdfgh df gd d
using System;
using System.IO;
using System.Text;
using System.Security.Cryptography;
class M4PStream
{
private Rijndael alg;
private BinaryReader br;
private BinaryWriter bw;
private byte [] sbuffer;
private string AtomDRMS = "drms";
private string AtomMP4A = "mp4a";
private string AtomSINF = "sinf";
private string AtomUSER = "user";
private string AtomKEY = "key ";
private string AtomIVIV = "iviv";
private string AtomNAME = "name";
private string AtomPRIV = "priv";
private string AtomSTSZ = "stsz";
private string AtomMDAT = "mdat";
public M4PStream( FileStream fs )
{
br = new BinaryReader( fs );
bw = new BinaryWriter( fs );
sbuffer = br.ReadBytes( Convert.ToInt32( fs.Length ) );
alg = Rijndael.Create();
alg.Mode = CipherMode.CBC;
alg.Padding = PaddingMode.None;
}
byte [] NetToHost( byte [] Input, int Pos, int Count )
{
if( BitConverter.IsLittleEndian )
{
for( int i = 0; i < Count; i++ )
{
Array.Reverse( Input, Pos + (i * 4), 4 );
}
}
return Input;
}
int GetAtomPos( string Atom )
{
byte [] Bytes = Encoding.ASCII.GetBytes( Atom );
for( int i = 0; i < (sbuffer.Length - 3); i++ )
{
if( sbuffer[ i + 0 ] == Bytes[ 0 ] &&
sbuffer[ i + 1 ] == Bytes[ 1 ] &&
sbuffer[ i + 2 ] == Bytes[ 2 ] &&
sbuffer[ i + 3 ] == Bytes[ 3 ] )
{
return i;
}
}
throw new Exception( String.Format( "Atom '{0}' not found", Atom ) );
}
uint GetAtomSize( int Pos )
{
byte [] Bytes = new byte[ 4 ];
Buffer.BlockCopy( sbuffer, Pos - 4, Bytes, 0, 4 );
return BitConverter.ToUInt32( NetToHost( Bytes, 0, 1 ), 0 );
}
byte [] GetAtomData( int Pos, bool bNetToHost )
{
uint Size;
byte [] Bytes;
Size = GetAtomSize( Pos );
Bytes = new byte[ Size - 8 ];
Buffer.BlockCopy( sbuffer, Pos + 4, Bytes, 0, Bytes.Length );
return bNetToHost ? NetToHost( Bytes, 0, Bytes.Length / 4 ) : Bytes;
}
public void Decrypt( byte [] CipherText, int Offset, int Count,
byte [] Key, byte [] IV )
{
MemoryStream ms = new MemoryStream();
ICryptoTransform ct = alg.CreateDecryptor( Key, IV );
CryptoStream cs = new CryptoStream( ms, ct, CryptoStreamMode.Write );
cs.Write( CipherText, Offset, (Count / 16) * 16 );
cs.Close();
ms.ToArray().CopyTo( CipherText, Offset );
}
public byte [] GetUserKey( uint UserID, uint KeyID )
{
byte [] UserKey;
BinaryReader bruk;
string strHome =
Environment.GetFolderPath( Environment.SpecialFolder.ApplicationData );
bool bUnix = Environment.OSVersion.ToString().IndexOf( "Unix" ) != -1;
string strFile = String.Format( "{0}{1}{
Re:blah (Score:5, Insightful)
nothing to see here folks: (Score:5, Funny)
Re:nothing to see here folks: (Score:4, Funny)
But that would make a lousy filename in just about any operating system :).
What will the Dairy Farmers Think? (Score:5, Funny)
I'm obviously not understanding something here.. (Score:4, Interesting)
I can sorta understand that, as far as I know, DVDs don't state at the time of purchase that you have to have X or Y, just that you have to have the disc. Fine.
So, when you buy something from the iTMS, it STATES that you have to have X or Y. It clearly states the restrictions that you agree to. This is not a hard concept, so why is it felt that a technological solution is required to 'fix' it?
Something that just struck me... DVD Jon isn't in the Americas, but iTMS isn't selling to those outside (maybe Canada, I'd have to check). So ... what part of this equation am I missing?
Re:I'm obviously not understanding something here. (Score:5, Insightful)
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.
Re:I'm obviously not understanding something here. (Score:4, Insightful)
I think DVD Jon's being totally consistent here - if you pay to listen/watch/whatever something, you should have the right to do so on whatever platform or medium you choose, and not be limited by some artificial restriction imposed on you by the media companies.
So now people with Linux boxes can play their legit iTMS songs on their Linux boxes. Personally, I'm not bothered by this. There are other, easier ways for people to pirate music if they really have their heart set to it, so opening up a way for people to use something they've paid for in a way they see fit, while it may technically violate the license, is nothing I see worth getting up in arms over.
Inevitable (Score:5, Insightful)
Inevitable? So what? Who cares? (Score:4, Insightful)
This is like observing that perfect algorithmic encryption, other than a one-time pad is impossible. So what? Who cares? Of course, I can't create a lock-and-key on my house that will keep all thieves out, all the time. So what? Who cares?
Whether or not my door can be physically manufactured to bar you forever from entry, makes it not one whit more legal for you to do so. All locks are rated, not in terms of their binary perfection, but rather in terms of the time and cost to defeat them. So what? Who cares?
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.
I suppose there are folks who are naive to think they live behind perfect locks. So what? Who cares? Where is the lie? What does it matter that technological solutions can be defeated? They are helpful, and substantially helpful to keep generally honest people honest, and stupid people (who represent most users) out. Smarter, less honest people, can of course get in any time. So what? Who cares?
For those smarter, less honest people, we have laws. Some will be smart enough to circumvent all of them and go free. Most will not.
Security is not a question of binary perfection. It is a question of doing as well as you may. Likewise with digital rights management.
There has always been piracy of musical content. Always. Some good, some bad. So what, who cares?
Just like DeCSS, playfair will be available to the less honest, smarter of us, or rebuilt by those who understand how it works. Those who think that this fact is useful have missed the point. These facts do not help our cause. To the contrary, it only helps those who insist that technology regulation, such as DMCA is required, and prevents the repeal of very bad laws.
Darn, I wish the smarter and less honest of us were just a little bit smarter about the ways of the world. For the smarter, honorable and ideologically motivated of us, such as Mr. J., we should excoriate, not praise, this sort of thing.
Our problem is that our arguments prove too much -- we demonstrate the "necessity" of the DMCAs, certainly to the satisfaction of the governments who will enforce them. The problem is NOT that there exists DRM, the problem is that the DRM is implemented and legally enforced in a manner that limits the scope of good new technology. It is that problem that WE, the technologists will have to solve -- hard or impossible it may be -- because the RIAA and MPAA certainly have no incentive to do so.
Let me tell you about my tent. (Score:5, Insightful)
Reminds me of a story. Let me tell you about my tent.
I like going to SCA events [sca.org]. While we're there, we camp. And that means having all of our expensive gear in our tents, all our food, and our booze. Some of our gear can run in the thousands of dollars.
At my favorite event, we camp near the edge of the camp. And idiots from the local village sneak over the fence and rip us off every so often.
So I made a tent with a locking door. I built a yurt [pbm.com], and built into the frame a full sized, 1/2" thick, wood and iron reinforced door. With a working brass good-enough-for-your-house lock.
And while camping one year, a neighbor made fun of me for my efforts. "There's no way that would keep a determined criminal out," he said. It was still a canvas tent, albeit with a wood lattice frame. You could cut a hole through the canvas and break the lattices, easy. The door was too thin, you could kick it down. The lock could be defeated.
And I explained to him that the point was not to be burglar proof, just more burglar resistant than my neighbors.
At that moment, he was enlightened.
Weaselmancer
pretty cool... (Score:3, Insightful)
or maybe i'm wrong... is it up to the player software to enforce the DRM? i thought i read somewhere that the iPod just ignores it...
Re:pretty cool... (Score:5, Insightful)
Maybe if Apple had made an iTunes for Linux, it might have been a while longer before things like this popped up. Look at Real: it took several years before anyone bothered making another player for their files on Linux, since they already provided one.
Speaking of which, did anyone actually reverse engineer Real's format, or does mplayer just use their shared libraries?
Re:pretty cool... (Score:5, Informative)
Neat (Score:4, Funny)
Let me get this straight... (Score:5, Funny)
wow. what a brilliant ballsy sun of a bitch.
Slashdotted... Here's a mirror of the code (Score:3, Interesting)
A temporary mirror to the code. It wont be up more than a week, so dont bookmark it.
Get it now (Score:5, Interesting)
Remember PlayFair
Remember the bitTorrent sites
If you want it, get it now.
Interesting how this news comes out on a Sunday, when the lawyers should all be out at play.
DeDMCA (Score:5, Funny)
Would pay money for all of those.
Not really a cracking tool... (Score:4, Informative)
Re:Not really a cracking tool... (Score:5, Informative)
VLC will extract your user key and save it into your home directory when you use it to try to play a FairPlay-protected file from an authorized system.
SharpDevelop (Score:4, Informative)
Yes, there's also a Linux version [monodevelop.org].
If Apple were smart... (Score:4, Informative)
What this does (Score:5, Informative)
Re:What this does (Score:5, Funny)
This is how to compile it for FREE (Score:5, Informative)
Follow the steps to compile and run it:
(1) Get the source code (at your own risk) and save it as DeDRMS.cs
(2) Download and Install the NET Framework SDK [microsoft.com] for FREE (reqiures Windows 2000, Windows Server 2003 or Windows XP).
(3) Use the included compiler csc.exe to compile the source code into executable code. Use this on command line (dos prompt) C:>csc DeDRMS.cs OR C:>csc.exe DeDRMS.cs
(4) It will create DeDRMS.exe in the same folder where you saved DeDRMS.cs.
(5) Profit or Jail??
Or for those of you on a Linux box (Score:5, Informative)
Re:Or for those of you on a Linux box (Score:4, Insightful)
apt-get install mono binfmt-support
mcs DeDRMS.cs
What worries me most (Score:5, Interesting)
Now, project yourself forward 20 years. Will these same profit chasing record companies be willing to provide infrastructure to allow you to move your DRM encrusted music from PC to PC throughout the rest of your exepcted life, and that of your descendants who will inhereit this media? Sure, they'll be happily putting out more music, but are they protecting your previous investments? In the year 2039 when I should be just about ready to breathe my last breathe will I be able to hear all my old favorite albums or will I cark it listening to gangster rap on the radio because my rightfully paid for music isn't authorised for use on my new funky media player.
This DRM stuff is OK for playing todays tunes, but I worry about the longevity of the media.
Re:Ummm....wow (Score:3, Funny)
Re:Ummm....wow (Score:5, Funny)
NOBODY expects it to be written in C#!! Its chief weapon is surprise
Re:C#, Mono, and making it do something (Score:3, Informative)
www.go-mono.com -> c# compiler -> downloads page
get the file mono-0.31-win32-1.exe
run it, click okay a couple times...
get a copy of the code....
mcs DeDRMS.cs
and you have an exe that's command-driven.
command is : DeDrms.exe myfile.m4p
Re:C#, Mono, and making it do something (Score:3, Informative)
Re:ok... (Score:3, Interesting)
From here [go-mono.com]:
Re:ok... (Score:3, Informative)
Re: This boy's mother... (Score:3, Insightful)
> So far he has won and avoided jail. But, if he continues to push his luck, like this, some corporation is going to bury him.
I think it's called "getting even". US corporations got him treated like a criminal for doing something that wasn't illegal where he lives, now he's getting some back.
Re:Nice achivement, and in python, but.. (Score:5, Funny)
Judge: You again!?
Jon: Uhm, yeah.. sorry...
Judge: I guess the DVD people just won't leave you alone..
Jon: No, it's Apple's DRM now.
Judge: Damn you kid!!
You're naive (Score:5, Insightful)
By saying Apple's DRM is good, you're falling right into the content companies' "trap" (scare quotes because I'm not convinced it was intentional, though the result is still the same). This is the same way many bad laws get passed: proponents of the bad law propose a law that's several times worse, wait for the backlash, then "fall back" to what they wanted to push through in the first place--and most people will agree that it's an improvement and let it go.
Distribution of copyrighted material is already illegal. DRM can always be circumvented. People will probably be willing to pay reasonable prices for songs online if they're guaranteed quality and the freedom to do what they want with the file, though I'll grant that payment methods are still a mostly unresolved issue. Hence there's no need for DRM, and even DRM as "fair" as Apple's is an improper infringement on users' rights. (Unless you believe content really belongs to the creators rather than to the culture--but that's not the stance the Framers took.)
I'm reminded of an old saying I heard about negotiation tactics: "If you want Australia, ask for the world and give away five continents."