Watching DVDs in Linux HOWTO
IceFox writes "Last week CSS Disk encryption was cracked. Soon after the data encryption was cracked. With some hagling I got everything working and was able to watch DVDs in Linux. Sound, Video, the works. I wrote up a how to for anyone else that cares to do it." Its not quite ready for prime time. No sound and vid at the same time. Update by roblimo: Jens Axboe sent a link to his page, which contains additional Linux/DVD info.
But we aren't talking about theft, we are talking about duplication.
Hamsters are at least as feathery as penguins. HamLix
I haven't read the whole thread yet, but I think everyone here is missing what DVD encrytion is all about. IIRC the movie studio's don't give a damn whether you copy thier product or not. The idea behind encrypting the data is so that you can't make an exact duplicate of the movie. You can copy the thing as much as you want. The movie producers problem is that with the ability to digitally copy almost anything there is no degradation, a 20th generation copy is just as good as the 1st generation copy. With DVD we now have the ability to have almost the same experience at home as we do in the theater. This is not a copy protection issue, but rather a picture quality issue. If anyone has read the copyright notice at the start of the movie,instead of fast forwarding through it, you'll note that you can copy the movie for your own usage as much as you want, as long as it is not for financial gain.
So just to state the obvious, copy to your hearts content, just don't expect the same quality as the origional
I'm not saying this is necessarily the reason, but in 1948, making a copy of a book was expensive. In order for a publisher to publish his book, he would either had to have footed the bill himself (probably not something he was willing to do) or give them exclusive rights to it, so that they felt they had a reasonable chance of making a profit off of it. So distributing it freely would have, in essence, meant not distributing at all. Back then most people probably never even considered not getting their work published if they wanted people to read it.
Today, an author who is not interested in making money off his work can just put it up on a web page, and let people read it for free. Of course, this make it inaccessible to those who don't use the net, and it is also harder to get people to notice it. The average bookstore probably has only a few thousand titles, often organised in sections, whereas there are hundreds of millions of web pages, and they're almost completely unorganised.
However, this is so far the industry's best effort at a universal copy-resistant format; as the tide turns our way, it might hopefully be their last.
Some companies (seemingly led by Sony) have come up with an even more evil scheme called DTCP. In DTCP, each box has its own key (and for software, presumably each computer might get its own key), and The Bad Guys(tm) circulate a blacklist of keys that have been compromised. If a blacklisted system tries to talk to another system, it will be denied. This means they can lock out VCRs and individual copies of the software remotely.
A) Get your widgets! $20
B) $2
A) $20.
B) $10.
A) $20.
B) Forget it, I have options. I'll not listen to it or I'll go copy it. At least when I copy it, I do get to know the artist and if I really enjoy it will likely subsequently buy further articles, and I get the enjoyment of actually getting the entertainment. Both sides benefit, to a certain degree. Not monetarily, perhaps. But money isn't everything.
And you're quite correct about the voluntary payment. That model has been proven to hardly ever work, but then, one might argue that it's never been implemented properly, either. :)
Software decoding is fine and dandy as long as you only want to watch movies on your monitor. I still haven't seen a video card with TV-out that matches the output quality of a hardware decoder.
"When I go to the theatre, I want to pay money to be entertained."
That's really beside the point. You are being offered a license to view a movie for a price. Entertainment isn't guaranteed. If that is too risky a proposition, you need not pay. You may find alternative entertainment. If you view the movie without paying, you have comitted theft, have you not?
I've got a "real" player hooked up to my entertainment system.
;).
No point in buying a DVD unless you're going to watch it properly, not on some dinky 15" monitor with crappy PC speakers
(yes, I know some people have ungodly sized monitors, and a rarer few have a good quality sound system hooked up to their puter...).
I'm talking about theft - you're talking about duplication. I say that's the same thing - you say it isn't.
I don't agree on this matter, I tried several software decoders and I was very impressed about the Cinematics 99 engine. I was able to get a very crisp and clear and vibrant video play with it on my old Intel 740 and OC-ed Celeron 450(they use some kind of techniek to put a quadrupple buffer into your video memory), not really highend hardware these days and I think under Linux it could even be done better... eg. WinDVD says, they are only a small team of young coders, so that's the only ingredient you'll need...
No alternative to movies? Are you that devoid of imagination? If you don't like movies, read a book. If you don't like books, watch TV (that's free). If you don't like TV, play a game of solitaire. If you don't like solitaire, take up needle-point.
You sound like a child with a room full of toys complaining to its mother that it's bored.
And if, as you argue, society really needs better social relationships you should skip the movie and go out and make a friend.
The producer did it to all the innocent, unknowing people that paid to see the crappy movie
If you're "unknowing" it's your own damn fault. Read a review. Ask a friend. Watch the ads. Got to www.imdb.com. Are you seriously trying to suggest there's no way to know beforehand whether you're going to like a movie or whether it's any good?
I don't feel like gambling my money on the entertainment prospect of a movie every time I go to the theatre.
Uh - then don't go. No one will miss you. I promise. Or wait for it to hit the cheap theatres. If that's too expensive, wait for the video and split the cost with a friend. Or if you're really a cheapskate, wait for it to hit the airwaves so you can see it for free.
If you don't want to pay the price of a movie ticket -- don't. There are countless other legal ways to get your movie fix for less without resorting to twisted logic to justify theft.
The Matrix DVD isn't buggy, rather the players themselves arn't up to spec (ie: the manufacturers cut features to make a shipdate, because "who will ever use that overlay feature?").
:).
If the disc were buggy all of the players would exibit the same problems. Seeing how one thing is broken on one player, while another is broken on another indicates (to me) the player is broken in these instances.
For what it's worth the Panasonic A-110 is one of the few players I've seen that play it properly.
I'm still impressed that they used every last byte that the disc could hold... all 4.3gigs
"Just run one with windows so you can watch DVD/VCD and play games. "
I don't run Windows for reasons of sanity, and or ethics. I choose not to support the man. All Linux, all the time over here. So yes I can't wait for DVD on Linux. But until it runs right I will.
21. Cohesive level of componentisation thru ActiveX and COM.
22. Decent webbrowser (yes had to say it again)
23. Visual Studio, and other COMPLETE RAD and IDEs.
24. A decent API for install and settings. Huge *rc files and XF86Config files are lame compared to a centralized registry IMHO. Even corba etc needs one.
25. GUI that doesn't crash as much as XFree.
Individuals can certainly have it both ways. If I stop paying for CDs and movies, the industry wouldn't even notice. Whether I copy the things that they produce illegally or just abstain from them makes absolutely no difference to them, therefore I can both benefit from the big budget stuff and not pay. If everyone did this, it wouldn't work, of course, but I make negligible difference, so I don't need to worry about that.
In case someone wants to say "but what if everyone did that": that's irrelevant. Whether I pay for my entertainment or not does not have an effect on whether other people do so. That, plus the fact that my contribution has negligible effect on the industry, makes that argument irrelevant.
Personally, I see no problem in copying things without paying the authors. However, if you appreciate what they produce, it is a good idea to give them money for it, so they can continue doing it. Also it is a way of showing your gratitude, though that can be done without paying money. Additionally, if other people see that those artists get money for what they do, they might be willing to try themselves. But that doesn't make it a moral imperative to pay. People may disagree with this, but that doesn't make them right. The fact that copyright infringement is illegal doesn't make it morally wrong, either, just illegal. There is no such thing as absolute morals.
Oh Please give me a break. Perhaps you should read 1984 a few times over before you go misquoting it.
No. Theft would be if I stole it from the movie store. I can view it without paying by going to a friends house. That is legal, is it not? Say me renting a seat in the theatre is worth 2 dollars. Then I should pay maybe 2 dollars for the ticket. If I want to donate to the producers, that is my business and my business alone.
Hamsters are at least as feathery as penguins. HamLix
I just want to clarify that I'm the problem and nothing else. Does the DVD for Linux work with SCSI DVDROM's?
=
The solution is simple, then. Only view/take 40 year old media!
I was wondering when you'd get around to saying that you are only playing Devil's Advocate!
But that's external to the arguments at hand. If I buy a license to get a movie, I should not have to pay until after I have seen the movie. Entertainment is not guaranteed, so why should my money be guaranteed? And it seems inappropriate to boycott the movie industry when I can vindicate my arguments by inflicting copyright infringement upon them.
Which, I might add, does give them exposure of actors, advertisements, directors, etc., to which I might later on be biased towards or against. And as such, they have gained something by me watching their film.
26. AutoCAD r14, 2000
:(
27. Various job-essential proprietary software packages designed to work exclusively w/ any one of m$'s office titles. (i.e. Access)
I expect to see more "portability" w/ improvements to wine and vmware...
Here's to the future and os stability!
...some days you're the dog, some days you're the hydrant...
Componentisation with ActiveX and COM? So they are the end-all, be-all of component technology, using something else is not an option?
We have lots of complete IDEs. RAD tools aren't that common, but IMHO they suck anyway. Xemacs is a great IDE. Then there are KDevelop, Code Crusader, CodeWarrior, GNUpro, xwpe, RHIDE, and probably a lot of other things that I don't recall at the moment. Exactly what is it that Visual Studio has that these are missing, beyond GUI builders?
As for configuration, why do we need a registry? A registry is in no way necessary for GUI config tools, so that's not an argument.
A more stable XFree86 would be nice, but given that it has crashed 4 times in 5 years for me, it's not that huge an issue. And with a bit of luck, XFree86 4 might be more stable.
A decent web browser we definitely need. And I think Mozilla will provide us with one, though it's a while till that's finished.
I think the whole point of this thread has been morals. Your quick disreguard of morals is obviosuly displayed in your decision to priate music and videos. It doesn't matter whether you think its fair or not, the fact is that you are stealing. Stealing is illegal as well as immoral (at least to most people and in most major religions). What's even worse, you argue "fairness" over a non-essential. Come-on! Give me a break! Almost all piraters I know in real life (e.g. juarez/mp3 kiddies) are utterly lazy and don't want to *work* (I personally know 10 -- and they are quite a diverse group (e.g. different ethnic backgroud, social type, etc.)). That really is the underlying motivation to pirating. NOT WORKING -- BEING LAZY. I think mp3 is a really cool idea, and I have a ton of mp3s, but 99.9% of mine are legal and ripped straight from my cd-collection. I like the fact that I can easily choose between songs without having to sort through 40-50 cds. I don't use mp3 because I can download a song from the net without paying. Believe it or not, there is a differnce. Whatever happened to integrity and ethics?
A decent web browser we definitely need. And I think Mozilla will provide us with one, though it's a while till that's finished.
I must have missed something here, but what do you class as a decent web-browser? What`s the big problem with Netscape 4.7 (Unless you`re not running on a i386 boxen, in which case i agree with you)?
If you should buy such a box in California and it's promised interoperability fails due to this blacklist, you can sue the manufacturer for selling you a defective product (Not to mention false advertising).
Opps forgot the part about 600Mhz machine is required for that min. :)
Why is IP an abomination? Your argument doesn't hold for physical things. Why is IP different?
When you justify theft of IP with "that's life", consider that others would justify their theft of all your worldly possessions with the same argumet. Is their argument valid? In an a society without ethics, yes. But in an ethical society, both arguments are invalid.
Any idea where the main bottleneck will be? Is an area where some of the MMX and related X86 extensions (and the equivalant PPC) might make a difference? or is this more of a memory/bandwith issue?
I enjoy democracy, but there are definantly good things out there that we simply don't open our eyes to. Shot by the police or shot by my neighbor ... is there a happy medium? (suicide ... lol.)
Didn't linux have a 2GB filesize limit? I mean that would be to small to store files this big.
From what I've heard, the decoder doesn't support the YUV conversion stuff in many modern graphics cards yet. So the code is pretty fast, for not-really-optimized C. So when the Xfree86 people come up with an extension to support hardware-based YUV conversion, things are going to get lots better with any format that requires a YUV conversion pass to play.
And by the way, you can pretty much forget about $free{"beer"} decoder card software; from what I've heard, the DVD license comes on a per-developer fee and a hefty NDA. Which means that even if Creative wanted, they couldn't release any critical parts of the DVD "standard", even if the cat is already out of the basket.
Lobbying is not the same as law. You've got time :)
1) 2^^16 attack on the CSS cipher itself Requiring 6 known plaintext bytes
2) A 2^^17 attack on the key generation, that will yield a deluge of player keys in a matter of minutes ( such as the randum nubers ). read here
3) Finaly A third crack that will decrypt a DVD without even knowing a single player key. This attack is more complex (2^^24)but will give a valid key in less than 20 seconds on a decent machine.
In short the CSS system was poorly designed, and has now been thuroughly been demolished.
Oh, 1984 doublespeak
BTW, have you noticed that the way they get people to talk is fascinatingly doublespeak.
Freedom is Slavery, Duplication is Theft, Words are Property.
I must say: it's a start. But there's way much more work ahead... But they're in the right direction.
Great job people! Thanks a lot!
yes, I know some people have ungodly sized monitors, and a rarer few have a good quality sound system hooked up to their puter...
Man, 15 inches is very small these days. I'm a rather poor college kid and even I was able to fork over the $500 for a 19" monitor and good sound (120 watt (?) boston acustics speakers and sub-woofer) I think this is much more common these days, then a crappy 13"/15" monitor and sb16.
The big problems with Netscape 4.7 are instability in the Javascript and Java support, and the fact that it leaks memory like there is no tomorrow.
What are the minimum specs for playing sound/video, (ie, can I run it on a spare p200) or would it be wiser to just get a decoder card? Can't exactly afford to get p2+ atm, so wondering what I might need to put a low cost player together... in linux pereferably...
David
This sig left intentionally blank.
CSS was cracked a long time ago, check 6/oct
go read up at dvdutils.com and sehr.org and get
DODSRIP or DECSS for windows...
tsk, ripripripr now
I'm very glad that you can't simply copy the movies and post them, yes it is akin to mp3's but let's get the legal issues settled about the mp3's first so that there is some legal basis for the movies. Besides it doesn't make sense to take on hollywood as well as the record companies at the same time.
Is it theft, if I steal it and you have nothing less?
I believe that the good movies are not there to make money, and the satisfaction that their movies are appreciated would justify their work.
This says nothing about movies produced to make money, however.
use video and sound simultaneously. It just requires a higher end machine or dual processor config...
This is just because the code at this point is not optimized. It will be soon, since a large chunk of the interested geek communities (sound & video geeks + computer nerds) overlap...
Check my Go-related blog for beginners: DGD
Why should payment be viewed as a donation? In what way is paying someone for their product any type of an option? And even stranger, why should it be legal? What legal ground is there for allowing copyright infringement??
Why is IP such an abomination? If you had your way, people would never get compensated for their effort. That's completely bogus -- In such a world where IP doesn't exist, what motivation is there for producing content?
Your suggestion that the entire industry disappear is just plain ignorant. You obviously enjoy what the industry creates, otherwise you wouldn't even bother pirating it. What you proposing would wipe out an entire artform that you yourself find appealing. All because you had to be selfish.
Imagine if that happened in the art world. Art is one of the most cherished and fundamental expressions of our culture. Artwork is considered intellectual property. By your statements, it would be okay with you if the entire industry of art disappeared, all because they weren't willing to give away their property for free.
Grow up. You can't have everything for free. There are time when payment is due - people work hard and deserve to be compensated for their time.
-----------
"You can't shake the Devil's hand and say you're only kidding."
let's see. minimum 233 MHz G3. either a dvd-decoding device or mpeg-video decoder or software-based dvd-decoder. dvd drive. a pudgy iMac can push dvd movies using its built-in dvd software-based decoder. actually, any mac with a dvd-drive can play movies. the dvd software comes with every mac (not to mention a very cool control interface).
-----
Linux user: if (nt == unstable) { switchTo.linux() }
Those who laugh at you for you having a Mac.. are the people who constantly call you to fix their PC.
if you expect great food at the prices you are paying at McDonalds you really are a *cheap* ass. God I'd hate to be the girl who'd have to go on a date with you.
Comparing IP to physical property doesn't make sense.
Any ethical arguement for IP can be dismissed as easily as an ethical arguement against it; the same applies to any ethical arguement for following an unjust law.
Surfing the net and other cliches...
Surfing the net and other cliches...
(Who Meta-Meta-Moderates the Meta-Moderators?)
I seem to recall that a QT/AVI player on the Amiga had a radius cinepak decoder and a CYUV decoder, in source. Although the formats that people would most desire are still the intel indeos... Yes, there are the xanim linkable files, but reverse engineering ain't fun.
I'd hack the SDLmpeg code myself to do this, if I knew something about the VCD format :-) After all, it's all in the headers, right? MpegTV (an evil capitalist piece of proprietary chicken poo) does this just by parsing the headers and separating the audio/video stream, IIRC.
Uhh... Realaudio sucks, compared to an equal bitrate (equal hz, too) LAME-encoded mp3 stream. IMO of course.
Why was that article moderated down!?! It is 100% the truth! Linux isn't going to last long on the desktop if it doesn't have DVD and USB support. Remember, not everyone is satisifed running their primary desktop on a 5 year old computer with hardware that Linux supports. They want the newest stuff that ONLY Win98 supports these days. Take it as flamebait if you will (and I am sure you will) but it is the truth and you know it. Linux is just NOT a desktop OS.
Good luck. Sonic Foundry are in bed with Microsoft in a big way (they did much of the work behind the Windows Media format, for example). As such, their software is written around Microsoft's proprietary APIs and they don't even have Macintosh ports. (A sore point with me, as I have a Mac I run Cubase on, and would like to try ACiD on it.)
Not sure whether MS owns a large chunk of Sonic Foundry, though I'd say it's not unlikely. This does look rather like an offensive to make Windows systems required equipment for music, much in the same way that Avid's dumping of QuickTime (under coercion by Microsoft) was designed to capture the video editing market.
quite right that current dvd doesn't support hdtv resolutions. But it's just a scaling problem. DVD's are usually encoded at 480p (480x640 frames @ 30 fps). Highest HDTV is 1080x1920 progressive or about 19.3 Mbps or 2.4 MBps (Most broadcasts will be in 720p which is only 8.8 Mbps) By comparison, my 10x DVD-ROM does 13MBps.
tcboo
Now, I've finally found a working url to q3test 1.08. I've used "copy link location" in Netscape's rmb menu to get the url into the clipboard and I'm going to paste it into a wget command line. Now, I'm going to be doing some X development and I'm afraid I'm going to crash X so I'll need to run wget under nohup in an xterm or in the console. I want to watch the download progress so I'll do it in the console. CTRL-ALT-F3, type "wget ", middle click. What happens? Some shit I selected in the console earlier and contains a load of newlines is pasted, causing wget to try download some garbage and the string "rm -rf /" (that happened to be leftmost on the screen in the garbage I had pasted earlier (presumably a copy of some haX0r digest)) to be executed as a command.
Fortunately I'm not one of those lesser beings that do everything as root.
Incidentally, the reason I'd selected that block of text is that I wanted to paste it into jed, running in another console. Guess what. That didn't work either!
BTW, what are the universal cut, copy, and paste keypresses that work in almost all programs, X or console? What is the ubiquitous method of selecting text with the keyboard?
"Cut and paste works great here w/ all apps... select w/ left mouse button and paste w/ the middle one" is an example of what we pride ourselves of not doing: sweeping problems under the rug instead of fixing them.
--
Fuck the system? Nah, you might catch something.
The reductio ad absurdum is an argument form which works backward from an absurd conclusion to show that a premise of the argument must be false. For example:
1. Nothing can do what is physically impossible.
2. It is physically impossible for bumblebees to fly.
3. Therefore, bumblebees cannot fly.
However,
1. Bumblebees do in fact fly.
2. Therefore, either premise one or two must be false (in this case, premise 2).
It's a perfectly valid form of argument.
To the first replier, I think the reductio in the original post went something like this:
1. I shouldn't have to pay for a product I didn't like.
2. I didn't like this movie. Therefore,
3. I shouldn't have to pay for it.
The reductio attempted to argue that the conclusion is not valid, say, in the case of a restaurant, and thus one of the premises must be wrong.
Personally, I'm not sure the reductio argument succeeded, but not because the attempt was invalid.
It is true that we can complain, and will often get our money back, if we didn't enjoy a good or a service. This can include restaurants. The question remains - did I get my money back because I have a right not to pay, or simply because the business is interested in maintaining good customer relations?
A restaurant could certainly argue that it had an investment in the commodity - the raw materials and the preparation - which was done at the customer's request. Therefore, the customer has some obligation towards reimbursement.
On the other hand, the customer could argue he didn't receive a good or service promised. If a restaurant promises an enjoyable meal, and you didn't enjoy it, the customer may have a legitimate complaint.
Hypothetical:
I rent a car, signing a contract whereby I agree to pay a certain fee in exchange for the use of the agency's car.
However, I soon discover the air conditioning doesn't work, the tires are bald, the radio's broken, and the engine keeps breaking down.
I could probably argue with some validity that I'm not obligated to pay for the services rendered despite having signed a contract.
On the other hand, how valid would the same argument be if the only problem was the dome light was burnt out?
If you go to a movie and find it not at all entertaining, complain to the management and ask for your money back. You have every right to do so. But is the theatre obligated to refund it?
Why should some paranoid filmmakers be allowed to dictate their terms to the rest of the world? Should I be required to sign an NDA before I watch TV, wipe my ass, mow the lawn, drive a car? Sure, people tape TV shows, occasionally people leave the toilet unflushed, there are horribly overgrown lawns, and people drive cars drunk. But the point is, bad things happen there, and no one proposes being the Soup Nazi of those activities to keep trouble to a minimum. Geez, what kind of jerks run Hollywood anyways? (Jack Valenti, Private Dick-wad)
Unless DVD decoders get very cheap ($5-10) it's better to use the CPU to do it. For several reasons:
1- Take that $50 you'll spend on a decoder and put it towards a faster CPU. It'll not only let you do DVD with less of a strain on the system, it'll speed up everything else.
2- Software decoders can be free.
3- Software decoders can be upgraded.
4- Software decoders can be portable across platforms.
5- Hardware takes up space, even a single chip is precious in the land of tiny laptops.
The only reason hardware decoders exist now is because CPU's weren't *quite* able to keep up. Now they are.
Some things need to have special-purpose hardware, like 3D video cards. DVDs do not. The frame rate won't ever need to increase. The resolution will stay the same.
12. Visio 13. Half-Life 14. 30,000 other games 15. Shockwave 16. Internet Explorer 17. Microsoft Office 2000 (nothing like it on Linux)
I followed the instructions in the HOWTO and got to the tstdvd step, but when I run it, it tells me: GetASF failed N/A, invalidating: Invalid argument N/A, invalidating: Invalid argument N/A, invalidating: Invalid argument Request AGID[1]... Request AGID[2]... Request AGID[3]... Cannot get AGID Is anyone else having this problem, and if so, found a way around it?
I just read how DTCP works... Potentially hazardous, except one thing. If the CA private key is compromised to a small group of people before a new CA key can be distributed, the the entire system would be lost to that group of people if they found means to transmit a new CA public key to the rest of the boxen. At that point every box would be at the hands of people of unknown intent, who might redesign the system or (worse) destroy the entire sysem by contaminating it with massive "Certificate Revocations". Immediately at that point, millions of lawsuits would force the manufacturers to repair the damage, would force the DTLA out of business, and inevitably destroy any future chance for "Content Protection" systems to be developed and implemented due to the incredible consumer outrage and economic disaster for the technology companies employing it. This will forever be a danger of a CA system, which is only secure for the limited time it takes to break the CA key. When the CA key size is takes small enough time to break before a new CA key is issued.. Trouble.
I understand that in America, McDonald's is considered inexpensive. Here (Taiwan) it's one of the most expensive places to eat. A meal at McDonald's would set me back the equivalent of 3 or 4 US dollars. I can get a better meal at a local restaurant for half that price.
Heck, for just a little more than the price of McD's I can get a full steak dinner.
So yes, for the prices I'm paying at McDonald's I do expect great food.
"If I buy a license to get a movie, I should not have to pay until after I have seen the movie. Entertainment is not guaranteed, so why should my money be guaranteed?"
I would think because the terms of the contract offered to you permit no other interpretation, should you choose to accept those terms. If you would like to pay after seeing the movie, you have the freedom to negotiate with the service provider for such a contract. The service provider has the right to reject your terms, and may not take money from you illegally.
It is wrong that the movie industry was preventing me from playing my copy of a movie how/where I wanted to.
I wish the record/movie industry would learn.
COPY PROTECTION IS ONLY ANNOYING.
Dual cassette recorders didn't kill music.
Two VCR's didn't kill movies.
MP3's won't kill CD's(yet).
Though all these probably do serve to keep the industry more honest in pricing.
And BTW, I do have unencrypted DVD's. I'm not copying those or posting them on the web either.
There's more issuses that prevent this:
Download/upload time, HD space
Honesty
Either way, it's a threadbare argument. I'll continue downloading MP3s and VCDs though, if you don't mind. Or even if you do mind. I don't particularly care. That's life too, isn't it?
-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?"
Anyway, what I really want is a realtime mpeg1/2 encoding solution that works in linux so that I can make my own TiVo-type thing.
--
Fuck the system? Nah, you might catch something.
Yes, this could be a problem.
These new 30-200 Gig UV discs could likely replace
DVD's.
And after seeing how DVD's were cracked, they could get really crazy with encryption.
But, Linux may be "the" OS by then, and who knows,
open software may even be popular.
Of course if there are software viewer, it can eventually be cracked.
And while you are waiting, you could just buy cheap used DVD's. Just think how many movies you could fit on a UV disc.
For those Mac users with hardware decoders, I believe DVD Player 2.0 will not be supported. Instead, Apple has released version 1.3 with Mac OS 9, which performs just as well, if not better, than 2.0 final will on the iMac DV's.
Specialist hardware will always outperform software, however, inevitably this ends up being negligible.
When ultra-low quality MPEG movies first came to PC in the earlky days of 486. Hardware decoders were mandatory. Thanks to Moore's law, these days the same movies can be played nowadays with CPU usage below five percent.
Ultimately this will likely be of benefit to DVD - CPU speeds increase and come down in price, vendors don't have to worry about added prices for hardware decoders, CD-ROM / DVD-ROM price difference is small. The bar to entry is lowered, and the Rest of us can enjoy the technology.
If MP3's still took up forty-five percent of your CPU-usage, they wouldn't have the popularity [or controversy] that surrounds them today either.
Ironically, Moore's law also popularisez media in another way. Encryption schemes such as the DVD zone information are inevitable cracked and wholesale ignored by the general public, as a long-forgotten nuisance.
If you want to pay 2 dollars, you have the freedom to attempt to negotiate that price. The theatre owner also has the right to reject your price and offer you another. Capitalism works, and it protects the consumer by providing choice. Anarchy (i.e., indiscriminate theft) works against all, and the average consumer in particular.
Trade secrets DO have some protection, however it is far out of the scope of what happened here. The trade secret protection protects from a direct leak (someone entrusted with the information divulging it to a third party). This is the case of someone disassembling a widely availible product to discover how it works (a protected activity, as revealed by the SEGA case) and re-implementing it to the extent it needs to be for interoperability. The courts have ruled on this kind of activity in favor of it. However, you are 100% correct about the Dolby Digital element. It would be necessary to provide a non-free audio decoder to play back the audio on discs using that encoding. I would propose the option of (A) routing such output to the S/PDIF output on a sound card to be diverted to an external decoder or (B) providing the means to play back uncompressed audio as some discs allow. The possibility (but not probability) exists of a license with Dolby for the distribution of the decoder in binary form ("non-free") or else a license for (the far less likely) playback code for Dolby Digital to be released in source code form under an open source license. I really don't know what the future could hold, but since Warner and Disney probably pay Dolby Bill Gates' Ransom in licensing every year, I doubt they're gonna budge on something that the studios balk at. Just an AC's $.02
In terms of contract negotiation, I have the ace in that I can copy the movie with no degradation of the product. The morality of employing that ace is not in question. The reality is that I have it, and without guarantee of service, I can readily employ it. Thus those with whom I negotiate are in a position where they might want to negotiate, whereas before they could remain steadfast without fear of any sort of reprisal.
> The Matrix DVD isn't buggy, rather the players > themselves arn't up to spec
This is untrue. It is a plain and simple fact that the Matrix is incorrectly authored - it does not comply to the DVD-Video specification.
The reason different players work differently (or not at all) is simply because they are different! Depending on the memory representations of the DVD's data structures that a player uses, the amount it verifies that the data on the DVD conforms to spec and the amount of work done by the player to work around broken discs such as the Matrix are what make the players behave differently.
After all - just look at HTML. One single broken HTML page will display differently in different browsers - this isn't because the browsers are broken, but just because they react differently to the broken HTML. (The fact that they also react differently to non-broken HTML is beside the point here:-) This principle is exactly the same with broken DVDs such as The Matrix.
P.S. I work for a DVD player company. Our players didn't always play The Matrix quite right, so we had to put hacks into our code to work around the DVD authoring bugs.
A colleague of mine once attended a DVD show where the CEO/similar of the authoring house in question was saying how amazing they were and how they tested with every player known to man. It's pretty obvious he's full of sh*t - just look at all the problems The Matrix has! He didn't get quite such a good reception at a recent conference he talked at after this fiasco!
The obvious recourse is go elsewhere for your entertainment.
Your argument sounds to me like, "since I can't have your service at the price I want to pay, I'm going to take it anyway an not pay anything for it."
What's to stop me, with that kind of logic, from deciding that every entertainment I want is overpriced?
Actually WB admitted that there is a flaw in the AC3 bitstream at some points in the movie that do cause a sound drop on some systems. The Hollywood Plus drivers had some problems with this at first, but the latest drivers correct this flaw. Other players still have a problem with this stream.
Time flies like an arrow;
Time flies like an arrow;
Fruit flies like a bananna
You are leaving out several important things. By far the most important is this: ultra-high quality SVideo out! Yeah, yeah, your TNT2 Ultra can do that, right? NO! Not the resolution and quality of a hardware decoder card, which is just a consumer DVD player-on-a-card. Another thing: AC-3 out, so I can use my $500 receiver for that instead of an unshielded sound card (eg, SBLive!). Another thing: software decoding would kill my distributed.net keyrate! Or kill the compile I might be wanting to do at the same time I watch a movie. The reason I bought a DVD drive was because at the time, a drive+decoder was $100s cheaper than a commercial player, I didn't buy it to watch movies on my computer!
Actually I've been playing my VCD mpeg Matrix under KDE for some months. The moral being that there is always a way round things. Actually being able to do this from DVD will be great though.
The Linux crowd is always late to the show.
And this time it has lost its innocence, too.
Reverse enginnering a Windows DVD player may
be legal, but it shows what the "next"
development model for "some things" will
look like.
I hope xfree4 will speed up video, else
you will have jerky and skipping AC3 audio,
unless I'm stupid (or my p2-450 too slow).
I'm sorry that you're sick of hearing that "theft" of digital media is completely different than physical theft, because you're going to be hearing it a lot more in the future.
People, intellectual "property" is, at best, an interesting concept. Don't take it for granted. It is not a right. It is a legal fiction we have come up with, originally with the purpose of promoting creative works.
I think the concept of IP has lost its usefulness. We need to slowly start decimating the whole idea. You already see this happening with free software and to a certain extent, music. Hopefully one day the human race will look back on the era of IP as an interesting, but brief phase of their history. You are already seeing immense, bloated legal structures being erected to try to deal with the paradoxes inherent in viewing IP as a natural right. From lawsuits when people merely _link_ to copyrighted content on the web, to lobbyists promoting IP protection for databases, we can hope that whole system will eventually collapse under its own weight.
Now I'm under no illusions that this will happen quickly, or easily. After all, our economic structures have been built on these ideas for hundreds of years. The Disneys and Microsofts of the world have a foundation of IP. So it won't be easy, and will probably take 100-200 years before we're rid of the concept altogether. But still, we have to start somewhere.
To those who argue that a world without IP "won't work", use your imagination. We have already seen that if all software was free software, programmers would still get paid. I'm sure we will realize that arts will still be paid for without IP as well. Don't assume that our current society is the only "natural" one. Look at the history of the human race, then think of the next 10,000 years.
The filmmaker need not entertain me to get my money. He just needs to make the movie appear entertaining enough in a 30 second TV spot to get me to pay for the ticket. Before I see ANY movie anymore, I watch the first 5-10 minutes from an .ASF off IRC. Some movies have been good enough that I paid the money to see them in the theatre (Thomas Crowne, Mystery Men). The rest is, frankly, crap.
"Reactionaries must be deprived of the right to voice their opinions; only the people have that right." - Mao
The pioneer 114 and 104S 10x are currently region locked players. Unless a firmware patch of hidden jumper is discovered, the recommendation is to stick with the older 6x model. See http://www.dvdutils.com/
-- Thorin sits down and starts singing about gold.
Uhm, usually the patents only apply to encryption, not decryption. In the case of MP3 (which is relevent here because MP3 is part of the mpeg 2 standard, which DVDs use), despite some initial threats from Fraunhoffer and Thompson, there wasn't anything they could do to people writing the decoding software, since their patents had to do with the psycho accoustic models used for compression, and de-compression didn't need to know anything about those models. To my understanding, decode/decryption/decompresion only is interfered with by patents when there is only one algorithm to decode something, and that algorithm is covered by the patent. However, in many (if not most) cases, there are multiple ways to decode things.
-- Superlame http://catpro.dragonfire.net/joshua/
In 4 years I get to watch Disney's Steamboat Willy. lol.
Thus the function of the capitalist (or filmmaker) is only to siphon cash out of circulation.
Capital by Karl Marx. Read it.
"Reactionaries must be deprived of the right to voice their opinions; only the people have that right." - Mao
When will people realize that JUST because its always been done that way in the past means it CANNOT BE DONE DIFFERENTLY IN THE FUTURE.
The telephone obsoleted the telegraph. Many people lost their jobs, many telegraph companies lost their only source of money. Do we still lament their passing?
JUST BECAUSE the current distribution methods of media won't give the CURRENT POWERS their money in the future. doesn't mean that there won't be alternatives in the future.
So what if the era 100-million-dollar movie ends? So what if the era of MGM or Paramount or Disney as film companies ends? So what if the era of the railroads ended? So what if the era of the Telegraph ended? As long as there is demand, there will be a replacement. Its safe to say that there will always be a demand for entertainment.
``I propose that to save the critically important telegraph industry we must make it illegal to transmit voice electronically over any wire.''
Or how about:
``I propose that to save the critically important post office, we must make it illegal to transmit any message electronically over a wire domestically.''
``I propose that we immediately discount that new foolish idea that some legistlators are proposing, called 'copyright', as it will let tyrannical authors prevent bookmakers from making books.''
Or, what was that one about british candlemakers protesting about how the Sun was screwing up their business?
The future is different from the past, just because its the past doesn't make it better, doesn't make it the only way that works.
And yet hear you go whining about author's bogus entitlements to payment for their "intellectual property"...
This is where the foundation of your argument starts to woble a bit. Nobody needs entertainment. I'm sorry if this comes as a shock, but you don't.
My Girlfriend wanted to go shopping this past weekend, saying she needed some red pumps. It's imporant to clarify, red pumps are not a need, they are a want. She wanted the latest design from the best designer, she needed a stylish and functional pair of shoes. Are these the same things? Not at all, and it's important to clarify the differance.
My recomendation to the industry if they don't want everything to go out in the open real quick would be to get some software decoder out for linux for FREE real real fast. Otherwise it will be cracked [soon] and with the big drives (200GB anyone) coming real quick there is no issue to talk about.
my 2cents
I remember the GUS. In fact. I've got one in my computer right now. Its a GUS-MAX, and it plays MP3s much nicer than my SB16. The codec is much better than the crappy one on the SB. The output is much crisper, and the bass is deeper. Plus, its a full length, RED isa card!!!! :)
Copying digital media is not theft. Copying digital media is not theft. Say it a hundred times until you get it right. (You've already said it was theft about a hundred time in this forum).
Well as far as we know the AC3 and MPEG-2 codecs contain zillions of patents. Eventually someone from Fraunhoffer or Thompson is going to get up in the morning wanting more money and he's going to take down all our DVD projects. I don't believe DVD decoding is a CS major's cup of tea just like operating system selection isn't an EE's cup of tea. That why we don't see any of it. The problem is getting the EEs who are interested in multimedia to get interested in the operating system they use and getting the CS majors who are interested in the operating system to get interested in multimedia. There's a constant rift there.
In a few years, aren't DVDs & players going to be replaced by HDTV versions of the same thing?
If so, what's keeping the them from working out a scheme that's exponentially more difficult to break?
If I'm missing something, let me know...
And not have to pass through a million or so filters to get published, mp3 pirating and movie pirating would either disappear or better become a medium for people to get new ideas and possibly be swallowed up in an open media movement.
... tools... (siglim 120 chars)" Like cars... to the office no more no less.
So what happens when someone can see the effects of purely going after supply and demand. Somewhere it gets to be a pointless transfer of money. People want automation of purchases. Then they automate their process of choosing products. Next we will be automating our enjoyment. And intentionally or unintentionally the flow of money at any moment in time gets to be so high it excludes larger and larger groups of people, which is ridiculous in our age beccause money just goes in circles. Value is something very vague these days. Otherwise you wouldn't see things like domain name squatting.
Frankly, I think it's time some of these companies got used to the idea of change. It isn't so difficult to adapt to a world of piracy and make billions using the piracy vehicle as free advertising. Some companies already do this.
(Okay maybe I just want television stations to die, but supply and demand demands a very large supply of ignorant unconscious organic machines. Some of us feel we're being forced out of the fucking loop.)
Personally, if I have to have a lawyer tell me why something is valuable to me-- other than those things which protect what I already consider valuable-- than I have to say that item is probably not really valuable to me in the first place. Sorry but no lawyer is using me as a get rich quick scheme.
"Computers should be
The message on the other side of this sig is false.
recompile
Do you changes clothes while making the "chee-chee-cha-cha-choh" transformation sound?
i've got 100's of movies here, i download them all the time, and there are 1000's of people that do too, it's alot cheaper to spend $1 on 2cdr's and burn them in vcd format and buy a dvd player that supports vcd's and play them on that than to go watch at a theater or rent/buy them
BTW, have you noticed that the way they get people to talk about these issues is fascinatingly doublespeak.
Freedom is Slavery, Duplication is Theft, Words are Property.
Tell me this isn't EXACTLY the meaning of what you're saying?
You are literally calling ``duplication'' ``theft'', ``words'' ``property''.
Do you know when you will be calling ``freedom'' as ``slavery''?
Perhaps because being free makes you a slave, unable to access any of the modern world's (life+70year copyright term) modern data. You would be a slave to the past where such notions as ``freedom to think'' are considered good.
They know it because they see a huge dropoff in sales after the opening weekend. They know it because their video rental sales stink. And you might not believe it, but the people who make expensive movies that show those characteristics get dealt with very harshly in the industry these days, no matter how much the movie was hyped or how well it did in the first weekend.
Cheers,
ZicoKnows@hotmail.com
Absolutely. Let's stick to Moral arguments, or at least to Ethics.
Your proposed bargaining position is akin to that of a ransomer. Whether you choose to ransom people, goods, or IP is irrelevant. Ethically, you are not bargaining from a position of good faith. Certainly, from a practical perspective, an anonymous ransomer has a strong position, but certainly the position is not ethical.
I grew up in a poor town in the poorest province in Canada (Newfoundland), and have spent my whole life dealing with people who are unable to defend their rights against capitalism and centralized governments. My father was a doctor, and I grew up being one of the select few well off in the community from which I came.
My monetary stability is quite secure, and I'm quite certain that it'll get even better with age and experience, but that does not change my arguments. They are universal, attacking a problem. You have attacked me, obviously without knowing anything true, based on assumptions, leading me to believe that you are a genuine asshole.
Must have 16-bit color (no more no less). then run mpegplayer2 -vob -f filename on the decoded file...
The ext2 files system has this limit, not Linux. I believe DVD disks have their own format that is used on the disk.
treke
> Capital by Karl Marx. Read it. Good book. Animal Farm by George Orwell. Better book. Read it.
That happened to me - fixed it by using the -v flag...
Duplication is theft? Maybe I'm just not sure what you're talking about, but I don't think that line was in 1984.
hehe... back to a 1.. where it should have been (not worth karma gaining or losing karma). Thanks to whoever fixed that. :-)
"Open Source?" - Press any key to continue
:-(, tried it first with 2.2.13 standard kernel and it validates (but my hd will run in PIO mode and very slow..) Tried with the 2.2.12 and the Hedrick ata66 patch, results in the error: 'GETASF failed' 'invalidating: Invalid argument' 'can not get AGID'... Anyone an idea or kernel patch for 2.2.12 or 13?
Componentisation with ActiveX and COM? So they are the end-all, be-all of component technology, using something else is not an option?
You always have an option, but the default the standard is set, and it's COM....since COM is language neutral (can use C/++, Java, VB, Delphi etc) it's also very much part of windows now. That way many APIs can easily be accessed thru dual interface COM objects - making it very easy to do thru VB and Java (Look at DirectX).
I prefer Visual Studio to other IDEs for one reason - the editor. It has HUGE advantages over text based ones - intellisense. It's so useful I refuse to use any other IDE now
The addition of inteliisense to VC++ 6 is what led me to C++ over VB, then the arrival of VJ++ 6 with intellisense shortly after led me from VC++ to VJ++
And IMHO registries are needed. Not just for the massive GUID registries in need today for COM/CORBA - but it's a standard fast mechanism for storage of information. I'm betting that in the future as windows COMponentises even more - there will be object store registries - where you can serialize objects into the registry....it's all about a standard way (for windows apps) to store information - and it's all indexed etc etc...just like storing a database the way Oracle does it - or in a text file.
You would also need to support still images, menus, remote control functions, playlists, CD-DA tracks & other Video CD 2.0 (White Book) features. VCD is not just about MPEG files.
Well fine, maybe they are being greedy, but to be honest, the market doesn't agree with you. They're obviously not charging more than most people are willing to spend, or they wouldn't be making sales -- that's the beauty of a free market; it maintains itself as long as there's not a monopoly. And there's no monopoly on movie production, either; Indy films get funding all the time from private and personal investors.
How many times do I have to say it: If you don't like what they're charging then vote with your feet. Watch a different movie. Watch paint dry. Don't watch anything at all. I don't care - but just because you think the industry is overpriced does not give you warrant to violate their rights.
I'm done repeating myself. Pirate movies if you want to. Be a thief. Convince yourself it's justifiable. People like you make me sick.
-----------
"You can't shake the Devil's hand and say you're only kidding."
But ethically! Isn't that it's own reward? :)
That has to be the least truthful thing I've heard in quite some time.
We all need entertainment. We may not need it in the form of multi-million dollar movies or overpriced CDs, but everybody needs some things in their life to distract them from the daily grind. Plays, poetry, concerts, operas, board games, Bingo night, or playing Quake with Rob Zombie's latest blasting out your eardrums... whatever you choose, you need something in your life to entertain you, or you'll go crazy.
--
"I personal[ly] think Unix is "superior" because on LSD it tastes like Blue." -- jbarnett
I would put forth that any psychologist worth their weight would disagree with you.
Food, shelter, and clothing are physical necessities, though depending on the climate and such clothing may not rank as highly. However, you have emotional needs which go above and beyond that. Everybody, for example, needs to feel loved. Do you die if you don't feel loved? Of course not. But you don't develop healthily (or, if you prefer, normally) if that's the case. The same with entertainment. I'm sure you've heard the phrase "All work and no play makes Jack a dull boy." You're right, you *don't* need Q3Arena. You can just as easily get by with a deck of cards, or socializing with friends. But if you never take some time to yourself, to do things that you enjoy doing... then, well, something's wrong.
--
"I personal[ly] think Unix is "superior" because on LSD it tastes like Blue." -- jbarnett
The original DVD patch was done by Andrew T. Veliath and this is the patch linked on the HOWTO page. While it only worked on ATAPI drives, his interface and structure was good and I decided to integrate this in the standard Linux kernel but in a bus independent way. Current 2.3 kernels contain this code and it works equally well on ATAPI as well as SCSI drives (which is an important point, IMO).
In summary, if you are running a recent 2.3 kernel you are all set and there is no need to patch your kernel. If you are on a 2.2 kernel, get the patch from my page to get support for both ATAPI and SCSI drives.
http://www.kernel.dk
Couldn't you fool an OS into thinking
that a DVD partition is a DVD hardware
device? This is possible for CDs,
so why not for DVDs. Granted, your OS
would have to be able to support up to
17 Gb per file, but you could then do
a bit/bit copy and avoid those stupid
decoded rips. What am I missing?
I agree totaly with your previous post.
I saw this behavior with The Terminator, but then I went to www.kernel.dk and applied the patch supplied there, and now I see video. I haven't been able to get audio yet (with or without video). mpeg2audio reports "unknown layer identifier found!" so I won't chalk up the problem to system limitations yet (dual P3/450). But everything looks promising. High fives to the developers.
Ryan
Industries to not have a right to exist. If they can only exist through extortion, they should not exist at all.
I think art existed before intellectual property laws.
Motivation for creating content is not as important as my freedom to use a cd burner in the privacy of my home. It is exactly the same as child sex and recreational drugs. The part about motivation and payment is completely irrelevant.
WHat legal ground is there for copyright infringement? This isn't about law, i know copyright law does indeed exist. The issue is morals. Copyright law is immoral. Nothing can take away my right to copy things freely, and nothing can force me to part with my money in exchange for a movie company to part with nothing.
Lets see, I pay 5 bucks for the right to view a movie. I lose 5 dollars. What does the movie company lose? They still have their movie. They did not work harder so I could have it. I have given them something, they have kept everything. THat is extortion. Payment of course should not be optional for all cases, such as a physical product, or a service.
You are quite foolish if you think you can have a guaranteed income when you sell a product for which payment is optional, as it is with all intellectual "property".
Payment is optional because the producers don't give up anything. If you don't give me something, I shouldn't have to pay anything, even if I enjoy a benefit you created.
The right for your preferred business model to be valid is NOT a given. The right to not submit to extortion, and basic freedom within my home is most certainly a given.
Hamsters are at least as feathery as penguins. HamLix
It's the contract of the offer that you're violating. Allow me to put forth one little example to make my point.
Lets say I'm the Producer of "The Matrix" and I line up financing to make a great movie and I want to sell it. There are many ways to try and sell the movie.
1) Stand on the street corner yelling "get your Matrix here".
Your Price? $1.00
2) Sell volume copies to video stores and take out some adds to create demand in those stores.
Your Price? $3.00
3) Sell copies to movie theaters and buy advertising to create demand in those theaters.
Your Price? $6.00
The decision for how I want to distro *my* movie is *my decision* not yours. It's an offer. It's a contract. It's speculation and risk managment that leads me to a decision for how to best recoup investment, and make some profit for the risk *I* am taking. If you like the offer, you pay what I demand. It's that simple.
If I'm making a movie, and piracy has closed down distrobution chanels 2 and 3 (making them finacialy a higher risk), I'll be forced to stand on a street corner and sell the movie myself for a buck. This means that The Matrix would never get made.
And another thing, many people are talking about how they need to see a movie and I find this quite laughable. Your demand is purchased. Your demand is payed for. Your demand is a fixed cost of distro channels 2 and 3. Like so many sheep to the sheerer.
95 years now. You'll be dead.
The registry is an absolutely horrible idea IMHO. Think about it, you have one huge file that stores almost all of your settings. If something should corrupt that file, you are pretty screwed. On the other hand, haveing a bunch of separate config files reduces the chances of this. Sure you may lose a few things, but the chances of everything dying are pretty slim.
People like you make me vomit, then shoot liquid brown foul smelling fluids out of a nether pore.
You say we should just do without. How does this benefit anyone? How does my not seeing a movie help anyone more than if i choose to see it without paying? Whats the difference?
Hamsters are at least as feathery as penguins. HamLix
Right, which is one of the main reasons I use my DXR. That and it also has either an AC3 output, which standard sound cards just don't have these days :)
Nope. You'd rather spend your time "thinking and planning" which movies you're going to steal.
The truth is you're just a lazy bastard who gets peeved when he actually has to put a little effort into his own entertainment.
Do you apply the same logic to selecting a restaurant? "Hey, Mr. Chef! Feed me - and I'd damn well better like it!" Should I start refusing to pay for my Happy Meals just because McDonalds' french fries suck?
When I say I don't have the time and energy to put into watching a bad movie, I mean I'd rather put my time and energy into something rewarding or satisfying.
Tautology. Of course we all would rather put our time and energy into something rewarding or satisfying. Guess what? This usually requires a little "thinking and planning." Sorry to be the bearer of bad news.
But as was already pointed out this is a red herring. You waste time and energy watching a bad movie regardless of whether you paid for it or ripped it off.
In any case, I'm willing to bet my last dime that you only pirate the movies you like. Which is to say, even by your logic, the ones you should have paid for.
I pay for the big screen and popcorn and nice trailers and big theatre sound. That's what I pay for.
Hey, genius. Have you noticed you don't get popcorn when you pirate a DVD? If you're really paying for the environment, not the movie, then you got what you paid for regardless of whether you personally found the movie "entertaining" and you have no grounds for complaint.
And sometimes, it's nice to go to a movie.
Fine. Then pay for it.
Of course you'd be willing to copy a movie that you'd see only once. You're willing to eschew ethics in the absence of law enforcement. And of course, MP3's would be horribly off-topic! ;)
yup that's it, lets just leave the dvd/vcd/games to windows, so that way we never have to add any functionality to linux. What kind of mentality is that?
Linux is striving to be a better OS. We have code freezes to get bugs worked out, but after that, more functionality enters. That is the beauty of this system. It is nowhere near reaching its limits and I don't think just buying another machine to run windows is a way to solve this problem.
You mention that you have a linux router/dialup box. Hmm last I checked they have that for windows too, so why do you use linux for it? Stability perhaps?
This is why I love linux, sure you might have to wait for some functionality, but once its there, it gets improved upon. If it has bugs they get fixed, not covered up. and yes, i have two machines, guess what, they both run linux, cuz it does what i want and will do what i need to later.
Patience is a virtue
/* * 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 /* __linux__ */ #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}}; /* DVD specific ? */ static struct playkey pkey4a1 = {0x028, {0x53,0xd4,0xf7,0xd9,0x8f}}; /* DVD specific ? */ 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; }
/*
/* __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;
}
/*
, 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
Anyone else having this problem? I used css-cat with -v, and it appeared to work (got a huge output.vob), but when I do mpeg2player -vob -na -f output.vob, it just prints some data out and pops open a window that remains blank. It says something about "requires 16 bit display" - anyone have an idea what's happening?
/*
* 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;
}
..would be a multimedia-oriented linux distro. Good stuff to include would be MP3 players/encoders, WAV players/recorers, MIDI sequencers, various video players, and of course a fully functional DVD player. It would not be necessary to include most of the various server programs and such, since it would be oriented towards MM and the idea would be to have the system do the best it could.
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
That is a valid point. However, things like XF86Config get large enough once you add font paths..and some extra config. (ok it's not huge...but you get the idea).
:) :)
...or keep it together and back it all up?
Your argument sounds like an argument for floppies.
"Why would we ever want harddisk - having everything on one drive rather than just 1000 floppies! It's safer!"
You're right that if the registry corrupts - you lose a lot. But then I don't think that really should stop you from doing it 'the best way IMHO' (I'm a fan of centralized & common standard storage of information) - and then solve the problems by backups. It's harder to backup all settings if they are in small files spread out everywhere.
I think basically the registry acts as a simple database. Think how much safer over a text file a transactional settings database (sitting on a JFS) would be? That's the registry
There are many things that need to be stored - most of the windows registry actually involveds storing COM object GUIDs,IIDs etc....splitting that over several files would be silly
The registry in Win32 has other features like in memory settings (they go away when the user logs off) etc.
Say you had a 20MB of work... Would you split it up into ~1MB bits
I hope this was a typo. I really do. and if it isn't a typo, you have absolutly no right what so ever to use the word Morals as you obviously don't have the first clue as to it's meaning.
I hope that was a typo.
Woohoo! Now let's have the DVD Encoding software available for linux... IMO that should be the next (wonderful) step!
/* * 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; }
How do you suppose that?
Because I defined "a lot of money" as "the amount of money past which debrain thinks money is immoral". Should have made that more clear, but I figured you'd get it from context. So do you have (or ever expect to have) "a lot of money" by that definition? If so, it would be hypocrisy, and if not, then the first two clauses above were right.
The "deep resentment" was my interpretation of your generalizing statements such as "perpetual greed", "exploited", and "money eater". Maybe "deep" was a stretched guess, but you do seem to have a bone to pick with people who do nothing but make movies and offer (not force, mind you, just offer) to let you see them for a small price.
"Avarice" was a reference to the penny-pinching, pathetic greed it takes to publicly, proudly claim apathy toward producers risking million dollar losses, while you whine about losing a couple dollars because you didn't read the right reviews before going to see a bad movie.
My reasons for defending the rights of individuals is that I've worked with the Red Cross and Amnesty International, refugees of Yugoslavia and Kosovo and Ukraine and Nigeria
You're comparing Hollywood producers to genocidal tyrants and armed warlords, and you're calling me an asshole? Do you really not see the difference between putting a gun to someones head so you can take their livelihood vs. putting a commercial on the air to promote your movie? One action shreds the rights of individuals, one action doesn't impinge upon anyone's rights.
leading me to believe that you are a genuine asshole
Well, it's not my day job, but whatever, it's no worse than a couple of the assumptions I made about you. I take back "inadequacy", to start. I'll apologize for "loser" too; the Red Cross & Amnesty International service more than makes up for a couple muddy socialist inclinations.
But honestly, look at yourself - you really started out defending individuals' rights to freedom from totalitarian governments, and ended up defending individuals' rights to free copies of blockbuster movies? That's kind of a sad progression. At least most socialist activists talk about collectivist farming or factories first, and worry about how to entertain couch potatoes later.
/*
* 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;
}
They went out of business. Belly up. And good thing, too -- DVD is much better, since no one is going to know how much I watch, or even what I watch. If I want to buy a DVD, then I want to own it.
ObOnTopic: I'm interested how many folks actually watch DVD's on their computer vs. how many watch it on a regular TV as part of their entertainment system. I'm in the second category. Anybody else?
"You can never have too many elephants on your team."
/*
/* 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;
}
You need to run X in 16 bit mode for the time being. (Once hardware YUV->RGB & Overlay is in , it should fix that). Kill X, and do startx -- -bpp 16
This
Look at what I said earlier. You not seeing a movie doesn't help anyone (obviously). But if everyone pirated the movie, as you suggest, instead of paying for it, then the producer doesn't get any money. If the producers don't get any money then they can't make any more movies and so the industry dies out. Since you obviously enjoy watching movies, it seems to me that the death of the movie-creating industry would strike you as being a bad thing.
Moreover, there are plenty of other ways to see a movie that do not involve violating IP laws and ethical consideration in general. If you really want to see if for free, then wait for it to be on one of the Networks or pay a marginal fee to HBO (or another movie channel) so you can hear all the original swearing.
Anyway, like I said: I don't care. Do what you want, I can't stop you. It's late and I'm going to bed.
-----------
"You can't shake the Devil's hand and say you're only kidding."
As far as GUIs crashing, I have far more Windows Explorer crashes than I ever get from XFree.
I was refering to GDI rather than Explorer...explorer isn't the GUI engine...it's more like a Window Manager in X terms....well sortta - a better comparision would be something like KDE's file manager.
Microsoft IE 5 is the best web browser currently available. But it also is a bloated pig in terms of system resources and does not fully adhere to standards, and I'd bet in the not too distant future will be surpassed by Mozilla. In the meantime Netscape is quite 'decent' thank you
Yes it is, but bloated like a pig in terms of systems resources? I have yet to find a browser (graphical) that takes less resources...it's fast, and takes very little memory...even over mozilla. especially over hotjava and netscape.
netscape isn't quite decent by my standards...i don't want to be afraid to resize the browser window (netscape likes to reload off the server if you do that) or have the entire process lock up while it does a DNS lookup. I wonder if Netscape even uses threads.
Also, CORBA isn't doing the same jobs as COM - COM is far more popular than CORBA. CORBA is more popular than DCOM however. You don't see very many ActiveX or COM components out there using CORBA - it's too slow (that's why KDE developed KOM....mozilla developed xpCOM).
And read my other post for the reasons on a registry - basically the same reason to have a database and file per table like the old 198x databases. It has *some* disadvantages (like having a harddisk over floppies) but has many advantages.
I have a serious qualm with thieving the money of artists. I have no qualm, however, with taking money from the
industry that holds the artists down, that represents itself as if it were the artists themselves. I'm speaking of distributers.
Then don't buy the artists' CD at Walmart or Tower or where ever. Go to see them live and buy it from them there, then all the money goes to them. If you're talking about huge major labels acts on the other hand, there is not a lot you can do to give them your money, they sold their souls long ago.
cheers,
matthew reilly
Freedom is Slavery, Duplication is Theft, Words are Property.
The RIAA, and whatever other representives are doing pretty good, they're already accomplished two of the three in the public's mind. Want to take bets on how long until they accomplish the third?
Even if you could copy them, and post them, who would want to, do you realize how much bandwith it would take up to upload an 'entire' movie? The only reason that mp3 piracy is a problem, is the average mp3 is only 5 megs, and what's that, couple min download with a decent modem? But, you get up to a couple hundred megs (actualy more) for a DVD film, yer talking some serious d/l time here. It's just not worth the trouble (unless of course your on a lan (like in a collage), but even then, the only other people who would have easy access are few)
Not much of a threat
http://www.xpurple.com
Hopefully...
:-)
It's dead.
I hate to tell you this, but the Matrix is 7.8G... It is dual layered. (as an aside, it works just fine in my sony)
Would you do it for some scoobie crack?
Word games are wonderful, are they not? I was convinced that upon copying a movie, you stole my ability to establish a contract with you on fair ground. Certainly, the stolen goods are not tangible, but then, neither is dignity. Ideas do have value - the question is, what value do you place on them?
Let's get cracking!
Note: This whole branch is off-topic.
That's really fucking off the ball. In the coining of the misnomer "Intellectual Property" it seems to have been lost a simple fact:
THERE IS NO SUCH BEAST.
There never was such a thing as Intellectual Property, and never will be. What is intellectual is inherently not property, and never will be, and never could be. The coining of the term has confused the fact that indeed "Copyright", on the very face of it and beyond, is just that. A "Right". A "secured exclusive" right of "limited" times (Tho movie studios love to wipe their ass selectively close to the clause that gives them so much money, with the Sonny Bono law.). Mind you, that applies to the USA only.
I doubt seriously that the men who drew up the constitution in the first place could agree on any kind of lengthy copyright term these days. In light of the fact that copyrighted information can be sold around the world at almost the same time, and pull in enormous returns in a YEAR, and go out of print on video within two years (Thank Disney (Studios - Eisner et al.) for the on-again-off-again marketing practice). How could you possibly justify a copyright term exceeding two years for movies? And computer software for the life of the author plus 70 years???? Give me a fucking break, the software is obsolete in far less than two, and the media tends to fail by then in cases of magnetics.
The only bad thing about a 2 year copyright term would be that the GPL could not be enforced after that term, and by then the up-to-date code would be covered by later copyright anyways.
In December two companies are coming out with decoder cards that will allow you to push the DVD to the TV (and maybe monitor?)
Do you changes clothes while making the "chee-chee-cha-cha-choh" transformation sound?
The entire thread entitled "css" in the October archives is a 404. It looks like the list owners had to worry about export restrictions in those articles.
If someone would be kind enough to mirror those articles somewhere, I'd be curious to read a technical description of the CSS algorithms.
--
Xenu loves you!
It's a dual-layered disc, that's over 8 gigs.
Because with this CSS code, we could play DIVX disks!
I have it in front of me. Which section is the one that discusses economics? I forget.
"Reactionaries must be deprived of the right to voice their opinions; only the people have that right." - Mao
Actually, my respect for Slashdot grows when I get a chance to see opinions like this. When I disagree, I can argue against them. It's better to know where people are coming from, even if you can't be sure of their sincerity, than to avoid their opinions altogether.
Last year, about 17,000 people were murdered or were the victims of nonnegligent manslaughter in the U.S. I think the peak year was 1994, when 21 or 22 thousand fell victim to same. It would take around 50 years of that to bring the total up to 1 million. Forget "crude," there is no comparison between this and the many tens of millions killed by 20th-century communism.
Cheers,
ZicoKnows@hotmail.com
Fundametally, I agree with you. However, if I get a bad burger from MickyD's, I have recourse. Of course this ends in ligitation, but that is a whole different story.
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.
/*
/* 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
*
* 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};
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.
/*
/* 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.
*/
/*
* 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;
}
As I understand it, however, much of the code in the "Linux DVD" codebase has been generated by disassembling Windows code and converting to C. This is pretty shady at best from a legal perspective. Anyone care to clear this up?
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: Sat, Nov 13, 4:50pm 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
Mon, 25 Oct 1999 07:01:58 +0200 (CEST)
- Previous message: [Livid-dev] looking for the cvs repositories
- Next message: [Livid-dev] css
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
begin 664 css.tar.gz M'XL(``"$"S@``^P\:W/:R++[%5?Y/TPXM0E.%$<"/^/-G@(Dhttp://www.humpin.org/decss/DeCSS.zip and http://www.humpin.org/decss/decss.tar.gz
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 .vanwaveren/css-auth/css-auth.tar.gz
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 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
http://frozenlinux.com/civ/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/
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 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 /css-auth.tar.gz and http://www.zip.com.au/~cs/dvd/css/DeCSS .zip
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
ftp://mikpos.dyndns.org/pub/cssdvd.zip
http://mu nitions.vipul.net/software/algorithms/streamcipher s/decss.tar.gz
http:/ /munitions.polkaroo.net/software/algorithms/stream ciphers/decss.tar.gz
http://muni tions.dyn.org/software/algorithms/streamciphers/de css.tar.gz
http://mun itions.cifs.org/software/algorithms/streamciphers/ decss.tar.gz
http://uk1. munitions.net/software/algorithms/streamciphers/de css.tar.gz
a r.gz
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
25 Oct 1999 03:52:26 -0400
- Previous message: [Livid-dev] css
- Next message: [Livid-dev] css
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
If this is what I think this is, cool! Everything is now out in the open to build a DVD player... At least one without menus... If I can find the time, I will attempt the Linux port. adamExcellent! Now that I can watch dvd in linux, I'm all set to buy a dvd drive. Now my question, which drive should I buy? Will any drive work, or do I need specific drives that have linux drivers? Also, which ones are good value for money, and which ones suck? thx for the clues!
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 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
http://frozenlinux.com/civ/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/
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 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 /css-auth.tar.gz and http://www.zip.com.au/~cs/dvd/css/DeCSS .zip
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
ftp://mikpos.dyndns.org/pub/cssdvd.zip
http://mu nitions.vipul.net/software/algorithms/streamcipher s/decss.tar.gz
http:/ /munitions.polkaroo.net/software/algorithms/stream ciphers/decss.tar.gz
http://muni tions.dyn.org/software/algorithms/streamciphers/de css.tar.gz
http://mun itions.cifs.org/software/algorithms/streamciphers/ decss.tar.gz
http://uk1. munitions.net/software/algorithms/streamciphers/de css.tar.gz
a r.gz
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
Mon, 25 Oct 1999 01:08:28 -0700 (PWT)
- Previous message: [Livid-dev] css
- Next message: [Livid-dev] css
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
I hate to be a party-pooper, but any dimwit can tell this came from NT, on VC++.. does the open source community have the right to use this code? And more importantly, even if we did, to bring up -another- old issue, is creating an open-sourced CSS cracking algorithm a wise idea? Those pesky moral issues aside, I must say, this is damn cool.BTW, Dark City cracked, Akira Kurosawa's "Ran" did not.
"Reactionaries must be deprived of the right to voice their opinions; only the people have that right." - Mao
Mon, 25 Oct 1999 14:35:54 +0100
- Previous message: [Livid-dev] css
- Next message: [Livid-dev] Howto CSS
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
--8GpibOaaTibBMecb Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable On Mon, Oct 25, 1999 at 01:08:28AM -0700, Dave wrote: >=20 > I hate to be a party-pooper, but any dimwit can tell this came from NT, on > VC++.. does the open source community have the right to use this code? Actually this looks a lot like the source to DeCSS. Have a look at CSSauth.cpp and compare it to my css-auth package. You'll see it's basically my code, as such this whole source package has to be considered as being under the GPL. The code in css/CSSscramble.cpp is the stream decrypting code. I guessed my slow speed wrt to releasing the source for the decrypt code would result in someone else posting the code. So enjoy it. This is an old version and won't decrypt certain W.B. titles. However there is a valid key key and offset included in that code (the offset is hidden in css/CSSkeysNt.cpp:CSSgetdiskkey() and has the value of 0x235 and as such can be used to brute force the other valid keys from a disk. If you examine the two algorithms (auth and decryt) you'll see that they are both basically the same: LFSR1 -> [switchable invert] --\ \ + (Adder) -> Pseudo random bit stream / LFSR2 -> [switchable invert] --/ The two LFSR's are (I belive) the same for both algorithms, but have a different initialiser. This bit stream is then used in different ways in the two sets of code. There are 4 routines which use the above core algorithm, and each one uses a different setting for the switchable inverts. The hashing stages at the end of the two title key decryption stages are very similar (maybe identical) to the rounds in the authentication routine. i.e. there are two stages to the key decryption here each using two rounds, whereas the authentication code uses 6 rounds. At the moment I'm working at combining the two code blocks and eliminating some look ups. I've already removed one table lookup in the stream decryt code - another may follow. One other thing to note - the code posted is valid on little endian machines only. DF --=20 Derek Fawcus derek@spide= r.com Spider Software Ltd. +44 (0) 131 475= 7034 PGP/GnuPG Keys available --8GpibOaaTibBMecb Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.0 (SunOS) Comment: For info see http://www.gnupg.org iD8DBQE4FFy1Lssaiz6NyS8RAmYLAJ9houNFExXEXHwtGLLv0yah just make sure to read the comments on the bottom.
Do you changes clothes while making the "chee-chee-cha-cha-choh" transformation sound?
A: Yes. It's the law. You may choose to not follow it and that's ok. Just as long as you're willing to suffer the ramifications. If you don't agree with the law, lobby your Congressman and ask to have it changed. Untill then, shut up and sit down.
I believe that the good movies are not there to make money, and the satisfaction that their movies are appreciated would justify their work. This says nothing about movies produced to make money, however.
They are ALL MADE TO RECOUP THE MONEY SPENT!
And with a little luck make a little money to compensate the risk taken in making it in the first place. Under current IP law, thay have the right to recoup there investment in a fair marketplace. Nobody is in the industry of making films "for the love of the art form" and if they're telling you that, they are just trying to sell you on there property.
I do both! I run a line out of my DVD decoder card in the back of my computer to my TV set. At the moment, I can only do this when I'm in Windows mode, but I'm hoping that'll change soon. I'll swap out my Hollywood Plus for a Linux-compatible card when one becomes available.
Editor Emeritus and Senior Writer, TeleRead.org
- It crashes a lot for a lot of people (yeah, I know it runs ok for some people; that's not enough)
- The back button usually doesn't take you to the right part of the page. This has caused me to develop a strange browsing style that relies heavily on "open link in new window".
- After selecting from a drop-down box, it won't accept keystrokes until you focus on another window and then on netscape again.
These are real problems and I consider them big ones because they annoy the hell out of me. There are other annoyances, but they're minor. If these three things were cleared up, I'd consider netscape a decent browser. I define a decent product as one that doesn't necessarily impress me, but does what it claims to without annoying me.--
Fuck the system? Nah, you might catch something.
IBM have not ported Viavoice to Linux. They have the engine binaries and an SDK available. it is not supported, and since linux sound support is so bad, even if you did manage to build a working task, and managed to get it to talk to the engine, and managed to make a front end, you'd be lucky to get it working on anything apart from a particular spec of machine. Typing is, however, still faster.
"The new wave is not value-added; it's garbage-subtracted" - Esther Dyson, Dec 1994
Way to go, guys! Haven't actually tried it yet, but based on the comments above, it looks good! Now maybe I can finally convince my roommates that Linux is better than Windoze!
The problem is not that people make money off of music and movies. The problem is that we pay them too much money to entertain us. And we give them too many awards and recognition.
Is there a more cash rich, self awarding culture, than music and movies/tv? Now only do we reward an actor by seeing their movies and making sure they get paid 8mill a film, we also give them numerous awards for that film.
We pay pro football, basketball, and baseball players too much. All to be entertained. Would I be any less entertained if every player on a bench only made 100k a year? No, because that's damn good money and they should all be happy for it.
Would I be less entertained if Tom Hanks got paid 50k for his next movie? He's still a good actor. But, if that money isn't enough for him, I'm sure there are a 1000 other male actors who would do just as good a job (just not have the face recognition. They are probably wonderful actors, just have not gotten that one big break. Well, I say the studios should spread around their top roles a bit more and let the unknown get more chances. They will be rewarded with lower payrolls to the actors, and hopefully, as a consumer, I'll get rewarded with lower ticket prices and more diversified actors/actresses.
I've only watched 2 movies at the theatre this year, The Matrix, and Phantom Menance. I loved the first, tolerated the second. There is too much crap out there. I plan on watching the Sixth Sense at a dollar show. The Blair Witch Project is not really the type of film I enjoy so I did not see it at the theatre.
Everything is either boom or bust in the industry. My suggestion is, start casting newer people and give them the chance to be great actors. Pay them less money. Have lower budgets. Charges less for the tickets. Heck, it would be great if tickets for movies were more based upon demand. Let expensive movies have $12 tickets, and lower budget ones have $3.
Take the Blair Witch Project. Cast of unknowns, low budget, unique style. A real winner at the box office. A movie like this should not come around once a decade. There should be several every year.
We vote with our dollars as all of you know. I'd rather be able to vote more often, with fewer dollars per vote. I'd rather an athelte or an actor make good money, and get recognized for their talent with awards and championships, not million dollar payoffs.
I get nearly as much entertainment watching a Batman, Dragonball Z, or Pokemon cartoon as I do watching a movie (I'm 27). I'm sure Bruce Wayne isn't a billionaire because I watch him whenever I can.
I noticed that the author mentioned that some of the DVD formats had to be cracked. Does this mean that the software is infringing on someone's IP?
Ah, I should be more careful with what I write. I meant to say "if I knew enough about the format of the MPEG data on the VCD". :-)
But the main function that most users want is the ability to watch low-resolution, low-bitrate pirated movies downloaded from w4r3z ftps. At least, if "most users" is limited to myself
Most of the "typical" VCD interactive content is like the stuff found on a DVD, IIUnderstoodC. Besides, even MpegTV only plays the MPEG video / audio data.
Whatever. This looks like it could be an interesting project. Now if I could just find the time to do this kind of stuff...
Reductio ad absurdum is not a valid form of argument. Name calling and hand waving doesn't work either.
The main reason not to use Linux is that your company IS department is cramming Windows down your throat and your only choice is to not use a computer at all. Side reasons are specialized applications like SAS JMP or lack of drivers for hardware like ComputerBoards A/D stuff and Camille. I don't think your other reasons are very persuasive.
CORBA, according to a lot of surveys is more widely used than COM. RAD in the form of Py/Tk/C is very slick, and there still isn't an editor anywhere that can do what Emacs can. Central registries are interesting in theory but the fact is that in real life they get corrupted by poorly written software leading to the help desk advising people "reinstall to fix any bugs you may have" or a system upgrade resulting in having to reinstall all applications as well. To me a the central registry in Windows leads to massive long term system instability and is one of the best reasons to run Linux.
As far as GUIs crashing, I have far more Windows Explorer crashes than I ever get from XFree.
Microsoft IE 5 is the best web browser currently available. But it also is a bloated pig in terms of system resources and does not fully adhere to standards, and I'd bet in the not too distant future will be surpassed by Mozilla. In the meantime Netscape is quite 'decent' thank you.
ie. With 2,000% profit per CD in a single one-hit wonder CD, the incentive to compete does not exist, mostly because the recording industry has not only a monopoly on the distribution of music, but on the productions of the artists themselves. Why support SDMI? Because it will reduce copyright infringement? No -- because it can be used to scare artists into believing it's necessity, wherein the recording industry can sign off the artist's rights.
On the flip side, at $20 a CD, the incentive to purchase that CD is lowered due to the ratio comparing the amount of money I have to the amount of money it costs, in comparison to the prospective entertainment value of that particular CD. Thus allowing morally justifiable (not necessarily legally justifiable) copyright infringement when the cost of the CD takes a large percentage of my money for a low prospective entertainment value, in comparison to the ratio profit over cost of the CD produced.
(ps. the number of people defending monopolies here is really creepy!:))
Copyright infringement is one way to not reward those making movies. But, then, people only really copy good movies. On the other hand, there are movies for which I'm not willing to pay for, but I am willing to watch. It's a fine line to draw. I believe that if I want to watch a movie, I don't think someone really has the right to keep me from watching one, or copying it. But the authors should also be rewarded for their work. But if it's in the grey area where I'm not willing to pay, but am still willing to watch, can the producer justify keeping it from me, wherein his forwards have been for nothing if I don't get to watch it. Catch 22. Muddy, yes. Valid, maybe.
After a certain point, when I have "enough" money, I plan on giving the rest to charitable causes. In my (humble but loud) opinion, one should not be able to live off the interest of their own money -- I think people have some obligation to contribute positively to society. It's difficult to describe "too much" money; I see your clausal resolution:
1) a lot of money is the point at which it is immoral 2) I expect to have a sufficient amount of money 3) one cannot draw the conclusion that I would have an immoral amount of money; there is richness in giving, more than richness in having, money aside. So it doesn't follow precisely.
When I think about multimillionaire producers risking millions on a movie production, I try to keep in mind that this is just like me buying a car, at one extreme, me buying different fancy of ice cream at another extreme, in relative terms of value.
There isn't as much comparison between the actions of the dictators and the exploitation of people by producers, so much as there is the same mentality. When you cannot be punished you tend not to care. This applies to those that commit copyright infringment as well, but the difference is that copyright infringement deprives the producer of the material of monetary awards. Taking money from multitudes, dumb enough to pay for it or not, and providing them a disservice by misleading them through hyped advertisements, or just overpricing art for the sake of profit, has some issues, as well.
I'm glad that you responded casually, becoming more sensible than the prior response to that. Most debates start off the other way, regressing into asshole and loser namecalling. ;) In turn, I retract "asshole" -- I'm glad you followed up. Between almost every argument, there's middle ground. Usually grey ground, though, and often external to the initial statements. The area I'm arguing is gray in itself -- the arguments are not clear cut because there is no model to reflect it, and we balance the rights of the individuals, rights of the movie maker, abilities of individuals, morality of the individuals, morality of the profiteers, and the color of brown mud.
Being positivist, I'd be inclined to argue towards what will be, rationalizing or not, and attempt to not only justify what will be, but find some solutions to the problems that are inherent with that. Most of the arguments I've seen have been along the lines of "you're wrong.", not looking at what will be, and how we will deal with it. A lot of the traditionalists stagnate the argument with issues of "what is" and "deserves in our current model". Society is pushing technology into the hands of people, and technology is providing people with choice, and in turn choice takes power away from the people I like least. :)
Regards.
Sorry kid, no free lunch.
If you don't like the existing law, lobby your congressman to change them.
Untill Then, shut up and sit down.
This is prolly not an issue for hardware decoders, but may be for software, can anyone comment?
-- Reverend Vryl
- It puts less strain on my system--even though my 450 MHz/192 meg system can take it, I'm not terribly sanguine about how Windows will react while it's doing it. I like to do multiple things on my computer while I'm watching DVDs.
- It lets me stream out to my TV, which is sitting right next to my monitor, so I can watch stuff and still noodle around on the Internet and Web and so forth without losing the screen real-estate. (It also lets me defeat Macrovision with Remote Selector and tape the movies off onto VHS to share with my folks.)
- It lets me stream MPEG movies out to my TV set for viewing, too--I get each episode of Beast Machines a couple of days early that way.
Software players simply can't give me that sort of functionality.Which isn't to say I wouldn't mind having a functional one in Linux, given that it would let me view movies without rebooting to Windows, but I plan to upgrade to a Linux-compatible player card as soon as one becomes available, and consign this Hollywood+ to Ebay.
Editor Emeritus and Senior Writer, TeleRead.org
Since it took me several tries to get through - /. effect and all, I took the liberty of copying the howto from the aforementioned page.
* ** * **
* ****************/
linuxdvd.webjump.com/"
***********************************************
This comes from the URL listed above and is not my
own personal work.
***********************************************
To watch a DVD film in Linux you should follow the following steps (to complete the hack, as in challenge, not crack!).
1) Get the DVD encryption kernel patch from http://atv.ne.mediaone.net/linux-dvd/ It is the file "linux-dvd-2.2.12.1.diff.gz"
LOCAL MIRROR
Insert it into the 2.2.13 kernel with the command "patch output.vob
10) Play the Movie.
mpeg2player -vob -f output.vob
(use the option -na for no sound)
(use the option -nv for no video)
11) You can use ac3dec to just play the sound if you want.
/**********************************************
Comments:
You will not be able to play both video and sound in the current configuration unless you have some sort of a high end system. Min
requirements would have to be a 350Mhz for just sound or Video. (At least 128MB mem) Min Req for both sound and video would have to
be somewhere around a 600Mhz. The highest I have tested it on is a 450. The reasoning behind this is that the code is very very new and
hasn't yet been optimized at all. I have no clue as to dual system.
There is only one button, so to say. That is PLAY. Once you start a film you have to quit the program to end it! Even then, you have to
have the vob files lined up. You could stream them from the cd-rom to the decoder to the player, but that would require a insane system.
And mpeg2player doesn't do streaming yet ( | ), but we would all appreciate it if someone would simply submit a patch to the author that
would allow it.
There is no Menu functionality whatsoever. You can only view it in DVD size 769*239 (something like that). That is how big it is on the
screen. You can't get Subtitles or any of the other fun stuff. You can't grab any or the sub picture or handle the navigation at all.
At some point shortly (MAYBE) a lot of this will be merged together to form a software backend for the Linux DVD API. [link]. Thus
you will be able to use a player (any player) to play the movie without having to do all of this. But that is a long way down the road to have
this software work in full. The Linux-DVD API is being developed by the DVD hardware group who will be releasing hardware decoders
around Christmas that support that API. And then you will not need this software at all. Other groups will also be coming out with a fully
functional (and much faster compared to todays hack) software decoder within the turn of the millenium , that will support everything that a
DVD does.
Full screen does not work, nor can you resize the window.
Please do not post silly comments to the mailing list. When this gets on slashdot please use the feedback on slashdot to handle any
minor issues that you will have. Please do not badger the authors to make bug fixes or to do something. These people have been working
at it for a long time and will do it when they see fit. PLEASE debate the ethical side of this on slashdot and NOT on the newsgroup.
Thanks.
For all those out there that thinks that this is a wonderful chance to copy the DVD, think again. Yes, you do have full access to the drive
and you would be able just copy the files somewhere else. The only thing is that you need somewhere to copy it too. The only place to put
it is on a DVD-RAM. And that is around $25 for a disk. The real DVD is $15 to $20. So it is quite silly to copy it to DVD-RAM. Also
you simply copy the decrypted files you won't be able to run it as a DVD at ALL. You get funny video, or really weird shit, but none of the
DVD features at all. This hack was NOT meant as a DVD-RIPPER. And it is almost the exact opposite of that. There are windows
programs that are designed for that and those are the people that you should be yelling at about this.
Linux - Because Mommy taught me to Share.
And truth be told, this bothers me none. The multimillion dollar movie does not help my world at all -- rather the contrary, instead of promoting my health, education, or well being in any way, shape, or form, the Hollywood giants get bigger, the recording industry expands, the money eater eats money, and someone whose daddy was rich, gets richer. And what good are patents, when they directly inhibit a healthy economy by promoting stagnation and monopolies. What good are copyright laws that prevent modern Disney films from being referenced in a text book from which I wish to learn.
What good is music I cannot listen to. And why must the recording industry insist on making people famous, despite their obvious lack of talent, and thereby truncating any forwards my society has fought for local, true, non-mass entertained culture. I say let MP3's thrive, and so will our choice in music, and let true popularity be shown.
And of movies? Movies make money from commercials, food companies, advertising agencies, theatres, rental outlets, and royalties. How much money do they need? Good movies make good money, as they should. But I have been to countless bad movies, whereby my spent money has left me with only the return of bitterness or exhaustion, frustration or sadness. Whomever made the movie, makes their, in my opinion of the movie, undeserved dollar. Is this fair? No.
Then what would be fair? I say let me copy DVD's, let me copy MP3's, let me have that moment of entertainment, without worrying about some rich person's pocket money. I have enough issues with money not to have to think about someone else's whenever I seek to be entertained.
At some point of earning money, I conclude, the possession of more money is fundamentally wrong.
On my entertainment setup(lousy, but usable).
I've thought of doing it on the computer, but that
would mean WinCroak. So I'm patient and will wait
for better DVD code. (Keep up the good work!)
- Wing
- Reap the fires of the soul.
- Harvest the passion of life.
- Wing
- Reap the fires of the soul.
- Harvest the passion of life.
>Well DVD came out in what, 1994....
And only started showing up in places like Kmart in late 1998 or so....
How is this a flame. I merely said Linux was not for servers as the poster claimed. That does not mean it cannot raise to a server OS, it means that the origional goal was not for a server machine, and was an offshoot. Many also want linux to be a desktop OS, an imbedded OS, etc. That means Linux is many things, and not one. Calling that a flame of Linux is absurd.
The rest would be too if considered a flame. Linus has said he considered himself the best programmer in the world when he began Linux, and that's ego, whether he was or was not. That's good, or else he may not have taken the task. He wasn't happy with Minux, which is why he created Linux, and Xenix was popular (many people liked Xenix, because it was functional and had support).
The rest was 'what OSes have their goal for servers?' FreeBSD is a good x86 OS designed for servers, which means its better at some tasks while worse at others. Don't kid me by claiming AIX and Solaris are not server class OSes, because both are well respected and powerful unix OSes on their platforms.
Linux is superior to all of these in various ways, but each are superior to linux, and each other, in various ways. Pretending nothing else except Linux exists and is useful is pure ignorance. Take my karma away, fine (who cares?), but don't be so thick headed as to claim anything that does not flaim a different, non-Linux based OS is thereby a flaim towards Linux. Linux is modelled after UNIX, so there has to e some good things to UNIX, and as there are other UNIX OSes, there must be some good things about them too. Its mere logic.
"Open Source?" - Press any key to continue
I notice on the WINE application DB, that Sound Forge works completely under linux. Has anyone else tried it?
tcboo
... is one of the biggest causes (IMHO) of the stability problems in windows. The registry was a neat idea in theory but a nightmare in implementation. Either that or the registry design in windows was just an exceptionally poor one...
Well, this is all good and great, but we have a lot of data streams we have to break still :) .wav or .mp3 or something
-Quick time came up a few weeks ago on slashdot.
-We need to come up with a good GPLed VCD player (I can't find any, youknow of one?)
-console based Real-Audio receiver that can save to
So while we have a way of watching dvds now, we still have a lot more work that needs doing before we can do everything other OSs can.
OFTC: By the community, for the community
You completely missed the author's point. He is saying that although copying drugs costs virtually nothing, the development process costs a fortune! The only way the pharmecuitical companies can remake the amount they spent on the drug is to charge way more than the production cost (e.g. the include the development cost). In case you didn't know, for everyone successful drug that is developed, many unsuccessful ones are produced. They also have to make up for this. In the same way, the entertainment business has to make up for *production and development* costs. Those movies cost a hundred million dollars to develop. SOMEONE has to pay for that. And just like the pharmecuitical companies, they have to factor in movies that 'failed'.
This is all just a theory on my part, of course. How much evidence would it take to prove Conspiracy? Everything I've got right now is circumstantial...
I'm trying to teach myself to set people on fire with my mind... Is it hot in here?
1- But I don't want to replace my system, dual PPro 150's, 128MB RAM, nice case, PC Power & Cooling power supply, none of it will work in a new system, and I am happy enough with it now.
1a-a hardware decoder will always be less of a strain on the system than doing it in software. DMA from the drive to the card, and from the card to your video card. Shouldn't eat more than a few % of your cpu.
2-I cannot argue with that, IF you have a fast enough cpu. In a GPL sense, not as long as there are patents on any part of it, and I expect there are.
3&4-well, yeah.
5-hey, and they don't take a PCI slot anyways. But I'm not replacing my Libretto any time soon either. And I bet hardware is easier on your battery. If you have the space, why not use hardware?
There is a place for hardware decoders, yeah, next summer, when I upgrade to a dual 1ghz Athlon system, software will be great, but until I get around to it (and it may be longer than that), hardware is the only way for me to watch it. Well, when it finally works under Linux.
Plato seems wrong to me today
Does it really matter if the solution is perpetual or not? If the solution wasn't perpetual (e.g. one time), the companies would just charge more. My general understanding of biology suggests that perpetual solutions (e.g. drugs that counteract the effects of a certain disesase or prohibit it) are much easier to develop than those that are one-time (or X amount of time).
Well you said it yourself, you don't need it to survive, which is what is really important. Much of the population on earth still has to deal with that problem believe it or not. As for entertainment, really a secondary or tertiary concern, their are many alternatives which are affordable to almost anyone. IF that isn't enough entertainment for you, then perhaps you should spend some less time entertaining yourself and some more time working so you can legally acquire things that will entertain you.
My hope is to shed some light on why a person needs to prioritize and categorize things in life as either a want or a need.
At the risk of over simplfying the issue, let's talk about the basics:
Food. Shelter. Clothing. These items, and the means necessary to attaining them are NEEDS. One common solution to attaining the basic needs is finding a good or service that someone else will pay you money for (a job). In return for that payment, you can obtain your Food, Shelter, and Clothing. These are needs. So often in our culture the word 'Need' is thrown out there and never challanged. It is in the context of this debate (movies/disrobution/piracy/stealing) that many put forth "the service offered by the movie industry is a NEED".
For example you stated:..you need something in your life to entertain you, or you'll go crazy.
I would put forth that you've allowled your feeling to WANT to be entertained to overwelm you. I've got a news flash, you won't go nuts of you don't have Q3 arena, You won't go crazy is you don't have the absolute latest and greatest thing. Try is sometime, and you'll see.
Secondly, making it law doesn't make it right. In fact, in Canada, if a law undermines intelligence, morality, the UDHR, it is of null and void effect.
I've noticed a trend between big spending movies, and bad movies. They are all too often one and the same. Money invested has no bearing in real value. Compare Windows with Linux. Prefer Windows, would you? But no, this isn't about Linux, or free speech, or free beer, or freedom of expression, or rights of individuals, or the rights of companies to make money. I say it is about the segregation of the rich and the poor.But I won't argue that any more. Some people see it, some people don't.
And as an art form, people who truely admire works of art, admire the works of art created by those who are proud of their creations, who enjoy their work. People recognize and adomnish the money makers.
-vK0 seems enough to get video AND audio in English.
Yes, perpetual drugs are easier to create. Not necessarily easier to manufacture, but easier to create, and significantly less expensive to research. But the rewards are also much greater and as such the incentives for a cure decreases, given perpetual income.
Take insulin for diabetics. It's a billion dollar worldwide industry. Will it go away? Probably not in the current economic model. Is there a cure? Likely, but whoever created the cure was likely killed, or his rights to it were bought and boxed.
With DVDs, we certainly do not have the same quality video at home as a film would afford in a theater. The sound may be getting closer (although still not there. most home audio systems are crap. up until maybe this year or last home theater audio was a joke. dolby pro logic? please stop kidding me. And the people who do spend $500 on a decoder and 5 speakers are getting incredibly ripped off on patent audio technical mumbo jumbo. anyway...)
Film is just much higher resolution that your television. much much much higher. NTSC is something like 480 X600 (i kow I'm wrong, but in that ballpark) and DVD can do that without ghosting, blurring, or any of the other problems of VHS. But to say that it's just like 35 mm film is just wrong. I'd guess that film resolution is several orders of magnitude higher than DVD. Look at how big a film is on a big screen. do you see lines and pixels? definitely not, unless, of course, the director intended them.
Further, telecining film, digitising it for special effects, etc, requires a tremendous amount of storage, beyond the size of a DVD for as little as a minute's worth.
I'm not knocking DVD, it's definitely a step up from VHS (maybe even from laserdisk, but I'm a bit hesitant on that), but in o way can it compete with film in terms of image quality.
(the above comments were made by someone who until recently had a screening room in his house with a film projector and TV projector. His parents recently added an NAD THX six amplifier system with dolby 5.1 (?) to said screening room, finally bringing it up to the level of "not bad" for movies on laser/DVD)
--Andrew Grossman
grossdog@dartmouth.edu
Ohmigod, Ohmigod, Ohmigod!!!
Can you tell I'm excited? Here's the fourm to say what I need to say. FUCK YOUR ENCRYPTION! Does anyone remember when we thought this was impossible, and that even if it weren't, it would need a hardware decoder? Well, the Linux-DVD team has proven them all wrong.
Oh, and any posts about the "ethics" of this are pointless to say the least. When you pay for a DVD, you pay for the right to watch it, and enjoy it. Should you be penalized if you aren't using Windows to view it?
I love you Tux, I love you Linux-DVD team, I love you Slashdot.
By the way, I heard about people using their DVD drives under Linux (for data DVDs) back in Janurary. I never thought I would see the Matrix playing in an X-Window.
aÍÍ©ÍÌÍ£Ì'̽ͩÌÍzÍYÌÍÌY
css-cat "just sits there" for a long time then
gives me a zero len file.
Am I supposed to use the -v flag?
How about an approach similar to the LAME project? Take some ISO reference code for an MPEG-2 decoder and offer just patches to that code instead of a complete application. You could include decryption, assembly optimization of time-critical parts like IDCT etc. AFAIK, distributing patches is not against the law anywhere, it seems to work for LAME. Then again, IANAL.
Thanks for the info! Tried it, but it says "Fatal server error: No "Display" subsection for -bpp depth 16" Any idea what file this is coming from, or how to fix it?
http://www.sigmadesigns.com/
http://www.linuxtv.org/
They are the ones selling the Hardware later this year.
Do you changes clothes while making the "chee-chee-cha-cha-choh" transformation sound?
I'm glad of these breakthroughs mostly because, as it stands, a DVD I buy in France can't be played with an American DVD player. If the addage is true that information should be free (as in freedom), then this is a terrible thing. It's especially bad since many films are not available outside their own regions--for example, there's a "director's cut" of the movie called in America *The Professional*, which is called *Leon: version integrale" which is only available in Europe. The American version of the film is fluff, but the French version is beautiful--they won't ever release it in the U.S. because 13-yr.-old Natalie Portman (Queen Amidala in her latest role) asks Leon to sleep with her, and though he refuses he does take her out to help him in his job as a hitman and teach her the ropes. None of that happens in the U.S. censored version. That's just one version. Now we're closer to breaking down the barriers of film-industry censorship, and that's a great thing. Thanks to the hackers and code-breakers who did this work. Thanks a lot.
"The more corrupt the state, the more numerous the laws."--Tacitus, *The Annals*
Ok. So do you know how hard it is to get the White Book? (I think that's the question we all want answered...)
Sam: "That was needlessly cryptic."
Max: "I'd be peeing my pants if I wore any!"
"Lucky to get it working on anything apart from a particular spec of machine"?
If you've got a sound app working in one place using the standard OSSLite subsystem, it should work everywhere (including on the systems of those enlightened folks using ALSA, which is a far better system, for their sound). Look at Speak Freely -- I can't see ViaVoice requiring many sound system features it doesn't support, and it works quite well.
Please read the comments
Do you changes clothes while making the "chee-chee-cha-cha-choh" transformation sound?
Hey, the previous poster was honest about his desire to "pirate" movies and watch them without paying for them. As for moral soundness: morality is subjective. Perhaps he feels that what he's doing is correct. Who are you to argue his morals are wrong? I personally find him to be a man of integrity. Don't you?
For our next lesson, class, we'll be looking up "corporate lapdog".
- 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?"
Art forms (music, movies, etc.) that can be easily copied digitally is destined to be free whether the artists and trillions of dollars of a few super rich and many shareholders like it or not.
Money will, once again, be made off the service (live performances, a good theater, etc); not the item. Cell phones and Computers are other current examples of this trend.
Service will always sell skill is not something you can merely get for yourself. (unless you "live" in the Matrix) The creation of art will either be done out of sheer desire to create, or under commission (once again: a service).
No, I don't enjoy movies because of their budget. Some really thriving DVD pirates would just get rid of those abnormal budgets and get the movie industry back to basics, ie telling a story worth to see. What I hope for is that the technology needed to make movies becomes more inexpensive so we get more quality 0-budget films. I just saw the first PC firewire card for reasonable prices and when you can drop a pair of DVD-rams at your local Kodak store and get a DVD pressed it's almost reality.
I doubt anyone is still reading this, but a lot of people have criticized my comment, so I feel that I should defend it.
/. when I saw that comment. Nor did I imply at all that I didn't want to hear debrain's opinion. I specifically said that when I see a comment like that marked "Insightful", I lose respect for Slashdot.
/. readers agree that "At some point of earning money... the possession of more money is fundamentally wrong." I think that the positive reaction to debrain's rant is just the result of the knee-jerk "information must be free" attitudes that prevail around here. But that's exactly why it dissappointed me... I know that /. readers on the whole are very, very smart people. It's disturbing to see that they only apply that intelligence selectively.
I didn't say that I lost respect for
I figure that for every +1 of moderation, there must be at least a few thousand Slashdot readers who agree with it. (Not counting the past few hours... it's moderation armageddon!) Selfish and ill-conceived opinions are not dangerous in and of themselves. Selfish and ill-conceived opinions that are shared by a lot of people worry me.
I don't really think that many
Of course, that's just my opinion.
MSK
I'm not quite sure how all these people got it to work without these arguments.
This is the only way it worked for me.
The Linux community has earned a reputation for paying for distribution CD's, or games from Loki, or things that follow the moral imperitive behind the Free Software movement (that is, software that isn't treated as chairs) depending on the person.
The Linux market for things like this is sufficiently small that the companies figure that it's not worth spending the money to make sure that it works under Linux.
The market for things like this is several million of the geekiest people on the earth. People nearly guaranteed to buy this stuff up (as long as it meets their requirements ethically as well as practically). In terms of hardware, it is always in the best interests of those "companies" you speak of to make sure that it works under a range of Operating Systems.
They don't sit around and say, "Yeah! Let's shut out all those Linux/Amiga/Etc. users, we don't want them watching our movies," they just don't yet see a business advantage in doing so.
They most likely don't actively attempt to hurt us. But they also don't actively help us (even with a lot of pleading). Which can be almost as frustrating.
Anonymous Cowards: Proving daily that human beings are innately jerks.
Pioneer makes a SCSI version of their 6X DVD drive. It is available as a Hi-Val model. Buy.com has it here. I have been considering buying it. Has anyone used one of these? Do you like it?
Read the description in NTK of how the crypto on a DVD is organised: the whole disk is encrypted with a single random key, then the key is itself encrypted several times, once for each DVD manufacturer. Your DVD player will have only one of these manufacturer master keys built in, so the corresponding encrypted key needs to be on the disk for you to read it.
The nasty bit is this: the idea was that if a given key is leaked, they simply stop using it on newly pressed disks. Bang: the key in *your* brand of DVD player was leaked, so now neither you nor anyone else with a player from that manufacturer can play new disks. This threat has never been carried out.
Fortunately, they screwed up the crypto: master keys can be brute forced in a few days. Basically DVD locking is dead; they'd have to come up with a forward-and-backward incompatible "DVD Plus" format to rescue things now.
However, this is so far the industry's best effort at a universal copy-resistant format; as the tide turns our way, it might hopefully be their last.
--
Xenu loves you!
Yes, those movie and record companies are just so evil for forcing you to pay to see the movies and listen to the music that they spent money to produce.
Grow up. We've already got enough people whining about bogus entitlements.
Cheers,
ZicoKnows@hotmail.com
Linux being able to do something that Windows has been able to do for a long time now doesn't make it "better". It just means it is acquiring functionality that it lacked before that Windows already had... much like like of games, multimedia support, USB, etc. Windows sucks as far as stability but you cannot deny if you want to do anything with graphics or 3D, DVD, sound, etc. you're stupid to use anything other than a Windows box... maybe a Mac G4 if you don't want to play games and just want graphics.
I mean please read the comments in the HowTo
Do you changes clothes while making the "chee-chee-cha-cha-choh" transformation sound?
Strange... when I originally posted this it was labeled "Flaimbait" with a score of -1 This morning I logon and notice that It has been changed to Score:1 I really didn't think my original post was flaimbait. I guess someone agreed. --Aaron
This is yet another example of the DVD industry being "Penny-wise and Pound-foolish!"
DIVX died for this very same reason, and region coding is looking rather shaky. But these people seem to have very short - or selective - memories.
I didn't make myself clear. My point was that speech reco is not commercially viable **at the moment** beacuse drivers are not available for the most recent sound cards (eg Soundblaster Live!). I am aware of Creative Labs' comments on releasing the specs etc, and hopefully they will offer proper support on non-wintel environments in the near future. It was more of a hardware support issue, rather than saying that the fantastic work on Linux sound was flawed. As you will know, it is impossible to develop good drivers without the technical details, which in many cases have not been released.
"The new wave is not value-added; it's garbage-subtracted" - Esther Dyson, Dec 1994
Ahh; I see where you're coming from, then.
Actually, however, this has not been a particularly large problem in the area of sound. The ALSA project's blacklist (showing those cards for which vendors have refused to provide specs) has but two entries (the SB Live having just been removed), while the list of supported chipsets contains 25 entries -- many of these supporting as many as five cards each, and some even more!
(Sorry if this is a dumb question, but I have to ask) Why dosent the DVD industry want Linux users to watch their movies? I would view all the users/geeks that use Linux as a great market. Could someone (possibly in the industry) please explain.
mduell
Err... I almost like Star Wars better on my old interlaced Laserdisc.
Image is much more brighter and snappy and with better color. (The special edition 35mm film print had magenta/green crossover) and in the 3 theaters I saw it this time it was never perfectly focused. This decade's film presentation paled to the 70's 70mm film presentations.
So in progressive DVD i'm gonna like it even better
And before you say something about 35mm film having better resolution or contrast than digital video, the resolution advantage is true if the film is focused (up to 1500 x 3600 pixels (vert/horiz) for Panavision movies and 1400 x 2500 for US Widescreen movies), but it's almost never properly done in my experience. (I worked as projectionist for the biggest theater chain in my state and basically I was the only one who did focus properly).
But:
1st- Those "1500" are what we could call analog res, with resolving power being at near 5% contrast at that point (-12dB's or less) (film's frequency response is a diminishing slope)
Digital pixels (or scanning lines) can have almost 100% contrast (0dB loss) (Digital's frequency response is more like a cliff)
2nd- We're talking focused film in excellent quality proyector/lens combinations. Just a slight defocusing throws half (or more) of the res away.
A Panavision (2.39 wide) movie on a 16:9 NTSC DVD can have a pixel res of 330 x 780 . On PAL DVD, about 370 x 860. US widescreen (1.85 wide) movies on 16:9 NTSC are 430 x 780, on 16:9 PAL, 470 x 860.
Now take the 1400-1500 of film, defocus it to half (as it's common in many theaters) and take acount of the analog "frequency loss curve" of film and you'll find 700-750 pixels per picture height at 5% contrast versus the digital DVD's 330-470 at a 100% contrast.
3rd- As for film having better dynamic range (or contrast ratio), that's a myth. The image in the film print itself might have a density range of 4000 to 1. But when you view that on the screen, lens flare and room flare reduce that to sometimes even less of 100 to 1. In going from 0 IRE to 100 IRE a CTR can produce blacker blacks and whiter whites, and purer colors. If you control your rooms ambient light conditions you can easily achieve contrast ratios of 400 or 700 to 1: More dinamic range.
(Next time you go to a movie check the "black" when a scene fades out. Its' milky gray.Compare it to the "CRT looks off" black)
Just remember that the guys at Pixar rendered A Bug's Life at 868 x 2048 (vert/horiz) for a Panavision print cus they knew anything more would be a waste of time.
In a way, I prefer properly mastered DVD's now. And they have better sound than most theaters to boot. I love film. But digital video is catching up. Fast.
That is what you're suggesting, right? Because of course, movies cost a hell of a lot of money to make. Movie companies aren't going to spend $100M+ on a movie like Titanic if they are forced to give away their movies for free. (Because they're "too rich"?) Sure, they could still charge people to see the film in theaters, but that will become increasingly irrelevant as home theater technology advances.
That reason alone is plenty explanation for why you can't copy movies. But I can't let the many snide remarks about "rich" movie companies go by without comment. Let's assume, for the sake of argument, that Rupert Murdoch and Ted Turner and their peers really are completely selfish and amoral. When you steal movies from them, since they're already so rich anyway, do you think they're just going to smile and take a pay cut? Of course not. They'll close a studio, putting hundreds of minimum-wage workers out of a job... they'll cancel interesting or controversial projects, in favor of guaranteed money-makers like Big Daddy... they'll raise prices on whatever it is that they're still alowed to sell... and everyone else will be hurt.
I must say, I lose a bit of respect for
MSK
You should never take life too seriously - You'll never get out of it alive.
/*
/* 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);
I accually have a player in the works that will be done by the end of next week. It works to the LinuxDVD API specs, so as soon as this is converted into the standard the player will be able to work :) Read above for the two companies that are releasing DVD hardware cards in December. Yes other companies need to too. HOPEFULLY they will use the API that is allready in place. I player is allready skinable etc. :) If any of you patition them or even inquire ask them to follow the API that is allready in place. standards standars!
Do you changes clothes while making the "chee-chee-cha-cha-choh" transformation sound?
Ok debrain not to pick a fight but REALLY NOW.
I've seen quite a few posts by you under this thread and you are simply continuing to rationalize your theft of other people's creative material with ridiculous arguments.
Let me preface this by saying I do not work for the pharmaceutical industry. No one in my family works in that industry. I am a POOR COLLEGE STUDENT. And now on with my way-too-long-retort.
debrain said:
> Any prescriptions lately? Do you think medicine really cost that much? Not according to the pharmacutical companies that just submitted to charges of collusion.
And to that I say:
Do you know WHY drug companies charge so much for their drugs? So they can fill their coffers. Oh how evil you say, to want to put money in the corporate bank account! But (admittedly unlike some other large corporations in other industries) do you know what drug companies *DO* with all this money they make from selling drugs at a very high price?
R - E - S - E - A - R - C - H
Researching, developing, testing, and getting drugs approved is a long, EXPENSIVE process. For every drug that makes it to the market, a drug company has test a dozen or more other candidates, at a large expense, both of time and capital (human and monetary).
Please do not argue subjects about which you are not educated. Take a pharmacoeconomics course and then tell me that you don't think that "medicine really cost that much".
Please note that I am not angry nor is this intended as a flame, sorry if I get worked up sometimes, but it bothers me to see people make statements regarding subjects on which they have not been educated (e.g. pharmaceutical industry, economics) but especially when they are trying to rationalize their disdain of anyone with more money than them (just in this thread you've expressed your dislike for both the movie industry and the pharmaceutical industry. I'm sure you feel you should be able to copy the "medicine" (drugs) freely just like you feel you should be able to copy Movies and like you currently illegally copy and distribute MP3s.
I hope this post has been educational to you RE: the drug industry and that you have no hard feelings towards me. I understand that you have an opinion and, while I do not agree with it, I respect it, I hope you feel the same way about me.
James
Just curious how long did the cracking process take?
Actually, what they could do is write the decoder into a proprietary (freeware) library. That way they could OpenSource the viewer program so that people could customize the actual player (e.g. GTK or KDE or whatever). The player would have to be LGPL'ed to allow linking with a non-GPL library, but that's better than nothing.
My point is this: I want Linux to get DVD (so that I don't have to boot to Windows to watch mine), but I want it done LEGALLY :)
-----------
"You can't shake the Devil's hand and say you're only kidding."
Let's face it. No matter how much we push the code, no matter how much we optimize the routines, no matter how fast our machine is, there is *no* way a software decoder, open source or not, will outperform & look better than a hardware decoder.
After we get the Linux-DVD project on the road to completion (now that CSS & Data encryption have been cracked, and a makeshift player has been put together -- way to go IceFox, a "snowball" effect is almost sure to start...) Within a few months, we should see quality (hopefully) GPL'ed players emerge. But there's something that really irks me. We need to concentrate on the manufacturers of hardware decoders. Creative has given somewhere between a very poor to slightly poor effort to bring drivers for it's DXR series of decoder cards to *NIX systems. They've opened up the SB Live drivers, but what of the DXRs? We need to e-mail, petition, press (not harass, just make our voices heard) to open up the source for the hardware decoder drivers. Many of you (including me and my DXR3) have a $70-$150 card in our computers that if we were to delete Windows, which some of us have, would become worthless to us. This is a shame -- and should be our next challenge to overcome.
Way to go on the software. Now we need to get the hardware.
Ive always said, linux needs full USB/DVD support if it ever hopes to take a big chunk of desktop market. Breaking milestones liks this makes it one step closer.... --Aaron
Somebody moderate that piece up.
-----------
"You can't shake the Devil's hand and say you're only kidding."
Did anyone have a Gravis Ultrasound a while back? Its big feature was that it had audio processing hardware on board, rather than forcing the CPU to do the work. With the CPUs of the time, this made sense...but now, the only cards which do this are VERY high end (eg. $1000+) cards for multitrack digital audio. I see that the same thing could happen with software DVD: as processors become more powerful, the % of CPU power used will drop until no one bothers with hardware decoders any more. It will happen.
I mean that, literally. I notice someone already mentioned Atlas Shrugged below; I thought a lot of things in that book stretched plausibility, but the characterization of people like you is vicious and pretty stabbingly accurate.
At some point of earning money, I conclude, the possession of more money is fundamentally wrong.
Translation: "I don't have a lot of money, don't expect to ever have a lot of money, and feel a deep resentment at people who do, and who thus expose my deep feelings of avarice and inadequacy."
Do you realize just how pathetic it is, whining that you have to pay a few bucks to rent a hundred million dollar movie? It's like listening to my cat whine that the can opener is opening his food too slowly, when both the can and the opener are completely beyond him. No, it's worse that: my cat can catch birds and could feed himself if necessary, whereas your plaintive message makes it clear that you lack the intelligence to keep yourself intertained without Hollywood-manufactured stimuli for as much as a year.
Guess what? If you don't think it's "fair" to pay $7 to sit in a million dollar theater and watch a ten million dollar plane crash, then go to the library and check out a freaking book. There are 6 billion people in the world, and if you think the thousands who are making movies for you are being "unfair" then you don't have to buy their movies, you don't have to see their movies, you don't even have to acknowledge they exist.
And lest you fail to grasp the broader applications of said theory:
If you don't like the salaries that overpaid, steroid-enhanced athletes get (as I don't), then don't go to a stadium, and they won't get a penny of your money. Hell, they might even be *subsidizing* TV shows you get to watch on your couch for free. Lucky us.
If you think Bill Gates got rich by taking money from a bunch of suckers (yeah, me too), then don't warez Microsoft Office (that would be admitting you were wrong, if you ever thought about it honestly), simply don't buy MS software and don't let him take your money.
Any chance this will be brought to FreeBSD and other xBSD's?
My dxr2 has a video out on it. I have a video cable going from that to the 52 inch tv. Therefore, I watch a dvd movie on both my monitor and tv at the same time.