deCSS Listed On Download.com
Abscissa writes "I just discovered that Download.com has listed the hottest illegal utility for "bypassing" DVD copy protection. It won't be long before they get contacted by the motion picture association!" And deCSS is also mirrored on many other, lower-profile Web sites. There's simply no way it can be stopped.
Shades of Fahrenheit 451 :)
This has already been covered in Hackernews. Btw, download.com has the guts to mirror it, I *really* can't believe it. Cool!!!
Once the genies is out of the bottle it's very hard to put it back in.
I'm sure we'll see a concerted effort to sue the planet though.
is it already illegal ???
or is it just fear of lawsuit(cost) that moves everyone to remove it from their download lists ???
Remember when CDs and DAT came out? The Music Industry tried to restrict copying by legislation. Now we're using $200 CD writers for portable data, and Panasonic is running commercials for their CD copiers. And the Music Industry still sells a lot of CDs.
Well, it happened, The RIAA found out the hard way that you can't bolt the barn door once the Horse has run. The only thing that threats have done on the Internet, in my experience, has added coverage to what would have been a boring topic, and to strengthen resolve to do exactly what the plaintiffs don't want. The RIAA played rough, they found that netizens can get very rough indeed, and if they want any sympathy from me, Merriam-Webster comes to mind.
Just because you're paranoid doesn't mean they aren't out to get you
It seems that download.com is not really hosting it themselves, but in fact linking to a site in Denmark. It also seems that said site has taken down this software.
This is just the binary windows program, it can descramble the CSS but that is OK becouse it will not run on Linux.
OTOH Derec Fawcus posted the source to CSS decryption and that might be used to watch DVD on Linux so he must be stopped at all costs.
However, if they can intimidate its programmers and prevent any future development or related programs, they're happy. This especially goes for the LinuxDVD project - if you really want to stick it to The Man, rather than provide another mirror of DeCSS, which ain't going away any time soon, find some way of helping the LinuxDVD project.
Programs are ephemeral. Source code is forever.
Can anybody confirm that this is the real DeCSS? My anti-virus software claims it contains an unknown virus. I run F-prot 4.03.
Just in case, there is another mirror here: http://killer.discordia.ch/Politics/Copyprotection .phtml
It's a friends website. I bet he will get a letter from those boneheads in the movie-industries. But hey, mirror that tool at all costs! When they want to send out dead trees to anyone, they have to write not 100 but 100'000 letters!
Information should be free!
--- If OS were buildings, then the first woodpecker to come around would erase 95 % of civilization.
no more movies are going to be made, since everyone is going to download this app and become a hardcore pirate, thereby breaking the motion picture industry. Woe is us. I myself have already put out of business a couple of studios by making illegal copies of my massive DVD collection. The MPAA needs to hurry up and sue download.com, cnet and affiliate sites, and everyone that visits them to protect the fragile movie industry.
;)
Sheesh. I can only imagine the witchhunts that will follow once this lil' app gets around now.
Off topic, but I wonder if napster can be configured to transfer *.vob's now?
Demona's Law - "User data expands to exceed available bandwidth." ("User data" being pr0n, mp3's, vob's,
Robin, get your facts straight. In many countries, Australia for one, this program is not illegal.
http://frodo.campus.luth.se/~iocc/tip.html
I wonder if download.com as an entity is as responsible for this as one lone employee working unsupervised at CNet who thought to himself, gee this is kewl, maybe I should post it...
How long will it be until the DVD is as big as the current VCD scene on EFNet today?
this utility is probably not illegal in many countries, but cnet.com is definetely posed with civil legal action by the MPAA or some other lawyers. (even more so, now that it's been posted on hackernews and slashdot) it's obvious that DeCSS, the Livid stuff, and articles explaining how it was done will live forever. the question is: will the MPAA give up and just forget about it? or will the MPAA go on a 30 year hunt to try to discourage all DVD pirating and ultimately destroy itself and the format well before a more viable solution comes along? or will they come up with a different format and screw everyone over?
-- adraken
I do wish people would be more careful with the posting on Slashdot. Calling DeCSS an 'illegal' utility immediately gets motion picture lawyers backs up and will possibly have a negative impact on when/if you can happily view DVDs in Linux. This slashdot article is almost as bad as the initial Wired article that seemed to started the problems with Linux DVD development in the first place.
AFAIK, DeCSS is *not* an illegal tool - the development of DeCSS was perfectly legal in the country in which it was developed and it would have been legal to develop it in the US and most other countries [possibly till the Digital Millenium Copyright act comes into force]
DeCSS, at least in its Linux form, is not intended as an aid to making illegal copies, hopefully it is just a means of assisting you in viewing DVDs under Linux.
Even the use of DeCSS in the UK, where there are specific provisions that appear to block it, is in doubt - there are a number of hurdles that someone taking the case to court would need to overcome.
P.S. IANAL, if you are please feel free to correct any mishtakes....
Donte Alistair Anderson Roberts - hi son!
Karma: Chameleon
Since copy protection was invented, there have been ways around it.
With DAT there was some sort of digital signature (i forget the TLA) that was written to the tape that ment that the tape had to copied by the machine that produced the master. A box of tricks costing £100 (ish) got rid of that and you could freely copy DATs.
The duplication of CD's used to be protected by the high cost of CD writters but we just copied them to tape and all was fine. CD writters now cost around £180 and everyone is freely coping CD's (either audio or MP3) and distributing copywritted material.
The MP3 audio format was one of the final nails in the coffin. Fast, high quality and small audio files distributed freely are rapidly killing off sales of CD's. Well, so we are lead to believe by the music industry.
All this little application does is break the current encryption/protection method used. I'm sure that within a few months a new format will come out and all the DVD hardware/software/content vendors will adopt it and proclaim it to be secure. A few months later someone will break it and announce who easy it was and how stupid the industry is for using such a weak encryption/protection method. Repeat the cycle. Do until end.
They've listed MoRE as the company hehe.
Actually this is the norwegian reverse enginering
group that the guy who produced deCSS is member
of. It stands for Masters of Reverse Enginering.
Does not matter. Even if the employee has done it jumping across his terms of employment this still leaves CNET with this material on the web site.
And there is noting wrong about it:
Selling guns is not illegal. Firing them at people is.
Distributing tools for commiting a crime is (mostly) not illegal. Using them is.
Distributing software that breaks copy protection is (usually) not illegal. Using it for breaking copy protection is.
The exemptions to these rules are listed in the laws of each country but they usually very old and do not include any computer related equipment (mostly the restrictions deal with specific tools for picking locks and stuff, tools usable for copying bank notes, etc).
Baker's Law: Misery no longer loves company. Nowadays it insists on it
http://www.sigsegv.cx/
They probably are. US law, from what I know of it, tends to follow a very old-fashioned notion of heirarchy-- that is, if you're the "supervisor" or "employer" of a given person, you're responsible for anything they screw up. It's a scary thought, but you can very easily find yourself held responsible for what someone else did-- even against your will.
With spending like this, exactly what are "conservatives" conserving?
But I would say they are even more worried about all those nice sites where you can download complete movies. The whole office (almost 100 of us)where I work watched TPM two months before it was released over here in Europe.
i don't own a dvd player, but i would like to get the source so i could mirror that. where can i find it; what website is the project for linux dvd support at? don't moderate this up, but please moderate up answers!
US Citizen living abroad? Register to vote!
Are there *realy* people still out there that haven't gotten a copy yet ???
Since the download.com has stopped working, go grab yours here
--
Why pay for drugs when you can get Linux for free ?
echo '[q]sa[ln0=aln80~Psnlbx]16isb572CCB9AE9DB03273snlbxq' |dc
Of course there's no way to stop this thing from being widely distributed, just like there is no way to prevent mp3 distribution or commercial software distribution. Sheesh.
However, I do have a brlliant solution (borrowed from the epitome of corporate brillance, Microsoft). How about someone sets up a table somewhere, and asks for people to bring in pirated DVD's to be replaced by non-pirated DVDs, NO QUESTIONS ASKED.
...can be downloaded from the CVS server [instructions on the web site] at: http://livid.on.openprojects.net
Donte Alistair Anderson Roberts - hi son!
Karma: Chameleon
I would like to see RedHat take on this one.. hell, its a good use of investor $$$. Put up a CVS repository, hire 1000 laywers, and let the seige begin.
Are you listening Redhat? Here's a good way for you to use all that dough. While you are at it, throw a couple mil towards lobbying against the truely bletcherous Digital Millenium Bug^H^H^H Act, which is going to single handedly cripple software innovation for decades.
Unfortunately the site at http://rhythm.cx/dvd/ has also taken down its list of sites mirroring both DeCSS and the source.
Since when is it also illegal to link to sites containing illegal software?
In God We Trust, Others We Monitor
Who's the RIAA?
They are not stupid. They know that a few years from now, 6 gigs of disk space won't mean jack and the movie they release today on DVD could wind up everywhere in a few years.
Fortunately for us, DVD home players are near critical mass. If deCSS happened two years ago, DVD for playing movies would have died a quick death. It still could. At the minimum, I predict, the studios will delay releases of DVD until well after they bleed the VCR market.
Yeah, it pisses me off that I can't play DVD movies on my DVD-equipped computer with Linux. But imagine if Red Hat or some other distro made a deal to get a license for making a driver to play these disks. We'd all probably crucify them for releasing a proprietary, non-redestributable driver with no source.
Sometimes you can't have your cake and eat it without upchucking the mess at the most inopportune time....
http://home.worldonline.dk/~andersa/download/DeCSS .zip p - auth.tar.gz s /8877/index.html g z . gz and ftp://193.219.56.32/pub/dvd/LiVid.CVS-11.06.css-st uff-only.tar.gz h tml g z and http://www.zip.com.au/~cs/dvd/css/DeCSS.zip
http://douglas.min.net/~drw/css-auth/
http://www.devzero.org/freecss.html
http://home.t-online.de/home/skinner01/decss.zi
http://www.chello.nl/~f.vanwaveren/css-auth/css
http://www.geocities.com/ResearchTriangle/Campu
http://www.angelfire.com/mt/popefelix/
http://www.vexed.net/CSS
http://members.brabant.chello.nl/~j.vreeken/
http://gullii.stu.rpi.edu/dvd/files/DeCSS.zip and http://gullii.stu.rpi.edu/dvd/files/css-auth.tar.
http://www.dvd.eavy.de/css-auth.tar.gz
http://www.eavy.net/stuff/dvd/css-auth.tar.gz and http://www.eavy.net/stuff/dvd/DeCSS.zip
http://www.dynamsol.com/satanix/DeCSS.zip and http://www.dynamsol.com/satanix/css-auth.tar.gz
http://www.dvd.eavy.de/DeCSS.zip
http://frozenlinux.com/civ/decss/
http://www.humpin.org/decss/
http://www.unitycode.org/
http://dirtass.beyatch.net/decss.zip
http://members.tripod.lycos.nl/jvz/
http://www.free-dvd.org.lu/
http://www.angelfire.com/in2/mirror/
http://mclaughlin.orange.ca.us/~andrew/
http://batman.jytol.fi/~vuori/dvd/
http://www.zpok.demon.co.uk/deCSS/CSS.html
http://plato.nebulanet.net:88/css/
ftp://alma.dhs.org/pub/DVD/
http://www.d.umn.edu/~dchan/css/
http://www.logorrhea.com/main.html
http://people.delphi.com/salfter/LiVid.tar.gz
http://www.theresistance.net/files.html
ftp://193.219.56.32/pub/dvd/LiVid.CVS-11.06.tar
http://merlin.keble.ox.ac.uk/~adrian/css/index.
http://www.dvd-copy.com/
http://www.zip.com.au/~cs/dvd/css/css-auth.tar.
http://www.sent.freeserve.co.uk/css-auth.tar.gz and http://www.sent.freeserve.co.uk/DeCSS.zip
ftp://ftp.firehead.org/pub/ (very slow - 33.6 line)
http://members.tripod.co.uk/bap/css/css.html
http://www.tasam.com/~fenkt/dvd/
ftp://eris.giga.or.at/pub/hacker/crypt/DVD/
http://therapy.endorphin.org/DVD/
http://www.discordia.de/decss/DeCSS.zip and http://www.discordia.de/decss/css-auth_tar.gz and http://www.discordia.de/decss/LiVid.tgz
That's garbage. There's no way they are going to forsake the market because of some issue like this. Fact of the matter is, there is money to be made in selling DVDs. And as more people adopt DVD, it will pull in more money than VHS (think about production costs compared to VHS). Besides, people have been able to make near perfect copies of VHS tapes since VCRs first came out and it never killed the market. It's all hype and paranoia on the MPAA's part and I can't see why, because it will be the best thing that's happened to them since VHS.
I wouldn't be surprised if RealNetworks is sued, they are the owners of Xing who 'let the cat out of the bag'.
The worst thing that could happen is that they will change the DVD standard so that old players need new decoder chips and newer ones can be reprogrammed with new, stronger encryption.
-TheScream TheScream.orgSee the Digital Millennium Copyright Act Section 1201(f)
Examples of legal reverse engineering:
that whole directory has been removed now....
ftp://ftp.one.net/pub/users/dmahurin/files/softwar e/dvd/
--
"One World, one Web, one Program" - Microsoft promotional ad
"Remember when the U.S. had a drug problem, and then we declared a War On Drugs, and now you can't buy drugs anymore?"
- A.P.
--
"One World, one Web, one Program" - Microsoft promotional ad
"Remember when the U.S. had a drug problem, and then we declared a War On Drugs, and now you can't buy drugs anymore?"
Napster-to-go says "Fill and refill your compatible MP3 player", which is a lie. It's not MP3. It's WMA with DRM.
Large jacket pockets and/or backpack, combined with supermarket (Or even better, Costco or Sam's or similar wholesale club). Works great. :)
retrorocket.o not found, launch anyway?
It's sort of funny. People put locks on things so others can't get in. If you have a crappy lock, you can't blame the /theif/ for getting in: you get a new, better, lock so he can't. Duh. If you could prevent the theif from getting in without the lock, why have a lock?
It's 10 PM. Do you know if you're un-American?
There are no taxes on "data" CD-R drives/discs, as PC equipment does not fall under the AHRA. (Despite the fact that "data" drives work great for audio.)
There are "music-only" CD-R devices, which will only write to a CD marked as "taxed for music use" - This media is EXPENSIVE.
retrorocket.o not found, launch anyway?
Having purchased the right to use/read/view some copyrighted material, don't I have the right to make copies for personal/backup use?
When you recieve copyrighted material, it is the contents of the material that is copyrighted, and not the medium it arrives on. I should therefore be able to view the contents from any medium I choose.
By not allowing me to copy the contents from the medium, earn't they blocking my rights?
Or is this not the case.
In the age of million dollar sports signing bonuses and average people working their tails off just to get a quarter raise- the reasoning is that people are entitled to some free stuff. Just do not get caught
The artificial barrier erected by studio-led organizations against access to DVD by the free operating systems is not dissimilar to a fault in the (information) network.
Well, the Internet is good at dealing with network faults, ie. with the classic response of routing around the problem. In this case the problem is that lawyers and other luddites can prosecute website owners. No big deal: just post the sources repeatedly and automatically to appropriate Usenet newsgroups, and automatic news archiving worldwide will ensure that anyone that needs the code will be able to find it without presenting a target for slobbering lawyers.
[And no, I do not accept that lawyers can get away with "just doing their job" without accepting responsibility for their luddism, just like I do not accept that it is moral for scientists to place tools of destruction in the hands of brainless politicians. If the legal profession wants to be well regarded, it needs to stop washing the blood of its actions off its hands.]
"The question of whether machines can think is no more interesting than [] whether submarines can swim" - Dijkstra
Until you programmed a seat-kicking, loud whispering, cell phone and beeper carrying jackass simulation... at least, every time I go to the movies, that's who ends up sitting behind me... Oh, and toss in some surround-sound crying babies belonging to the "we're too cheap to hire a babysitter, so we brought our baby to see the Matrix, I'm sure the gunshots won't upset him/her/it" couple in the front row.
this program is a wonderful one too!
It's simple, easy to use and fast in what it does. You can't stop progress!
Fook
The price we pay for immortality... is death. Narnia The Great Fall
I would think their real intent would to stop the development.
I don't know whether there are any laws forbidding this kind of practice; I'm just saying it's wrong.
Look at it this way -- *some* form of digital medium for the sneakernet distribution of video will become the single de facto standard, and it's likely that DVD will be the one.
With the DVD consortium in control of the keys necessary to create disks and read them, a small number of companies effectively become in control of that significant chunk of media. Free speech? Dead. Indie movies? Dead.
Bah.
--
What does one use (in a Win Environment) to view these VOB files anyway?
If it can happen with DVD then presumably it will happen with Digital TV soon. What is going to stop people from downloading illegal decryption software for STB's or TV cards?
nonags.com had it listed earlier last week.. thats where I downloaded it from.
Since all books are copyright protected, I think the contents of them should be encrypted as well. I think we should write all the books into Navarajo (which the americans used as encryption tool in WWII) and then prosecute and jail the last few people who speak that language.
After that if anyone should reverse engineering that then dead language, they should be prosecuted and jailed. You're not allowed to copy the contents of books, so learning the Navarajo language is an illegal action.
Of course, those people who buy books in the right kind of cover, will get their copy along with a Navarajo translator. But you won't get one if you buy the sort of book that falls under the Gnu Publishers License, and that is open cover.
Beware of Wight Supremacists!
If DVD dies, and they come out with something
new, someone will find a way to copy that too.
There's no such thing as intellectual property,
and if you put it out there, given enough time
someone will find a way to copy it. That's a
*good* thing.
For every problem, there is at least one solution that is simple, neat, and wrong.
CNet have just listed this in their "download dispatch", with a live link for download from: http://www.dvd-copy.com
o wggomuY
DECSS
File size: 60K
License: Freeware
Minimum requirements: Windows 98/NT 4.0
DVD owners: Looking for a way to back up movies onto your
hard drive? This tiny multimedia utility can rip DVD videos
and save them directly to disk as uncompressed, playable VOB
files. Keep in mind, however, that DVDs occupy between 5 and
10 gigabytes of hard disk space each--so be sure to have a
spare storage device on hand. Let 'er rip:
http://1.digital.cnet.com/cgi-bin1/flo?x=dEBhoEuK
Just had a thought from surfing through the /. home page. The DeCSS article and Distributed.net article just happend to be within an article of each other. So, why not combine them. Just from figuring out one key, these guys were able to figure out ~120 working keys. Why don't be brute force it, a la Distributed.net, and really put a bug up the MPIA's ass?
thanks for the links /css-auth/css-auth.c
I'm looking at
I feel so dirty
But we still have many businesses (including the motion picture industry) which are still operating under the old industrial age rules. Those rules favor protecting property to preserve scarcity to help assign higher product value. That we can copy movies with no real overhead, threatens the scarcity, which in turns lowers the assigned value of the product. They see the need to try to protect their property, so that they can continue to retain value assigned to it. A great example of the extreme of this mindset was Disney (until recently) which not only protected their IP, but actually would take products off the market for extended periods of time to drive up the 'value' (by making the product more scarce).
The Electronic world compensates. Its just the beginning of the new economy, and what we are seeing is that the wired folks are starting to act in a new way. Notice the increase of attention regarding issues of intellectual property and privacy. Both of these issues have to transition to a new set of rules in this new economy and we have a conflict of the old-economy businesses and the new-economy public. Expect to see more of this for the next few years.
The popularity of DeCSS (in our community) and the proliferations of MP3s are just two examples of the new rules in action. DeCSS is a correction to the old rules, and MP3 is the principals of the new economy in action. Not that most people have any idea that this is going on. Like rules of any economy, they 'just make sense.' We like MP3s cause it just makes sense to distribute and collect music this way.
Of course, I could be just blowing smoke.
DVD for Linux is good, and encrypting content is bad, however...
I think the media is going to overblow this, aided by drooling w@r=z d00dz who think this is the Holy Grail or something.
I tried this out myself. Yep it rips movies flawlessly. But then what? Do I RE-compress the movie - further degrading quality? As it is I can see DEFECTS in the ORIGINAL DVD... compressing will only make it worse. True, I tried a Windows software DVD player which accounts for most of the defects, but this is a respectable playback platform (Voodoo3, AMD K62/450 128 MB RAM).
I don't remember all of biology, but I recall the human eye is much more sensitive than the human ear, so defects are much more obvious than say frequency clipping in an MP3... especially if you look for these things. I still grab the occasional MP3, but mostly they suck like car factory speakers suck and Microsoft ASF sucks .
I encode my own MP3's not because I want to be legal, but because that's the opnly way for me to get 320/44 kbps which tends to preserve the upper frequencies.
With compressing video, we're talking inter-frame compression which takes 100% of your CPU for (I'm guessing) 8 hours or more. What a sorry way to avoid $19 for a movie.
Don't get me wrong - I think the freedom to copy content you own is a GOOD THING, and I rank encrypting content right up there with evils like sterile plant seeds (designed to make addicts of the third world). I'm sure the music industry makes a KILLING of scratched and discarded audio CD's... backing up is your right.
And, if you're particularly bored, my letter. It's wanky and tame, but that's what they're supposed to be ;)
====
Hi you crazy kids, you
We both know there isn't a legal standpoint for doing what you're doing when it comes to legal action about taking down the information pertaining to decoding DVDs on dvdutils.com. There are perfectly legal reasons for decoding legally purchased DVDs so as to view them on other operating systems not supported by vendors. You have no legal right - and in my eyes no moral right - to threaten these websites with legal action. These are small sites largely run by passionate unpaid people for the benefit of others. They probably haven't the resources to stand against your false claims - and with the cost involved are forced (albeit in a defacto kinda way) to bow under your legal weight of faulty claims. Discussing the merits and flaws in DVD encryption is not illegal and your actions degrace the legal profession.
Come on now, that's not cricket.
Matthew Cruickshank
http://www.holloway.co.nz/book/3/
-Docvert converts MSWord to OpenDocument, clean HTML
No, you are wrong.
The idea was to prevent the wholesale copying of DVDs like the CD problem they have in Asia.
There are some patent issues if you wanted to manufacture a DVD player and didn't license the appropriate patents, but itwould be far easier to just sue you, rather than going through this encryption stuff.
DrLunch.com The site that tells you what's for lunch!
RedHat cannot take this on. However, I would suggest that GNU could, if this isn't an issue of software freedom I don't know what is!
GNU also does not have the financial risks of Redhat or any other true commercial organisation, and I would suggest that if required monetary support would be far easier for them to organise than any other body. It would certainly be an interesting test of both the principles of software freedom and the support of the FSF by the commercial linux interests.
Use the Source Luke
Never underestimate the dark side of the Source
I will continue to pirate just to spite the DMCA and the RIAA, MPAA, . Why make laws that make people more violent?
... And really it's for the best.
Don't fuck with me and I won't fuck with you.
..but how can possibly an encryption protect against copying? Copying, from what I know, works on a bit-to-bit level, and doesn't care about encryption - the copied version will be as encrypted and as original as the original. So this is just to screw it up for people wanting to implement a software player!
--The knowledge that you are an idiot, is what distinguishes you from one.
Anyone got any email addresses of Lawyers firms representing MPAA in this? Or MPAA themselves? Here are some email addresses & links to web-forms of some members of the MPAA, that are freely publicised (I haven't found many ... yet): info@pde.paramount.com motionpictures@pde.paramount.com http://www.mgmua.com/cgi-bin/cgi/email.html&type=b ody&from=&V=2?subject=MGM+DVD&x=55&y=5 http://disney.go.com/mail/movies/index.html http://www.mca.com/fp/contact_form.html
Well unless there is one already, you just made it up. My new .sig, Demona's Law =)
Demona's Law - "User data expands to exceed available bandwidth." ("User data" being pr0n, mp3's, vob's,
ftp://ftp.charm.net/pub/usr/home/dutch/ or http://www.charm.net/~dutch/ Nothing like having plenty of stuff -d
Some software based DVD players can play directly from a .vob file, or you can copy the navigation files (.ifo) from the dvd into a video_ts directory on your hard drive and point the player to that drive as your DVD drive. An example of a sofware DVD player would be InterVideo's WinDVD. It can be purchased for about $50.00, and is bundled in with some graphics cards as well. I got my copy from 3DFx when I bought a Voodoo3. I believe PowerDVD has this capability as well, but it requires a lot more CPU than WinDVD. The Mad Duke
Commercial DVD mastering equipment isn't burdened by the first layer of CSS encryption: the player/drive authentication handshake. Commercial mastering equipment can read all contents of DVDs, including the 409 player/disk keys and the disk key hash, and duplicate them exactly. This is required in order to read all of the disk to verify it was pressed correctly (quality assurance.)
CSS can not stop the commercial pirates, its purpose is to stop the casual user.
Where did you get all of those links? Were you in contact with the authors that maybe knew where it had been distributed?
2 links would have been good. 5 links would have been great. This is just awesome. Already got the binary and the source. Thanks a lot.
-- Truth goes out the door when rumor comes innuendo. -- Groucho Marx
> I think that once the artists/creator of a work of art is dead their property should enter the public domain.
Unfortunately this wouldn't work as everyone could become a 'corporate sole' i.e. a legal entity with perpuitity.
From the things that make you go hmmmm:
Why is the Queen of England a corporate sole?
If you're interested, snag a copy of Black's Law Dictionary, and read what it has to say.
IANAL
Cheers
Visit Humpin! (No, it's not what you think!)
Explanation on legality of this information:
The software (source as well as binaries) offered on this site can be freely redistributed. It was written by authors who expressly permitted and encourage the redistribution of this software and information. The purpose of this software is not, I repeat not illegal copying of DVD disks. It is meant to provide information necessary to be able to program a DVD player for Linux. To do this, the CSS system needs to be incorporated in the player. Recently the (very weak) content scrambling system was deciphered, freeing the way for a Linux DVD player. The CSS system is not a copy protection system, since it does not prevent copying of the disk. Writing information about the way an encryption scheme functions is completely legal. The source code and binaries on this site are completely legal too, since they contain no code from the DVD consortium or its members. The sources and programs on this site are purely written by 3rd parties using clean-room reverse engineering methods, which is, again, completely legal. This software and information below make it possible for people who legally obtained their DVD movies to view them on their Linux systems.
Attention
www.rhythm.cx was hosting a list of mirrors for these files. That list of mirrors has been replaced with a page reading "This site has been taken down for legal reasons." Here's what the maintainer put on the site the day it was shut down:
NOTE (Thu, Nov 11, 12:17pm EST): I've recently been informed that a law firm which is likely to be one that would try get these mirrors taken down has been visiting this mirror site as well as others. With that said, there is a possibility that I may have to remove this site in the near future because like everyone else, I can't afford to go to court to fight it. Luckly, it seems fairly unlikely that any law firm will ever be able to get rid of all these mirrors at this point (there are currently 41 in 8 different countries and this list is growing every day). However, I have only seen very few mirror _lists_ like this one anyplace. If anyone has the resources, it might be wise to mirror this list of mirrors as well so that the right people will still know that these mirrors exist.
UPDATE: Here is a 2600 story with more details on how rhythm.cx was shut down.
I have taken it upon myself to mirror the mirrors. So until such time as the hounds of hell come a-knocking at my door, I present for you this list:
Page last updated: Tue, Nov 16, 2:19pm EST
Current Mirrors
(Numbers are only for the maintainer's convenience)
This site contains some good technical documentation as well as more source code that the DVD consorium's lawyers would rather you not see:
http://crypto.gq.nu/
Semi-broken Mirrors
(These mirrors sometimes work and sometimes don't)
ftp://134.173.94.44/
Broken Mirrors
(These are listed here for the notification of the people who run them)
http://members.theglobe.com/avoiderman/css-auth.t
Mirrors shut down by The Man
(A moment of silence, please.)
http://www.rhythm.cx/dvd/css-auth.tar.gz and http://www.rhythm.cx/dvd/DeCSS.zip
http://dvdcracked.tvheaven.com/index.html
download it at http://www.capital.net/~wooly
Any data on a hard drive can always be analyzed to the bone until someone figures a way to crack/decrypt it.
Eventually anything can be cracked. The only true security is not having ANY access to the data/CD/DVD at all. That means physical access too.
Software is like a pair of rabbits...give it time.
No, you are wrong.
...
The idea was to prevent the wholesale copying of DVDs like the CD problem they have in Asia.
No, you are wrong.
Wholesale pirates have access to commercial grade DVD copying and pressing equipment, which as another poster noted is not affected by CSS at all.
Furthermore, wholesale DVD pirates have the option of recording from the analog output, redigitizing the result with only a small loss in quality, and pressing as many unencrypted DVDs as they wish. Minimal effort, minimal cost. Given the kinds of pirated movies that have been sold in the past (taken with a video camera in front of a screen for crying out loud!), quality is not a very important issue to pirates.
CSS is designed to restrict playback and limit fair use as provided for under the law, including but not limited to making backup copies or moving the data to a more convenient medium.
The MPAA has plenty of legal recourse, and muscle, to go after wholesale pirates. CSS is an effort to make an end-run around laws permitting individuals fair use, something the MPAA and movie studios can't stand, but have absolutely no LEGAL method of stopping (except by encryption and excersizing the draconian new rights they have been granted in the US through the Digital Millenium Copyright Act, which was snuck through on a voice vote during the height of the Clinton/Monica sex scandal.)
As I noted in another post, I will not be giving any money, directly or indirectly, to Hollywood until such a time as DVD is supported under Linux and their witch hunts stop. Yes, this means I'm making allot of use of the public library, local book stores, and local theaters and comedy clubs. Now that I'm hooked on the latter, I will probably be much less inclined to watch movies again even after the MPAA cleans up their act (should that optomistic expectation actually ever happen), as plays and comedy acts have actually turned out to be much more entertaining than any movie I've seen in the last several years. But that's another story altogether
The Future of Human Evolution: Autonomy
..service? There are all kinds of devices for illegally descrambling cable signals, and If you consider dvd as a 'information source' transmitted by sneaker net with the ability to use a device to view it infinitely, but only a 'licenced' device provided by the service provider--as in cable--then we are in violation of federal laws or something. I think it really comes down to the licencing schema that each dvd datafile is covered by.
Remember this...no eternal reward will forgive us now for wasting the dawn....(jim morrison)
File not found...
Well, that didn't last long.
25% Funny, 25% Insightful, 25% Informative, 25% Troll
The difference in quality depends on the type of music. MP3s work well for pop music that tend to have most of the sound in a fairly narrow band at any given time. The sound band moves around, but generally there is one dominant sound. Of course pop is also written to sound decent on low end comsumer electronics. Other kinds of music can have a lot of sound all over the spectrum. I imagine that a lot of classical is like that (I haven't really listened to much). You are meant to hear both the continueing echo of the kettle drums as well as the delicate sound of the flutes. In most pop music you only need to hear the initial thump of the bass or drum while you concentrate on the voice or guitar. MP3 does not encode the broad spectrum stuff very well. When I tried to encode some new age stuff I found that it dumped in a lot of high frequency noise while muting the bass. It didn't really matter what encoder I used or which bitrate they all sounded pretty awfull. Anything less then 196kbits/s actually started giving me a head ache.
I am still encodeing much of my CD collection into mp3. Even 128kbit/s MP3s aren't bad for some music.
as it will very likely result in the loss of DVD support on PCs or the loss of DVD support in its current form from the movie industry.
Is it possible that when CNet gets the inevitible Cease and Desist letter from the RIAA, they plan on fighting for their right to distribute the software? That would be interesting.
Does anyone know of CNet's previous responses to such threats?
Greg
It is a bit wishy washy though. But since the average ZDNet reader only reads the headline and any applicable "Berst-I-Told-You-So" Links, they'll probably miss the part where the author says: "What is learned here can be applied to making future systems stronger."
--cringe--
http://frozenlinux.com/civ/decss/mirr ors.html
and if you want to see my own special little mirror, click here.
Ps. if you have server space somewhere, make your own mirror. piss off the laywers, by now there are too many mirrors for them be effective.
-----
Do you even know anything about perl? -- AC Replying to Tom Christiansen post.
You didn't read the question I was responding to. My point is that the encryption scheme did not exist to get companies to join the DVD consortium, but to provide copy protection.
Yes, this means I'm making allot of use of the public library, local book stores, and local theaters and comedy clubs.
I just flew in from Cleveland, and boy are my arms tired. Thank you! Tip your waitresses! I'll be at the Funny Bone in Omaha next week! Drive safely...
DrLunch.com The site that tells you what's for lunch!
Here's a nice big 'ol list o' mirrors for ya'll out there in cyberland!
.vanwaveren/css-auth/css-auth.tar.gz t uff-only.tar.gz /css-auth.tar.gz and http://www.zip.com.au/~cs/dvd/css/DeCSS .zip
http://home.worldonline.dk/~ andersa/download/DeCSS.zip
http://douglas.min.net/~drw/css-auth/
http://www.devzero.org/freecss.html
http://home.t-online.de/home/skinn er01/decss.zip
http://www.chello.nl/~f
http://www.geociti es.com/ResearchTriangle/Campus/8877/index.html
http://www.angelfire.com/mt/popefelix/ http://www.vexed.net/CSS
http://members.brabant.chello.nl/~j.vr eeken/
http://gullii.stu.rpi.edu/dvd/files/D eCSS.zip and http://gullii.stu.rpi.edu/dvd/f iles/css-auth.tar.gz
http://www.dvd.eavy.de/css-auth.tar.gz http://www.eavy.net/stuff/dvd/css-aut h.tar.gz and http://www.eavy.net/stuff/dvd/DeCSS.zip
http://www.dynamsol.com/satanix/DeCSS.zip
http://www.dvd.eavy.de/DeCSS.zip
http://frozenlinux.com/civ/decss/
http://www.humpin.org/decss/
http://www.unitycode.org/
http://dirtass.beyatch.net/decss.zip
http://sharedlib.org/decss.zip
http://decss.tripod.com/index.html
http://www.free-dvd.org.lu/
ftp://134.173.94.44/
http://www.angelfire.com/in2/mirror/
http://mclaughlin.orange.ca.us/~andrew/
http://www.dynamsol.com/satanix/css -auth.tar.gz
http://batman.jytol.fi/~vuori/dvd/
http://www.zpok.demon.co.uk/deCSS/CSS.ht ml
http://plato.nebulanet.net:88/css/
ftp://alma.dhs.org/pub/DVD/
http://www.d.umn.edu/~dchan/css/
http://www.logorrhea.com/main.html
http://people.delphi.com/salfter/LiVi d.tar.gz
http://www.theresistance.net/files.html
ftp://193.219.56.32/pub/dvd/LiVi d.CVS-11.06.tar.gz ftp://193.219.56.32/pub/dvd/LiVid.CVS-11.06.css-s
http://merlin.keble.ox.ac.uk/~a drian/css/index.html
http://www.dvd-copy.com/
http://www.zip.com.au/~cs/dvd/css
http://www.sent.freeserve.co.uk/css -auth.tar.gz and http://www.sent.freeserve.co.uk/DeCSS.zip
http://members.tripod.lycos.nl/jvz/
http://joe.to/storage/files/decss.zip
ftp://ftp.firehead.org/pub/
http://www.lemuria.org/DeCSS/
http://members.theglobe.com/avoiderm an/dvd.htm
http://remco.xgov.net/dvd/
http://www.able-towers.com/~flow/
ftp://dvd:dvd@206.98.63.136/
http://www.twistedlogic.com/htm l/tl_archive_map.htm
http://dvdcracked.tvheaven.com/index.html
-----
Do you even know anything about perl? -- AC Replying to Tom Christiansen post.
Lets say you have a DVD Drive in your system and a DVD. You can copy the .VOB files from the DVD to the hard drive and now you have unencrypted VOB files.
The funny part is that only the commercial software DVD decoders (WinDVD, etc) can play VOB files. This software already has DeCSS code in it!
It seems to me that any video piraters could just distribute the encrypted VOB files along with pirated playback software. This makes DeCSS pretty useless untill freeware VOB players emerge. Or a VOB --> Quicktime converter?
Don
Visit Humpin! (No, it's not what you think!)
Explanation on legality of this information:
The software (source as well as binaries) offered on this site can be freely redistributed because it was published under the GNU General Public License. The purpose of this software is not illegal copying of DVD disks. It is meant to provide information necessary to be able to program a DVD player for Linux. To do this, the CSS system needs to be incorporated in the player. Recently the (very weak) DVD content scrambling system was deciphered, freeing the way for a Linux DVD player. The CSS system is not a copy protection system, since it does not prevent copying of the disk. Writing information about the way an encryption scheme functions is completely legal. The source code and binaries on this site are completely legal too, since they contain no code from the DVD consortium or its members. The sources and programs on this site were written by third parties using clean-room reverse engineering methods which are (ready?) completly legal.
Attention
www.rhythm.cx was hosting a list of mirrors for these files. That list of mirrors has been replaced with a page reading "This site has been taken down for legal reasons." Here's what the maintainer put on the site the day it was shut down:
NOTE (Thu, Nov 11, 12:17pm EST): I've recently been informed that a law firm which is likely to be one that would try get these mirrors taken down has been visiting this mirror site as well as others. With that said, there is a possibility that I may have to remove this site in the near future because like everyone else, I can't afford to go to court to fight it. Luckly, it seems fairly unlikely that any law firm will ever be able to get rid of all these mirrors at this point (there are currently 41 in 8 different countries and this list is growing every day). However, I have only seen very few mirror _lists_ like this one anyplace. If anyone has the resources, it might be wise to mirror this list of mirrors as well so that the right people will still know that these mirrors exist.
UPDATE: Here is a 2600 story with more details on how rhythm.cx was shut down.
I have taken it upon myself to mirror the mirrors. So until such time as the hounds of hell come a-knocking at my door, I present for you this list:
Page last updated: Wed, Nov 17, 2:33pm EST
Current Mirrors
(Numbers are only for the maintainer's convenience)
This site contains some good technical documentation as well as more source code that the DVD consorium's lawyers would rather you not see:
http://crypto.gq.nu/
Semi-broken Mirrors
(These mirrors sometimes work and sometimes don't)
ftp://134.173.94.44/
Broken Mirrors
(These are listed here for the notification of the people who run them)
http://members.theglobe.com/avoiderman/css-auth.t
Mirrors shut down by The Man
(A moment of silence, please.)
http://www.rhythm.cx/dvd/css-auth.tar.gz and http://www.rhythm.cx/dvd/DeCSS.zip
http://dvdcracked.tvheaven.com/index.html
This site contains some good technical documentation as well as more source code that the DVD consorium's lawyers would rather you not see:
http://crypto.gq.nu/
Semi-broken Mirrors
(These mirrors sometimes work and sometimes don't)
ftp://134.173.94.44/
Broken Mirrors
(These are listed here for the notification of the people who run them)
http://members.theglobe.com/avoiderman/css-auth.t
Mirrors shut down by The Man
(A moment of silence, please.)
http://www.rhythm.cx/dvd/css-auth.tar.gz and http://www.rhythm.cx/dvd/DeCSS.zip
http://dvdcracked.tvheaven.com/index.html
This page was originally a mirror of http://www.rhythm.cx/dvd/, but then rhythm.cx was forced down.
So I've taken it on myself to keep a list of mirrors. I try to update and check the status of the listed sites at least once per day. If you know of any mirrors not in my list, if you wish to mirror this page, or if you find that any of the listed sites went down, then contact me.
you can download the following three files from here:
DeCSS.zip - DeCSS
css-auth.tar.gz - CSS authentication source
LiVid.tgz - Linux DVD Code
MD5 Sums:
d0aff684327a5c7bf110951e42ec3cae DeCSS.zip 8653090161e8f287d365132acb098581 css-auth.tar.gz a940de43a3c20895cf56bbca75c6d7a7 LiVid.tgz
Known Mirrors (as of 17/Nov/1999, 08:30 GMT):
Sites that copied this site (lemuria.org): http://josefine.ben.tuwien.ac.at/~davi d/dvd/
/avoiderman/
http://www.c0ke.com/DVD/
http://209.68.37.134/decss/
http://rockme.virtualave.net/
http://caspian.twu.net/dv d/mirrors/www.lemuria.org/DeCSS/
http://www.homestead.com/avoid erman/files/index.html
http://www.angelfire.com/jazz/avoiderman/
http://freeweb.digiweb.com/business
http://www.intelcities.com/Main_ Street/Avoiderman/
http://members.theglobe.com/avoiderm an/dvd.htm
http://members.xoom.com/lkjhgfdsa2/
Other sites where DeCSS, css-auth and/or LiVid are mirrored: http://home.worldonline.dk/~ andersa/download/DeCSS.zip .vanwaveren/css-auth/css-auth.tar.gz /css-auth.tar.gz and http://www.zip.com.au/~cs/dvd/css/DeCSS .zip
http://douglas.min.net/~drw/css-auth/
http://www.devzero.org/freecss.html
http://home.t-online.de/home/skinn er01/decss.zip
http://www.chello.nl/~f
http://www.vexed.net/CSS
http://members.brabant.chello.nl/~j.vr eeken/
http://www.dvd.eavy.de/css-auth.tar.gz and http://www.dvd.eavy.de/DeCSS.zip
http://www.eavy.net/stuff/dvd/css-aut h.tar.gz and http://www.eavy.net/stuff/dvd/DeCSS.zip
http://www.dynamsol.com/satanix/DeCSS.zip and http://www.dynamsol.com/satanix/css -auth.tar.gz
http://frozenlinux.com/civ/decss/
http://www.humpin.org/decss/
http://www.unitycode.org/
http://dirtass.beyatch.net/decss.zip
http://www.free-dvd.org.lu/
http://mclaughlin.orange.ca.us/~andrew/
http://batman.jytol.fi/~vuori/dvd/
http://www.zpok.demon.co.uk/deCSS/CSS.ht ml
http://plato.nebulanet.net:88/css/
http://www.d.umn.edu/~dchan/css/
http://www.logorrhea.com/main.html
http://people.delphi.com/salfter/LiVi d.tar.gz
http://www.theresistance.net/files.html
ftp://193.219.56.32/pub/dvd/LiVi d.CVS-11.06.tar.gz and ftp://193.219.56. 32/pub/dvd/LiVid.CVS-11.06.css-stuff-only.tar.gz
http://merlin.keble.ox.ac.uk/~a drian/css/index.html
http://www.dvd-copy.com/
http://www.zip.com.au/~cs/dvd/css
ftp://ftp.firehead.org/pub/ (very slow - 33.6 line)
http://members.tripod.co.uk/bap/css/cs s.html
http://www.tasam.com/~fenkt/dvd/
ftp://eris.giga.or.at/pub/hacker/crypt/ DVD/
http://therapy.endorphin.org/DVD/
http://www.discordia.de/decss/DeCSS.zip and http://www.discordia.de/decss/css-aut h_tar.gz and http://www.discordia.de/decss/LiVid.tgz
http://www.dvdlinks.co.uk/css/
http://caspian.twu.net/dvd/
http://www.twistedlogic.com/htm l/tl_archive_map.htm
http://www.jonhanson.com/dvd/
http://www.geociti es.com/ResearchTriangle/Campus/8877/index.html
http://www.angelfire.com/mt/popefelix/ http://members.tripod.lycos.nl/jvz/
http://www.angelfire.com/in2/mirror/
http://www.sent.freeserve.co.uk/css -auth.tar.gz and http://www.sent.freeserve.co.uk/DeCSS.zip
Mirrors that appear have gone down since 12/Nov/1999: http://www.rhythm.cx/dvd/css-auth.tar.gz and http://www.rhythm.cx/dvd/DeCSS.zipm lg z ftp://alma.dhs.org/pub/DVD/ http://home.worldonline.dk/~andersa/download/DeCSS .zip
http://www.xs4all.nl/~predator/freecss/freecss.ht
http://sharedlib.org/decss.zip
http://decss.tripod.com/index.html
ftp://134.173.94.44/
http://gullii.stu.rpi.edu/dvd/files/DeCSS.zip and http://gullii.stu.rpi.edu/dvd/files/css-auth.tar.
The following site contains some good technical documentation as well as more source code that the DVD consortium's lawyers would rather you not see: /DeCSS/crypto.gq.nu
http://crypto.gq.nu/
Local Mirror:
You can contact me at tom@lemuria.org if you have any questions regarding mirroring, or want your mirror added here.
Note to lawyers and other scum:
This information is widely available by now, and no matter what you do, you will not be able to supress it. It was the DVD consortium that f***ed up, and now you're trying to solve a technological problem with threats and legal action?
If there were fines on stupidity, yours would cover the national debts of most western countries.
The only reason the hardware manufacturers wanted it was to appease the music industry, and since the music industry isn't really up on encryption, they went for it.
This allowed the hardware companies to move forward with the standard, and know that in the future, when the encryption was broken, the standard would be solidified.......
Interesting, eh?? ;)
You can get video capture cards for less than the cost of a DVD drive, so copying over the internet is going to happen whether the companies release on DVD or not. And people copied movies like the Matrix and TPM from film before any DVDs or tapes were made.
DVD or no DVD will have ZERO effect on online trading, so if studios don't release on DVD then they are stupid and will lose money, but that won't have any effect on illegal copying.
At the moment, the feared use of VOB's of ripping them and trading them around the internet, is pretty far-fetched. On today's modems, it would take you around 28 days to transfer a full DVD. However, it will not be long until the average user can store 100's of gigs easily, and also, transfering a DVD will be as easy as an MP3.
My question is how far are we away from the AVERAGE websurfer, with this DeCSS tool, being reasonably capable of bootlegging DVDs? A year? Also, what can GZIP to do these suckers?
Thanks!
Calling out bogus battery capacity claims.
/*
/* In order to ensure that the LFSR works we need to ensure that the
/* Feed the secret into the input values such that
/* This term is used throughout the following to
/* Now the actual blocks doing the encryption. Each
* Copyright (C) 1999 Derek Fawcus
*
* This code may be used under the terms of Version 2 of the GPL,
* read the file COPYING for details.
*
*/
/*
* These routines do some reordering of the supplied data before
* calling engine() to do the main work.
*
* The reordering seems similar to that done by the initial stages of
* the DES algorithm, in that it looks like it's just been done to
* try and make software decoding slower. I'm not sure that it
* actually adds anything to the security.
*
* The nature of the shuffling is that the bits of the supplied
* parameter 'varient' are reorganised (and some inverted), and
* the bytes of the parameter 'challenge' are reorganised.
*
* The reorganisation in each routine is different, and the first
* (CryptKey1) does not bother of play with the 'varient' parameter.
*
* Since this code is only run once per disk change, I've made the
* code table driven in order to improve readability.
*
* Since these routines are so similar to each other, one could even
* abstract them all to one routine supplied a parameter determining
* the nature of the reordering it has to do.
*/
#include "css-auth.h"
typedef unsigned long u32;
static void engine(int varient, byte const *input, struct block *output);
void CryptKey1(int varient, byte const *challenge, struct block *key)
{
static byte perm_challenge[] = {1,3,0,7,5, 2,9,6,4,8};
byte scratch[10];
int i;
for (i = 9; i >= 0; --i)
scratch[i] = challenge[perm_challenge[i]];
engine(varient, scratch, key);
}
/* This shuffles the bits in varient to make perm_varient such that
* 4 -> !3
* 3 -> 4
* varient bits: 2 -> 0 perm_varient bits
* 1 -> 2
* 0 -> !1
*/
void CryptKey2(int varient, byte const *challenge, struct block *key)
{
static byte perm_challenge[] = {6,1,9,3,8, 5,7,4,0,2};
static byte perm_varient[] = {
0x0a, 0x08, 0x0e, 0x0c, 0x0b, 0x09, 0x0f, 0x0d,
0x1a, 0x18, 0x1e, 0x1c, 0x1b, 0x19, 0x1f, 0x1d,
0x02, 0x00, 0x06, 0x04, 0x03, 0x01, 0x07, 0x05,
0x12, 0x10, 0x16, 0x14, 0x13, 0x11, 0x17, 0x15};
byte scratch[10];
int i;
for (i = 9; i >= 0; --i)
scratch[i] = challenge[perm_challenge[i]];
engine(perm_varient[varient], scratch, key);
}
/* This shuffles the bits in varient to make perm_varient such that
* 4 -> 0
* 3 -> !1
* varient bits: 2 -> !4 perm_varient bits
* 1 -> 2
* 0 -> 3
*/
void CryptBusKey(int varient, byte const *challenge, struct block *key)
{
static byte perm_challenge[] = {4,0,3,5,7, 2,8,6,1,9};
static byte perm_varient[] = {
0x12, 0x1a, 0x16, 0x1e, 0x02, 0x0a, 0x06, 0x0e,
0x10, 0x18, 0x14, 0x1c, 0x00, 0x08, 0x04, 0x0c,
0x13, 0x1b, 0x17, 0x1f, 0x03, 0x0b, 0x07, 0x0f,
0x11, 0x19, 0x15, 0x1d, 0x01, 0x09, 0x05, 0x0d};
byte scratch[10];
int i;
for (i = 9; i >= 0; --i)
scratch[i] = challenge[perm_challenge[i]];
engine(perm_varient[varient], scratch, key);
}
/*
* We use two LFSR's (seeded from some of the input data bytes) to
* generate two streams of pseudo-random bits. These two bit streams
* are then combined by simply adding with carry to generate a final
* sequence of pseudo-random bits which is stored in the buffer that
* 'output' points to the end of - len is the size of this buffer.
*
* The first LFSR is of degree 25, and has a polynomial of:
* x^13 + x^5 + x^4 + x^1 + 1
*
* The second LSFR is of degree 17, and has a (primitive) polynomial of:
* x^15 + x^1 + 1
*
* I don't know if these polynomials are primitive modulo 2, and thus
* represent maximal-period LFSR's.
*
*
* Note that we take the output of each LFSR from the new shifted in
* bit, not the old shifted out bit. Thus for ease of use the LFSR's
* are implemented in bit reversed order.
*
*/
static void generate_bits(byte *output, int len, struct block const *s)
{
u32 lfsr0, lfsr1;
byte carry;
* initial values are non-zero. Thus when we initialise them from
* the seed, we ensure that a bit is set.
*/
lfsr0 = (s->b[0] b[1] b[2] & ~7) b[2] & 7);
lfsr1 = (s->b[3] b[4];
++output;
carry = 0;
do {
int bit;
byte val;
for (bit = 0, val = 0; bit > 24) ^ (lfsr0 >> 21) ^ (lfsr0 >> 20) ^ (lfsr0 >> 12)) & 1;
lfsr0 = (lfsr0 > 16) ^ (lfsr1 >> 2)) & 1;
lfsr1 = (lfsr1 > 1) & 1)
combined = !o_lfsr1 + carry + !o_lfsr0;
carry = BIT1(combined);
val |= BIT0(combined) 0);
}
static byte Secret[];
static byte Varients[];
static byte Table0[];
static byte Table1[];
static byte Table2[];
static byte Table3[];
/*
* This encryption engine implements one of 32 variations
* one the same theme depending upon the choice in the
* varient parameter (0 - 31).
*
* The algorithm itself manipulates a 40 bit input into
* a 40 bit output.
* The parameter 'input' is 80 bits. It consists of
* the 40 bit input value that is to be encrypted followed
* by a 40 bit seed value for the pseudo random number
* generators.
*/
static void engine(int varient, byte const *input, struct block *output)
{
byte cse, term, index;
struct block temp1;
struct block temp2;
byte bits[30];
int i;
* we alter the seed to the LFSR's used above, then
* generate the bits to play with.
*/
for (i = 5; --i >= 0; )
temp1.b[i] = input[5 + i] ^ Secret[i] ^ Table2[i];
generate_bits(&bits[29], sizeof bits, &temp1);
* select one of 32 different variations on the
* algorithm.
*/
cse = Varients[varient] ^ Table2[varient];
* of these works on 40 bits at a time and are quite
* similar.
*/
for (i = 5, term = 0; --i >= 0; term = input[i]) {
index = bits[25 + i] ^ input[i];
index = Table1[index] ^ ~Table2[index] ^ cse;
temp1.b[i] = Table2[index] ^ Table3[index] ^ term;
}
temp1.b[4] ^= temp1.b[0];
for (i = 5, term = 0; --i >= 0; term = temp1.b[i]) {
index = bits[20 + i] ^ temp1.b[i];
index = Table1[index] ^ ~Table2[index] ^ cse;
temp2.b[i] = Table2[index] ^ Table3[index] ^ term;
}
temp2.b[4] ^= temp2.b[0];
for (i = 5, term = 0; --i >= 0; term = temp2.b[i]) {
index = bits[15 + i] ^ temp2.b[i];
index = Table1[index] ^ ~Table2[index] ^ cse;
index = Table2[index] ^ Table3[index] ^ term;
temp1.b[i] = Table0[index] ^ Table2[index];
}
temp1.b[4] ^= temp1.b[0];
for (i = 5, term = 0; --i >= 0; term = temp1.b[i]) {
index = bits[10 + i] ^ temp1.b[i];
index = Table1[index] ^ ~Table2[index] ^ cse;
index = Table2[index] ^ Table3[index] ^ term;
temp2.b[i] = Table0[index] ^ Table2[index];
}
temp2.b[4] ^= temp2.b[0];
for (i = 5, term = 0; --i >= 0; term = temp2.b[i]) {
index = bits[5 + i] ^ temp2.b[i];
index = Table1[index] ^ ~Table2[index] ^ cse;
temp1.b[i] = Table2[index] ^ Table3[index] ^ term;
}
temp1.b[4] ^= temp1.b[0];
for (i = 5, term = 0; --i >= 0; term = temp1.b[i]) {
index = bits[i] ^ temp1.b[i];
index = Table1[index] ^ ~Table2[index] ^ cse;
output->b[i] = Table2[index] ^ Table3[index] ^ term;
}
}
static byte Varients[] = {
0xB7, 0x74, 0x85, 0xD0, 0xCC, 0xDB, 0xCA, 0x73,
0x03, 0xFE, 0x31, 0x03, 0x52, 0xE0, 0xB7, 0x42,
0x63, 0x16, 0xF2, 0x2A, 0x79, 0x52, 0xFF, 0x1B,
0x7A, 0x11, 0xCA, 0x1A, 0x9B, 0x40, 0xAD, 0x01};
static byte Secret[] = {0x55, 0xD6, 0xC4, 0xC5, 0x28};
static byte Table0[] = {
0xB7, 0xF4, 0x82, 0x57, 0xDA, 0x4D, 0xDB, 0xE2,
0x2F, 0x52, 0x1A, 0xA8, 0x68, 0x5A, 0x8A, 0xFF,
0xFB, 0x0E, 0x6D, 0x35, 0xF7, 0x5C, 0x76, 0x12,
0xCE, 0x25, 0x79, 0x29, 0x39, 0x62, 0x08, 0x24,
0xA5, 0x85, 0x7B, 0x56, 0x01, 0x23, 0x68, 0xCF,
0x0A, 0xE2, 0x5A, 0xED, 0x3D, 0x59, 0xB0, 0xA9,
0xB0, 0x2C, 0xF2, 0xB8, 0xEF, 0x32, 0xA9, 0x40,
0x80, 0x71, 0xAF, 0x1E, 0xDE, 0x8F, 0x58, 0x88,
0xB8, 0x3A, 0xD0, 0xFC, 0xC4, 0x1E, 0xB5, 0xA0,
0xBB, 0x3B, 0x0F, 0x01, 0x7E, 0x1F, 0x9F, 0xD9,
0xAA, 0xB8, 0x3D, 0x9D, 0x74, 0x1E, 0x25, 0xDB,
0x37, 0x56, 0x8F, 0x16, 0xBA, 0x49, 0x2B, 0xAC,
0xD0, 0xBD, 0x95, 0x20, 0xBE, 0x7A, 0x28, 0xD0,
0x51, 0x64, 0x63, 0x1C, 0x7F, 0x66, 0x10, 0xBB,
0xC4, 0x56, 0x1A, 0x04, 0x6E, 0x0A, 0xEC, 0x9C,
0xD6, 0xE8, 0x9A, 0x7A, 0xCF, 0x8C, 0xDB, 0xB1,
0xEF, 0x71, 0xDE, 0x31, 0xFF, 0x54, 0x3E, 0x5E,
0x07, 0x69, 0x96, 0xB0, 0xCF, 0xDD, 0x9E, 0x47,
0xC7, 0x96, 0x8F, 0xE4, 0x2B, 0x59, 0xC6, 0xEE,
0xB9, 0x86, 0x9A, 0x64, 0x84, 0x72, 0xE2, 0x5B,
0xA2, 0x96, 0x58, 0x99, 0x50, 0x03, 0xF5, 0x38,
0x4D, 0x02, 0x7D, 0xE7, 0x7D, 0x75, 0xA7, 0xB8,
0x67, 0x87, 0x84, 0x3F, 0x1D, 0x11, 0xE5, 0xFC,
0x1E, 0xD3, 0x83, 0x16, 0xA5, 0x29, 0xF6, 0xC7,
0x15, 0x61, 0x29, 0x1A, 0x43, 0x4F, 0x9B, 0xAF,
0xC5, 0x87, 0x34, 0x6C, 0x0F, 0x3B, 0xA8, 0x1D,
0x45, 0x58, 0x25, 0xDC, 0xA8, 0xA3, 0x3B, 0xD1,
0x79, 0x1B, 0x48, 0xF2, 0xE9, 0x93, 0x1F, 0xFC,
0xDB, 0x2A, 0x90, 0xA9, 0x8A, 0x3D, 0x39, 0x18,
0xA3, 0x8E, 0x58, 0x6C, 0xE0, 0x12, 0xBB, 0x25,
0xCD, 0x71, 0x22, 0xA2, 0x64, 0xC6, 0xE7, 0xFB,
0xAD, 0x94, 0x77, 0x04, 0x9A, 0x39, 0xCF, 0x7C};
static byte Table1[] = {
0x8C, 0x47, 0xB0, 0xE1, 0xEB, 0xFC, 0xEB, 0x56,
0x10, 0xE5, 0x2C, 0x1A, 0x5D, 0xEF, 0xBE, 0x4F,
0x08, 0x75, 0x97, 0x4B, 0x0E, 0x25, 0x8E, 0x6E,
0x39, 0x5A, 0x87, 0x53, 0xC4, 0x1F, 0xF4, 0x5C,
0x4E, 0xE6, 0x99, 0x30, 0xE0, 0x42, 0x88, 0xAB,
0xE5, 0x85, 0xBC, 0x8F, 0xD8, 0x3C, 0x54, 0xC9,
0x53, 0x47, 0x18, 0xD6, 0x06, 0x5B, 0x41, 0x2C,
0x67, 0x1E, 0x41, 0x74, 0x33, 0xE2, 0xB4, 0xE0,
0x23, 0x29, 0x42, 0xEA, 0x55, 0x0F, 0x25, 0xB4,
0x24, 0x2C, 0x99, 0x13, 0xEB, 0x0A, 0x0B, 0xC9,
0xF9, 0x63, 0x67, 0x43, 0x2D, 0xC7, 0x7D, 0x07,
0x60, 0x89, 0xD1, 0xCC, 0xE7, 0x94, 0x77, 0x74,
0x9B, 0x7E, 0xD7, 0xE6, 0xFF, 0xBB, 0x68, 0x14,
0x1E, 0xA3, 0x25, 0xDE, 0x3A, 0xA3, 0x54, 0x7B,
0x87, 0x9D, 0x50, 0xCA, 0x27, 0xC3, 0xA4, 0x50,
0x91, 0x27, 0xD4, 0xB0, 0x82, 0x41, 0x97, 0x79,
0x94, 0x82, 0xAC, 0xC7, 0x8E, 0xA5, 0x4E, 0xAA,
0x78, 0x9E, 0xE0, 0x42, 0xBA, 0x28, 0xEA, 0xB7,
0x74, 0xAD, 0x35, 0xDA, 0x92, 0x60, 0x7E, 0xD2,
0x0E, 0xB9, 0x24, 0x5E, 0x39, 0x4F, 0x5E, 0x63,
0x09, 0xB5, 0xFA, 0xBF, 0xF1, 0x22, 0x55, 0x1C,
0xE2, 0x25, 0xDB, 0xC5, 0xD8, 0x50, 0x03, 0x98,
0xC4, 0xAC, 0x2E, 0x11, 0xB4, 0x38, 0x4D, 0xD0,
0xB9, 0xFC, 0x2D, 0x3C, 0x08, 0x04, 0x5A, 0xEF,
0xCE, 0x32, 0xFB, 0x4C, 0x92, 0x1E, 0x4B, 0xFB,
0x1A, 0xD0, 0xE2, 0x3E, 0xDA, 0x6E, 0x7C, 0x4D,
0x56, 0xC3, 0x3F, 0x42, 0xB1, 0x3A, 0x23, 0x4D,
0x6E, 0x84, 0x56, 0x68, 0xF4, 0x0E, 0x03, 0x64,
0xD0, 0xA9, 0x92, 0x2F, 0x8B, 0xBC, 0x39, 0x9C,
0xAC, 0x09, 0x5E, 0xEE, 0xE5, 0x97, 0xBF, 0xA5,
0xCE, 0xFA, 0x28, 0x2C, 0x6D, 0x4F, 0xEF, 0x77,
0xAA, 0x1B, 0x79, 0x8E, 0x97, 0xB4, 0xC3, 0xF4};
static byte Table2[] = {
0xB7, 0x75, 0x81, 0xD5, 0xDC, 0xCA, 0xDE, 0x66,
0x23, 0xDF, 0x15, 0x26, 0x62, 0xD1, 0x83, 0x77,
0xE3, 0x97, 0x76, 0xAF, 0xE9, 0xC3, 0x6B, 0x8E,
0xDA, 0xB0, 0x6E, 0xBF, 0x2B, 0xF1, 0x19, 0xB4,
0x95, 0x34, 0x48, 0xE4, 0x37, 0x94, 0x5D, 0x7B,
0x36, 0x5F, 0x65, 0x53, 0x07, 0xE2, 0x89, 0x11,
0x98, 0x85, 0xD9, 0x12, 0xC1, 0x9D, 0x84, 0xEC,
0xA4, 0xD4, 0x88, 0xB8, 0xFC, 0x2C, 0x79, 0x28,
0xD8, 0xDB, 0xB3, 0x1E, 0xA2, 0xF9, 0xD0, 0x44,
0xD7, 0xD6, 0x60, 0xEF, 0x14, 0xF4, 0xF6, 0x31,
0xD2, 0x41, 0x46, 0x67, 0x0A, 0xE1, 0x58, 0x27,
0x43, 0xA3, 0xF8, 0xE0, 0xC8, 0xBA, 0x5A, 0x5C,
0x80, 0x6C, 0xC6, 0xF2, 0xE8, 0xAD, 0x7D, 0x04,
0x0D, 0xB9, 0x3C, 0xC2, 0x25, 0xBD, 0x49, 0x63,
0x8C, 0x9F, 0x51, 0xCE, 0x20, 0xC5, 0xA1, 0x50,
0x92, 0x2D, 0xDD, 0xBC, 0x8D, 0x4F, 0x9A, 0x71,
0x2F, 0x30, 0x1D, 0x73, 0x39, 0x13, 0xFB, 0x1A,
0xCB, 0x24, 0x59, 0xFE, 0x05, 0x96, 0x57, 0x0F,
0x1F, 0xCF, 0x54, 0xBE, 0xF5, 0x06, 0x1B, 0xB2,
0x6D, 0xD3, 0x4D, 0x32, 0x56, 0x21, 0x33, 0x0B,
0x52, 0xE7, 0xAB, 0xEB, 0xA6, 0x74, 0x00, 0x4C,
0xB1, 0x7F, 0x82, 0x99, 0x87, 0x0E, 0x5E, 0xC0,
0x8F, 0xEE, 0x6F, 0x55, 0xF3, 0x7E, 0x08, 0x90,
0xFA, 0xB6, 0x64, 0x70, 0x47, 0x4A, 0x17, 0xA7,
0xB5, 0x40, 0x8A, 0x38, 0xE5, 0x68, 0x3E, 0x8B,
0x69, 0xAA, 0x9B, 0x42, 0xA5, 0x10, 0x01, 0x35,
0xFD, 0x61, 0x9E, 0xE6, 0x16, 0x9C, 0x86, 0xED,
0xCD, 0x2E, 0xFF, 0xC4, 0x5B, 0xA0, 0xAE, 0xCC,
0x4B, 0x3B, 0x03, 0xBB, 0x1C, 0x2A, 0xAC, 0x0C,
0x3F, 0x93, 0xC7, 0x72, 0x7A, 0x09, 0x22, 0x3D,
0x45, 0x78, 0xA9, 0xA8, 0xEA, 0xC9, 0x6A, 0xF7,
0x29, 0x91, 0xF0, 0x02, 0x18, 0x3A, 0x4E, 0x7C};
static byte Table3[] = {
0x73, 0x51, 0x95, 0xE1, 0x12, 0xE4, 0xC0, 0x58,
0xEE, 0xF2, 0x08, 0x1B, 0xA9, 0xFA, 0x98, 0x4C,
0xA7, 0x33, 0xE2, 0x1B, 0xA7, 0x6D, 0xF5, 0x30,
0x97, 0x1D, 0xF3, 0x02, 0x60, 0x5A, 0x82, 0x0F,
0x91, 0xD0, 0x9C, 0x10, 0x39, 0x7A, 0x83, 0x85,
0x3B, 0xB2, 0xB8, 0xAE, 0x0C, 0x09, 0x52, 0xEA,
0x1C, 0xE1, 0x8D, 0x66, 0x4F, 0xF3, 0xDA, 0x92,
0x29, 0xB9, 0xD5, 0xC5, 0x77, 0x47, 0x22, 0x53,
0x14, 0xF7, 0xAF, 0x22, 0x64, 0xDF, 0xC6, 0x72,
0x12, 0xF3, 0x75, 0xDA, 0xD7, 0xD7, 0xE5, 0x02,
0x9E, 0xED, 0xDA, 0xDB, 0x4C, 0x47, 0xCE, 0x91,
0x06, 0x06, 0x6D, 0x55, 0x8B, 0x19, 0xC9, 0xEF,
0x8C, 0x80, 0x1A, 0x0E, 0xEE, 0x4B, 0xAB, 0xF2,
0x08, 0x5C, 0xE9, 0x37, 0x26, 0x5E, 0x9A, 0x90,
0x00, 0xF3, 0x0D, 0xB2, 0xA6, 0xA3, 0xF7, 0x26,
0x17, 0x48, 0x88, 0xC9, 0x0E, 0x2C, 0xC9, 0x02,
0xE7, 0x18, 0x05, 0x4B, 0xF3, 0x39, 0xE1, 0x20,
0x02, 0x0D, 0x40, 0xC7, 0xCA, 0xB9, 0x48, 0x30,
0x57, 0x67, 0xCC, 0x06, 0xBF, 0xAC, 0x81, 0x08,
0x24, 0x7A, 0xD4, 0x8B, 0x19, 0x8E, 0xAC, 0xB4,
0x5A, 0x0F, 0x73, 0x13, 0xAC, 0x9E, 0xDA, 0xB6,
0xB8, 0x96, 0x5B, 0x60, 0x88, 0xE1, 0x81, 0x3F,
0x07, 0x86, 0x37, 0x2D, 0x79, 0x14, 0x52, 0xEA,
0x73, 0xDF, 0x3D, 0x09, 0xC8, 0x25, 0x48, 0xD8,
0x75, 0x60, 0x9A, 0x08, 0x27, 0x4A, 0x2C, 0xB9,
0xA8, 0x8B, 0x8A, 0x73, 0x62, 0x37, 0x16, 0x02,
0xBD, 0xC1, 0x0E, 0x56, 0x54, 0x3E, 0x14, 0x5F,
0x8C, 0x8F, 0x6E, 0x75, 0x1C, 0x07, 0x39, 0x7B,
0x4B, 0xDB, 0xD3, 0x4B, 0x1E, 0xC8, 0x7E, 0xFE,
0x3E, 0x72, 0x16, 0x83, 0x7D, 0xEE, 0xF5, 0xCA,
0xC5, 0x18, 0xF9, 0xD8, 0x68, 0xAB, 0x38, 0x85,
0xA8, 0xF0, 0xA1, 0x73, 0x9F, 0x5D, 0x19, 0x0B,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x33, 0x72, 0x39, 0x25, 0x67, 0x26, 0x6D, 0x71,
0x36, 0x77, 0x3C, 0x20, 0x62, 0x23, 0x68, 0x74,
0xC3, 0x82, 0xC9, 0x15, 0x57, 0x16, 0x5D, 0x81};
typedef unsigned char byte;
struct block {
byte b[5];
};
extern void CryptKey1(int varient, byte const *challenge, struct block *key);
extern void CryptKey2(int varient, byte const *challenge, struct block *key);
extern void CryptBusKey(int varient, byte const *challenge, struct block *key);
/*
* A noddy program for getting and printing some info from the
* DVD-ROM drive.
*/
#include
#include
#if defined(__OpenBSD__)
# include
#elif defined(__linux__)
# include
#else
# error "Need the DVD ioctls"
#endif
#include
#include
#define DVD "/dev/cdrom"
int GetASF(int fd)
{
dvd_authinfo ai;
ai.type = DVD_LU_SEND_ASF;
ai.lsasf.agid = 0;
ai.lsasf.asf = 0;
if (ioctl(fd, DVD_AUTH, &ai)) {
printf("GetASF failed\n");
return 0;
}
printf("%sAuthenticated\n", (ai.lsasf.asf) ? "" : "not ");
return 1;
}
int GetPhysical(int fd)
{
dvd_struct d;
int layer = 0, layers = 4;
d.physical.type = DVD_STRUCT_PHYSICAL;
while (layer 1)
device = av[1];
fd = open(device, O_RDONLY | O_NONBLOCK);
if (fd 0) {
printf("unable to open dvd drive (%s).\n", device);
return 1;
}
GetASF(fd);
GetPhysical(fd);
GetCopyright(fd);
return 0;
}
The movie industry is about to learn the following great truth:
You can't take something off of the Internet.
That's like trying to get pee out of a pool.
-from "News Radio"
/*
/* __linux__ */
/* DVD specific ? */ /* DVD specific ? */
* css-cat.c
*
* Copyright 1999 Derek Fawcus.
*
* Released under version 2 of the GPL.
*
* Decode selected sector types from a CSS encoded DVD to stdout. Use as a
* filter on the input to mpeg2player or ac3dec.
*
*/
#include
#include
#if defined(__linux__)
# include
#endif
#include
#include
#include
#include "css-descramble.h"
static struct playkey pkey1a1 = {0x36b, {0x51,0x67,0x67,0xc5,0xe0}};
static struct playkey pkey2a1 = {0x762, {0x2c,0xb2,0xc1,0x09,0xee}};
static struct playkey pkey1b1 = {0x36b, {0x90,0xc1,0xd7,0x84,0x48}};
static struct playkey pkey1a2 = {0x2f3, {0x51,0x67,0x67,0xc5,0xe0}};
static struct playkey pkey2a2 = {0x730, {0x2c,0xb2,0xc1,0x09,0xee}};
static struct playkey pkey1b2 = {0x2f3, {0x90,0xc1,0xd7,0x84,0x48}};
static struct playkey pkey1a3 = {0x235, {0x51,0x67,0x67,0xc5,0xe0}};
static struct playkey pkey1b3 = {0x235, {0x90,0xc1,0xd7,0x84,0x48}};
static struct playkey pkey3a1 = {0x249, {0xb7,0x3f,0xd4,0xaa,0x14}};
static struct playkey pkey4a1 = {0x028, {0x53,0xd4,0xf7,0xd9,0x8f}};
static struct playkey *playkeys[] = {
&pkey1a1, &pkey2a1, &pkey1b1,
&pkey1a2, &pkey2a2, &pkey1b2,
&pkey1a3, &pkey1b3,
&pkey3a1, &pkey4a1,
NULL};
static unsigned char disk_key[2048];
static unsigned char title_key[5];
static unsigned char sector[2048];
unsigned long sectors = 0;
unsigned long crypted = 0;
unsigned long skipped = 0;
int do_all = 0;
int do_video = 0;
int do_ac3 = 0;
int do_mpg = 0;
int verbose = 0;
int keep_pack = 0;
int keep_pes = -1;
#define STCODE(p,a,b,c,d) ((p)[0] == a && (p)[1] == b && (p)[2] == c && (p)[3] == d)
static void un_css(int fdi, int fdo)
{
unsigned char *sp, *pes;
int writen, wr, peslen, hdrlen;
while (read(fdi, sector, 2048) == 2048) {
++sectors;
if (!STCODE(sector,0x00,0x00,0x01,0xba)) {
fputs("Not Pack start code\n", stderr);
++skipped; continue;
}
if (do_all)
goto write_it;
pes = sector + 14 + (sector[13] & 0x07);
if (STCODE(pes,0x00,0x00,0x01,0xbb)) {/* System Header Pack Layer */
peslen = (pes[0x04] 0 && writen 32)
usage_exit();
++keep_pes;
break;
case '1': case '2': case '3': case '4':
case '5': case '6': case '7': case '8':
do_ac3 = c - '0';
++keep_pes;
break;
case EOF:
goto got_args;
default:
usage_exit();
break;
}
got_args:
keep_pes = (keep_pes > 0) ? 1 : 0;
return optind;
}
int main(int ac, char **av)
{
int ai, fd;
char titlef[12];
if ((fd = open("disk-key", O_RDONLY)) == -1) {
perror("can't open disk-key");
exit(1);
}
if (read(fd, disk_key, 2048) != 2048) {
perror("can't read disk-key");
close(fd);
exit(1);
}
close(fd);
if ((ai = parse_args(ac, av)) >= ac)
usage_exit();
strcpy(titlef, "title");
strcat(titlef, title);
strcat(titlef, "-key");
if ((fd = open(titlef, O_RDONLY)) == -1) {
perror("can't open title-key");
exit(1);
}
if (read(fd, title_key, 5) != 5) {
perror("can't read title-key");
close(fd);
exit(1);
}
close(fd);
if (strcmp(av[ai], "-") == 0)
fd = 0;
else if ((fd = open(av[ai], O_RDONLY)) == -1) {
fputs("can't open VOB file ", stderr);
fputs(av[ai], stderr);
perror("");
exit(1);
}
if (!css_decrypttitlekey(title_key, disk_key, playkeys)) {
close(fd);
return 3;
}
un_css(fd, 1);
fprintf(stderr, "Total %lu, skipped %lu, crvid %lu\n",
sectors, skipped, crypted);
close(fd);
return 0;
}
You can put a movie on DVD *without* encrypting it or putting on region encoding or macrovision. This means no key is needed and anyone with access to a DVD-R and some MPEG2 encoding equipment/software can make their own movies that can be played back on any player. In fact, there are a few commercial movies that are not encrypted.
/*
* A noddy program which tries to reset all AGID's on the DVD-ROM drive.
*/
#include
#include
#if defined(__OpenBSD__)
# include
#elif defined(__linux__)
# include
#else
# error "Need the DVD ioctls"
#endif
#include
#include
static int fd;
#define DVD "/dev/cdrom"
int main(int ac, char **av)
{
dvd_authinfo ai;
char *device = DVD;
int i;
if (ac > 1)
device = av[1];
fd = open(device, O_RDONLY | O_NONBLOCK);
if (fd 0) {
printf("unable to open dvd drive (%s).\n", device);
return 1;
}
for (i = 0; i 4; i++) {
memset(&ai, 0, sizeof(ai));
ai.type = DVD_INVALIDATE_AGID;
ai.lsa.agid = i;
ioctl(fd, DVD_AUTH, &ai);
}
return 0;
}
/*
/* Host data receive (host changes state) */
/* Host data send */
/* Returning data, let LU change state */
/* Returning data, let LU change state */
/* Init sequence, request AGID */
* tstdvd.c
*
* Example program showing usage of DVD CSS ioctls
*
* Copyright (C) 1999 Andrew T. Veliath
* See http://www.rpi.edu/~veliaa/linux-dvd for more info.
*/
/* Hacked about by Derek Fawcus such that
* it can be used as a simple program to authenticate the
* computer with the DVD-ROM drive.
*
* If supplied with one parameter it gets the disk key and
* saves it to a file. If supplied with a second parameter
* (a LBA) then it gets the title key for the supplied LBA.
*
* When getting the disk key, only the first 10 bytes of it
* are printed. The whole key is written to the file.
*/
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#if defined(__OpenBSD__)
# include
#elif defined(__linux__)
# include
#else
# error "Need the DVD ioctls"
#endif
#include "css-auth.h"
byte Challenge[10];
struct block Key1;
struct block Key2;
struct block KeyCheck;
byte DiscKey[10];
int varient = -1;
void print_challenge(const byte *chal)
{
int i;
for (i = 0; i type) {
case DVD_LU_SEND_AGID:
printf("AGID %d\n", ai->lsa.agid);
ai->type = DVD_HOST_SEND_CHALLENGE;
break;
case DVD_LU_SEND_KEY1:
printf("LU sent key1: "); print_key(ai->lsk.key); printf("\n");
if (!authenticate_drive(ai->lsk.key)) {
ai->type = DVD_AUTH_FAILURE;
return -EINVAL;
}
ai->type = DVD_LU_SEND_CHALLENGE;
break;
case DVD_LU_SEND_CHALLENGE:
for (i = 0; i hsc.chal[9-i];
printf("LU sent challenge: "); print_challenge(Challenge); printf("\n");
CryptKey2(varient, Challenge, &Key2);
ai->type = DVD_HOST_SEND_KEY2;
break;
case DVD_HOST_SEND_CHALLENGE:
for (i = 0; i hsc.chal[9-i] = Challenge[i];
printf("Host sending challenge: "); print_challenge(Challenge); printf("\n");
break;
case DVD_HOST_SEND_KEY2:
for (i = 0; i hsk.key[4-i] = Key2.b[i];
printf("Host sending key 2: "); print_key(Key2.b); printf("\n");
break;
default:
printf("Got invalid state %d\n", ai->type);
return -EINVAL;
}
return 0;
}
int authenticate(int fd, int title, int lba)
{
dvd_authinfo ai;
dvd_struct dvds;
int i, rv, tries, agid;
memset(&ai, 0, sizeof (ai));
memset(&dvds, 0, sizeof (dvds));
GetASF(fd);
for (tries = 1, rv = -1; rv == -1 && tries [title_path]\n");
exit (1);
}
device = av[1];
fd = open(device, O_RDONLY | O_NONBLOCK);
if (fd 0) {
perror(device);
exit(1);
}
if (ac == 3) {
lba = path_to_lba(av[2]);
title = 1;
}
authenticate(fd, title, lba);
close(fd);
return 0;
}
/*
, 0x36,0x2b,0x6e,0x2e,0x66,0x7b, , 0xd6,0x0b,0x4e,0x0e,0x46,0x9b, , 0x52,0x8f,0xca,0x8a,0xc2,0x1f, , 0xd0,0x01,0x48,0x08,0x40,0x91, , 0x34,0x25,0x6c,0x2c,0x64,0x75, , 0xd4,0x05,0x4c,0x0c,0x44,0x95, , 0x50,0x81,0xc8,0x88,0xc0,0x11, , 0xd2,0x0f,0x4a,0x0a,0x42,0x9f, , 0x56,0x8b,0xce,0x8e,0xc6,0x1b, , 0xb6,0xab,0xee,0xae,0xe6,0xfb, , 0x32,0x2f,0x6a,0x2a,0x62,0x7f, , 0xb0,0xa1,0xe8,0xa8,0xe0,0xf1, , 0x54,0x85,0xcc,0x8c,0xc4,0x15, , 0xb4,0xa5,0xec,0xac,0xe4,0xf5, , 0x30,0x21,0x68,0x28,0x60,0x71, , 0xb2,0xaf,0xea,0xaa,0xe2,0xff
, 0x0b,0x0a,0x0d,0x0c,0x0f,0x0e, , 0x19,0x18,0x1f,0x1e,0x1d,0x1c, , 0x2f,0x2e,0x29,0x28,0x2b,0x2a, , 0x3d,0x3c,0x3b,0x3a,0x39,0x38, , 0x42,0x43,0x44,0x45,0x46,0x47, , 0x50,0x51,0x56,0x57,0x54,0x55, , 0x66,0x67,0x60,0x61,0x62,0x63, , 0x74,0x75,0x72,0x73,0x70,0x71, , 0x99,0x98,0x9f,0x9e,0x9d,0x9c, , 0x8b,0x8a,0x8d,0x8c,0x8f,0x8e, , 0xbd,0xbc,0xbb,0xba,0xb9,0xb8, , 0xaf,0xae,0xa9,0xa8,0xab,0xaa, , 0xd0,0xd1,0xd6,0xd7,0xd4,0xd5, , 0xc2,0xc3,0xc4,0xc5,0xc6,0xc7, , 0xf4,0xf5,0xf2,0xf3,0xf0,0xf1, , 0xe6,0xe7,0xe0,0xe1,0xe2,0xe3
, 0x49,0x6d,0x92,0xb6,0xdb,0xff, , 0x49,0x6d,0x92,0xb6,0xdb,0xff, , 0x49,0x6d,0x92,0xb6,0xdb,0xff, , 0x49,0x6d,0x92,0xb6,0xdb,0xff, , 0x49,0x6d,0x92,0xb6,0xdb,0xff, , 0x49,0x6d,0x92,0xb6,0xdb,0xff, , 0x49,0x6d,0x92,0xb6,0xdb,0xff, , 0x49,0x6d,0x92,0xb6,0xdb,0xff, , 0x49,0x6d,0x92,0xb6,0xdb,0xff, , 0x49,0x6d,0x92,0xb6,0xdb,0xff, , 0x49,0x6d,0x92,0xb6,0xdb,0xff, , 0x49,0x6d,0x92,0xb6,0xdb,0xff, , 0x49,0x6d,0x92,0xb6,0xdb,0xff, , 0x49,0x6d,0x92,0xb6,0xdb,0xff, , 0x49,0x6d,0x92,0xb6,0xdb,0xff, , 0x49,0x6d,0x92,0xb6,0xdb,0xff, , 0x49,0x6d,0x92,0xb6,0xdb,0xff, , 0x49,0x6d,0x92,0xb6,0xdb,0xff, , 0x49,0x6d,0x92,0xb6,0xdb,0xff, , 0x49,0x6d,0x92,0xb6,0xdb,0xff, , 0x49,0x6d,0x92,0xb6,0xdb,0xff, , 0x49,0x6d,0x92,0xb6,0xdb,0xff, , 0x49,0x6d,0x92,0xb6,0xdb,0xff, , 0x49,0x6d,0x92,0xb6,0xdb,0xff, , 0x49,0x6d,0x92,0xb6,0xdb,0xff, , 0x49,0x6d,0x92,0xb6,0xdb,0xff, , 0x49,0x6d,0x92,0xb6,0xdb,0xff, , 0x49,0x6d,0x92,0xb6,0xdb,0xff, , 0x49,0x6d,0x92,0xb6,0xdb,0xff, , 0x49,0x6d,0x92,0xb6,0xdb,0xff, , 0x49,0x6d,0x92,0xb6,0xdb,0xff, , 0x49,0x6d,0x92,0xb6,0xdb,0xff
, 0x50,0xd0,0x30,0xb0,0x70,0xf0, , 0x58,0xd8,0x38,0xb8,0x78,0xf8, , 0x54,0xd4,0x34,0xb4,0x74,0xf4, , 0x5c,0xdc,0x3c,0xbc,0x7c,0xfc, , 0x52,0xd2,0x32,0xb2,0x72,0xf2, , 0x5a,0xda,0x3a,0xba,0x7a,0xfa, , 0x56,0xd6,0x36,0xb6,0x76,0xf6, , 0x5e,0xde,0x3e,0xbe,0x7e,0xfe, , 0x51,0xd1,0x31,0xb1,0x71,0xf1, , 0x59,0xd9,0x39,0xb9,0x79,0xf9, , 0x55,0xd5,0x35,0xb5,0x75,0xf5, , 0x5d,0xdd,0x3d,0xbd,0x7d,0xfd, , 0x53,0xd3,0x33,0xb3,0x73,0xf3, , 0x5b,0xdb,0x3b,0xbb,0x7b,0xfb, , 0x57,0xd7,0x37,0xb7,0x77,0xf7, , 0x5f,0xdf,0x3f,0xbf,0x7f,0xff
1 9);*/ ;
1 9);*/ ;
* css_descramble.c
*
* Released under the version 2 of the GPL.
*
* Copyright 1999 Derek Fawcus
*
* This file contains functions to descramble CSS encrypted DVD content
*
*/
/*
* Still in progress: Remove the use of the bit_reverse[] table by recoding
* the generation of LFSR1. Finish combining this with
* the css authentication code.
*
*/
#include
#include
#include "css-descramble.h"
typedef unsigned char byte;
/*
*
* some tables used for descrambling sectors and/or decrypting title keys
*
*/
static byte csstab1[256]=
{
0x33,0x73,0x3b,0x26,0x63,0x23,0x6b,0x76,0x3e,0x7e
0xd3,0x93,0xdb,0x06,0x43,0x03,0x4b,0x96,0xde,0x9e
0x57,0x17,0x5f,0x82,0xc7,0x87,0xcf,0x12,0x5a,0x1a
0xd9,0x99,0xd1,0x00,0x49,0x09,0x41,0x90,0xd8,0x98
0x3d,0x7d,0x35,0x24,0x6d,0x2d,0x65,0x74,0x3c,0x7c
0xdd,0x9d,0xd5,0x04,0x4d,0x0d,0x45,0x94,0xdc,0x9c
0x59,0x19,0x51,0x80,0xc9,0x89,0xc1,0x10,0x58,0x18
0xd7,0x97,0xdf,0x02,0x47,0x07,0x4f,0x92,0xda,0x9a
0x53,0x13,0x5b,0x86,0xc3,0x83,0xcb,0x16,0x5e,0x1e
0xb3,0xf3,0xbb,0xa6,0xe3,0xa3,0xeb,0xf6,0xbe,0xfe
0x37,0x77,0x3f,0x22,0x67,0x27,0x6f,0x72,0x3a,0x7a
0xb9,0xf9,0xb1,0xa0,0xe9,0xa9,0xe1,0xf0,0xb8,0xf8
0x5d,0x1d,0x55,0x84,0xcd,0x8d,0xc5,0x14,0x5c,0x1c
0xbd,0xfd,0xb5,0xa4,0xed,0xad,0xe5,0xf4,0xbc,0xfc
0x39,0x79,0x31,0x20,0x69,0x29,0x61,0x70,0x38,0x78
0xb7,0xf7,0xbf,0xa2,0xe7,0xa7,0xef,0xf2,0xba,0xfa
};
static byte lfsr1_bits0[256]=
{
0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x09,0x08
0x12,0x13,0x10,0x11,0x16,0x17,0x14,0x15,0x1b,0x1a
0x24,0x25,0x26,0x27,0x20,0x21,0x22,0x23,0x2d,0x2c
0x36,0x37,0x34,0x35,0x32,0x33,0x30,0x31,0x3f,0x3e
0x49,0x48,0x4b,0x4a,0x4d,0x4c,0x4f,0x4e,0x40,0x41
0x5b,0x5a,0x59,0x58,0x5f,0x5e,0x5d,0x5c,0x52,0x53
0x6d,0x6c,0x6f,0x6e,0x69,0x68,0x6b,0x6a,0x64,0x65
0x7f,0x7e,0x7d,0x7c,0x7b,0x7a,0x79,0x78,0x76,0x77
0x92,0x93,0x90,0x91,0x96,0x97,0x94,0x95,0x9b,0x9a
0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x89,0x88
0xb6,0xb7,0xb4,0xb5,0xb2,0xb3,0xb0,0xb1,0xbf,0xbe
0xa4,0xa5,0xa6,0xa7,0xa0,0xa1,0xa2,0xa3,0xad,0xac
0xdb,0xda,0xd9,0xd8,0xdf,0xde,0xdd,0xdc,0xd2,0xd3
0xc9,0xc8,0xcb,0xca,0xcd,0xcc,0xcf,0xce,0xc0,0xc1
0xff,0xfe,0xfd,0xfc,0xfb,0xfa,0xf9,0xf8,0xf6,0xf7
0xed,0xec,0xef,0xee,0xe9,0xe8,0xeb,0xea,0xe4,0xe5
};
static byte lfsr1_bits1[512]=
{
0x00,0x24,0x49,0x6d,0x92,0xb6,0xdb,0xff,0x00,0x24
0x00,0x24,0x49,0x6d,0x92,0xb6,0xdb,0xff,0x00,0x24
0x00,0x24,0x49,0x6d,0x92,0xb6,0xdb,0xff,0x00,0x24
0x00,0x24,0x49,0x6d,0x92,0xb6,0xdb,0xff,0x00,0x24
0x00,0x24,0x49,0x6d,0x92,0xb6,0xdb,0xff,0x00,0x24
0x00,0x24,0x49,0x6d,0x92,0xb6,0xdb,0xff,0x00,0x24
0x00,0x24,0x49,0x6d,0x92,0xb6,0xdb,0xff,0x00,0x24
0x00,0x24,0x49,0x6d,0x92,0xb6,0xdb,0xff,0x00,0x24
0x00,0x24,0x49,0x6d,0x92,0xb6,0xdb,0xff,0x00,0x24
0x00,0x24,0x49,0x6d,0x92,0xb6,0xdb,0xff,0x00,0x24
0x00,0x24,0x49,0x6d,0x92,0xb6,0xdb,0xff,0x00,0x24
0x00,0x24,0x49,0x6d,0x92,0xb6,0xdb,0xff,0x00,0x24
0x00,0x24,0x49,0x6d,0x92,0xb6,0xdb,0xff,0x00,0x24
0x00,0x24,0x49,0x6d,0x92,0xb6,0xdb,0xff,0x00,0x24
0x00,0x24,0x49,0x6d,0x92,0xb6,0xdb,0xff,0x00,0x24
0x00,0x24,0x49,0x6d,0x92,0xb6,0xdb,0xff,0x00,0x24
0x00,0x24,0x49,0x6d,0x92,0xb6,0xdb,0xff,0x00,0x24
0x00,0x24,0x49,0x6d,0x92,0xb6,0xdb,0xff,0x00,0x24
0x00,0x24,0x49,0x6d,0x92,0xb6,0xdb,0xff,0x00,0x24
0x00,0x24,0x49,0x6d,0x92,0xb6,0xdb,0xff,0x00,0x24
0x00,0x24,0x49,0x6d,0x92,0xb6,0xdb,0xff,0x00,0x24
0x00,0x24,0x49,0x6d,0x92,0xb6,0xdb,0xff,0x00,0x24
0x00,0x24,0x49,0x6d,0x92,0xb6,0xdb,0xff,0x00,0x24
0x00,0x24,0x49,0x6d,0x92,0xb6,0xdb,0xff,0x00,0x24
0x00,0x24,0x49,0x6d,0x92,0xb6,0xdb,0xff,0x00,0x24
0x00,0x24,0x49,0x6d,0x92,0xb6,0xdb,0xff,0x00,0x24
0x00,0x24,0x49,0x6d,0x92,0xb6,0xdb,0xff,0x00,0x24
0x00,0x24,0x49,0x6d,0x92,0xb6,0xdb,0xff,0x00,0x24
0x00,0x24,0x49,0x6d,0x92,0xb6,0xdb,0xff,0x00,0x24
0x00,0x24,0x49,0x6d,0x92,0xb6,0xdb,0xff,0x00,0x24
0x00,0x24,0x49,0x6d,0x92,0xb6,0xdb,0xff,0x00,0x24
0x00,0x24,0x49,0x6d,0x92,0xb6,0xdb,0xff,0x00,0x24
};
/* Reverse the order of the bits within a byte.
*/
static byte bit_reverse[256]=
{
0x00,0x80,0x40,0xc0,0x20,0xa0,0x60,0xe0,0x10,0x90
0x08,0x88,0x48,0xc8,0x28,0xa8,0x68,0xe8,0x18,0x98
0x04,0x84,0x44,0xc4,0x24,0xa4,0x64,0xe4,0x14,0x94
0x0c,0x8c,0x4c,0xcc,0x2c,0xac,0x6c,0xec,0x1c,0x9c
0x02,0x82,0x42,0xc2,0x22,0xa2,0x62,0xe2,0x12,0x92
0x0a,0x8a,0x4a,0xca,0x2a,0xaa,0x6a,0xea,0x1a,0x9a
0x06,0x86,0x46,0xc6,0x26,0xa6,0x66,0xe6,0x16,0x96
0x0e,0x8e,0x4e,0xce,0x2e,0xae,0x6e,0xee,0x1e,0x9e
0x01,0x81,0x41,0xc1,0x21,0xa1,0x61,0xe1,0x11,0x91
0x09,0x89,0x49,0xc9,0x29,0xa9,0x69,0xe9,0x19,0x99
0x05,0x85,0x45,0xc5,0x25,0xa5,0x65,0xe5,0x15,0x95
0x0d,0x8d,0x4d,0xcd,0x2d,0xad,0x6d,0xed,0x1d,0x9d
0x03,0x83,0x43,0xc3,0x23,0xa3,0x63,0xe3,0x13,0x93
0x0b,0x8b,0x4b,0xcb,0x2b,0xab,0x6b,0xeb,0x1b,0x9b
0x07,0x87,0x47,0xc7,0x27,0xa7,0x67,0xe7,0x17,0x97
0x0f,0x8f,0x4f,0xcf,0x2f,0xaf,0x6f,0xef,0x1f,0x9f
};
/*
*
* this function is only used internally when decrypting title key
*
*/
static void css_titlekey(byte *key, byte *im, byte invert)
{
unsigned int lfsr1_lo,lfsr1_hi,lfsr0,combined;
byte o_lfsr0, o_lfsr1;
byte k[5];
int i;
lfsr1_lo = im[0] | 0x100;
lfsr1_hi = im[1];
lfsr0 = ((im[4] >8)&0xff] >16)&0xff]>24)&0xff];
combined = 0;
for (i = 0; i >1;
lfsr1_lo = ((lfsr1_lo&1)>7)^(lfsr0>>10)^(lfsr0>>11)^(lfsr0>>
o_lfsr0 = (((((((lfsr0>>8)^lfsr0)>>1)^lfsr0)>>3)^lfsr0)>>7)
lfsr0 = (lfsr0>>8)|(o_lfsr0>= 8;
}
key[4]=k[4]^csstab1[key[4]]^key[3];
key[3]=k[3]^csstab1[key[3]]^key[2];
key[2]=k[2]^csstab1[key[2]]^key[1];
key[1]=k[1]^csstab1[key[1]]^key[0];
key[0]=k[0]^csstab1[key[0]]^key[4];
key[4]=k[4]^csstab1[key[4]]^key[3];
key[3]=k[3]^csstab1[key[3]]^key[2];
key[2]=k[2]^csstab1[key[2]]^key[1];
key[1]=k[1]^csstab1[key[1]]^key[0];
key[0]=k[0]^csstab1[key[0]];
}
/*
*
* this function decrypts a title key with the specified disk key
*
* tkey: the unobfuscated title key (XORed with BusKey)
* dkey: the unobfuscated disk key (XORed with BusKey)
* 2048 bytes in length (though only 5 bytes are needed, see below)
* pkey: array of pointers to player keys and disk key offsets
*
*
* use the result returned in tkey with css_descramble
*
*/
int css_decrypttitlekey(byte *tkey, byte *dkey, struct playkey **pkey)
{
byte test[5], pretkey[5];
int i = 0;
for (; *pkey; ++pkey, ++i) {
memcpy(pretkey, dkey + (*pkey)->offset, 5);
css_titlekey(pretkey, (*pkey)->key, 0);
memcpy(test, dkey, 5);
css_titlekey(test, pretkey, 0);
if (memcmp(test, pretkey, 5) == 0) {
fprintf(stderr, "Using Key %d\n", i+1);
break;
}
}
if (!*pkey) {
fprintf(stderr, "Shit - Need Key %d\n", i+1);
return 0;
}
css_titlekey(tkey, pretkey, 0xff);
return 1;
}
/*
*
* this function does the actual descrambling
*
* sec: encrypted sector (2048 bytes)
* key: decrypted title key obtained from css_decrypttitlekey
*
*/
void css_descramble(byte *sec,byte *key)
{
unsigned int lfsr1_lo,lfsr1_hi,lfsr0,combined;
unsigned char o_lfsr0, o_lfsr1;
unsigned char *end = sec + 0x800;
#define SALTED(i) (key[i] ^ sec[0x54 + (i)])
lfsr1_lo = SALTED(0) | 0x100;
lfsr1_hi = SALTED(1);
lfsr0 = ((SALTED(4) >8)&0xff] >16)&0xff]>24)&0xff];
sec+=0x80;
combined = 0;
while (sec != end) {
o_lfsr1 = lfsr1_bits0[lfsr1_hi] ^ lfsr1_bits1[lfsr1_lo];
lfsr1_hi = lfsr1_lo>>1;
lfsr1_lo = ((lfsr1_lo&1)>7)^(lfsr0>>10)^(lfsr0>>11)^(lfsr0>>
o_lfsr0 = (((((((lfsr0>>8)^lfsr0)>>1)^lfsr0)>>3)^lfsr0)>>7)
lfsr0 = (lfsr0>>8)|(o_lfsr0>= 8;
}
}
#ifndef __css_descramble_h_
#define __css_descramble_h_
struct playkey {
int offset;
unsigned char key[5];
};
extern int css_decrypttitlekey(unsigned char *tkey, unsigned char *dkey, struct playkey **pkey);
extern void css_descramble(unsigned char *sec,unsigned char *key);
#endif
headers = css-auth.h
..;tar cvf css-auth.tar $(dist-files) )
tstdvd_objs = tstdvd.o css-auth.o
validate_objs = validate.o css-auth.o
cat_objs = css-cat.o css-descramble.o
all: tstdvd reset dvdinfo css-cat
tstdvd: $(tstdvd_objs) $(headers)
gcc $(tstdvd_objs) -o $@
css-cat: $(cat_objs) css-descramble.h
gcc $(cat_objs) -o $@
validate: $(validate_objs) $(headers)
gcc $(validate_objs) -o $@
clean:
-rm -f *.o tstdvd validate reset dvdinfo
dist-files = css-auth/COPYING css-auth/README css-auth/Makefile \
css-auth/css-auth.h css-auth/css-auth.c \
css-auth/tstdvd.c css-auth/dvdinfo.c css-auth/reset.c \
css-auth/css-cat.c css-auth/css-descramble.c \
css-auth/css-descramble.h
dist:
(cd
This source package does two things.
/path/to/dvd/device
/path/to/dvd/device
/path/to/dvd/device /mount/path/video_ts/vts_01_1.vob
/path/to/dvd/device
/dvd/video_ts/vts_01_[1-9].vob|css-cat -v1P -|mpeg2player -vob -f -
.key in the sources to .key1/.key2
a) It contains code to perform the css authentication protocol,
allowing locked sectors on the DVD disc to be accessed.
This also allows us to read the disc key and title keys.
b) It contains an implementation of the css decryption algorithm,
so that we can watch DVD's.
Also included are some test programs to wrarp around the above code
blocks so that something usefule can be performed.
The programs included are tstdvd, reset, dvdinfo and css-cat.
tstdvd can be used to unlock the disc (saving the disk key) and
to extract the title keys. usage is:
reset
This will reset all AGIDs that the drive has given out. This
can sometimes be useful when something goes wrong.
tstdvd
This will authenticate the device and save the disk key into
a file in the current directory called "disk-key".
(mount the dvd somewhere)
tstdvd
This will reauthenticate and then read the title key for
the chosen vob file, saving it in a file in the current
directoy called "title-key".
Do the above title key extraction for each title on the disc,
renaming the title-key files to title1-key, title2-key etc.
dvdinfo
Displays some info from the physical and copyright pages. This
includes the region limits on the disc, its encryption status,
and the authentication status.
css-cat [-t title-no] [-m mpeg-audio-no ] [-vPpm12345678] vob_file
This will decrypt the selected vob file and send to stdout. It
needs the files "disk-key" and "titleX-key" to be in the current
directory. The default title-no is one, so by default it will look
for "title1-key".
The options select what will be sent to stdout. By default, nothing
will. The m option is not yet coded, the v option selects video, the
numbers select the appropriate AC3 stream.
It will normally extract the selected stream from the enclosing
Program stream, thus giving an elemental stream. However if the K option
(or more than one stream) is selected then the data will be left inside
the PES packets, allowing a subsequent demux program to determine the
data type.
I tend to use:
cat
NOTE: To use the above you need to have a kernel which incorporates the
DVD ioctls. This can either be the original patch by Andrew Veliath
or Jens Axboe's patches. If using Andrews versio of the patches,
you'll have to change the use of
(the places are quite easy to find).
Jens site is www.kernel.dk
Changes:
Patches have been applied to use the OpenBSD headers, so maybe it'll
work.
There a some more keys included. It should now be able to decrypt
all titles currently on the market. I think the last two keys can
be removed. Someone with 'The Matrix' please test and get back to
me.
Mpeg audio streams should now be extractable when filtering, this is
untested.
It now copes with System headers in the Pack layer (those 0x000001bb
start codes).
The command line options have changed between the last version and
this one - pay attention.
DF 1999/11/05
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Library General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.
You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.
5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.
10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
Copyright (C) 19yy
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) 19yy name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.
, 1 April 1989
Ty Coon, President of Vice
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Library General
Public License instead of this License.
I understand fair use as something of an exception to copyright law, ALLOWING the users to make backup copies, media transfers and use short segments in reviews / parodies / etc.
It is not guaranteed, and companies are not required to make copying easy. In many cases, defeating copy protections to make backup copies / personal transfers is legal. The defeating part is possibly always legal for your own equipment and as long as you don't distribute copies.
I am not a lawyer, so don't take my word too heavily.
Your little boycott is interesting. I suppose no one has to watch Hollywood trash. Good stuff does come through occassionally, but then it gets plaigurized to heck.
css-auth (for Linux): http://users.drak.net/bemann/software/css/css-auth .tar.gz DeCSS (for Win32): http://users.drak.net/bemann/software/css/DeCSS.zi p
Say I buy a CD. Now, if I don't have a CD player, I can have a friend record the CD onto a cassette tape which I have a player for. This would be considered fair use. Now, if I buy a DVD, they are trying to say that I can't convert it into a format that I can use on my Linux machine. That would be considered BS.
It's not enough to bash in heads, you've got to bash in minds. - Captain Hammer
You're still wrong about this one.
Even with CSS in place pirates can do bit-for-bit copies of the DVD. The only thing that is affected by breaking CSS is that pirates will be able to remove the region code so that they can get American movies early in HK and other places.
Scuttlemonkey is a troll
First problem with this is, there's a difference between their work (which is already in the PD) and someone's recording of their work. You're proposing to make the latter forbidden to sell, as I understand it. This would remove the primary source of income that struggling young classical musicians have - potential record contracts. As it is now, they're already struggling for it. If you're not Luciano Pavarotti or Yitzhak Perlman, you don't generally get picked up. This, in turn, appears to be a partial cause of a waning interest in orchestras and the like - after all, would you go to see someone that you've never heard of?
Yes, it's clear that the music "industry" - and not just the record execs - need to do some adapting. But with music, like with code, free.open != free.beer; you're proposing the latter, which would put a lot of people out of a job.
Sig broken, watch for
Hahaha, nice one! :-)
"The question of whether machines can think is no more interesting than [] whether submarines can swim" - Dijkstra
Why is it legal to copy rip sell software to copy AUDIO CDS, yet DVds are such a NONO!?!?!?
Double standards, MPPA = NAZI Fuckers!
The file isn't on download.com anymore so it looks like they got one of those stupid letters. Oh well, I am more interested in the css-auth.tar.gz file anyway and that is still mirrored all over. I wonder if that one will show up in Freshmeat or Linuxberg eventually.
Like inthe movie FightClub, perhaps the targeted buildings should have been lawyers and holywood, not credit card companies.
What a good movie btw too, so anti holywood too.
One thing people haven't mentioned is the fact that now .vob files can be played on computers without any DVD drives at all. My freind ripped the Matrix a few days ago and sent it to me overnight. Now I can watch the DVD without even buying a drive, let alone the actual disk. I just don't see how copyrights can hold out against this kind of thing.
I don't think it should be any different under the law, but the motion picture industry seems to have more money and lawyers than the music industry. Plus, the whole reason they decided to go with the DVD standard was because it was "secure", or so they thought. So now they've got their panites in a bunch..
Professional DVD duplication systems don't work like a DVD-RAM drive. Instead, you first make a glass master. This is a reverse image of the DVD etched onto glass. You need a seperate glass for each layer/side. (A single-sided DVD would have one glass, a double-layered DVD would have two glasses, and a double-layered double-sided would have four glasses.) These are used in a press mold for the plastic which makes up the DVD. Each plastic layer is then evaporation coated on one side with a thin metal layer to make it reflective, and chemically bonded to the other layers/sides for each disk.
Or rather, has taken down their link to it. The Download Dispatch newsletter stated that Download.com had been contacted by the MPAA and informed that it was illegal to post deCSS and download.com's lawyers concured that it must be taken down.
This brings up a couple of issues. Is deCSS really illegal and, maybe more importantly, is it illegal to link to illegal data on another server?
Download.com does not have it on their site anymore. Anyone else have it?