To: DiViT who wrote (25825 ) 11/30/1997 6:37:00 AM From: Carnac Read Replies (1) | Respond to of 50808
Below is the original SoftDVD crack message....Originally it was posted in alt.cracks, isn't there anymore but I suppose if someone asked there it would get reposted rather quick. BTW: Reportedly it works if you have the right versions of SoftDVD. yes, it works with Compaq's ATI-RagePro chip and Softpeg combination shipped until at least 1 month ago. Good thing Haber fled Zoran in time! -------------------------------------- >From: nobody@REPLAY.COM (Anonymous) >Newsgroups: alt.video.dvd >Subject: SoftDVDCrack >Date: 4 Nov 1997 06:05:39 +0100 >Organization: Replay and Company UnLimited >Message-ID: <63maf3$1u4@basement.replay.com> >NNTP-Posting-Host: basement.replay.com >X-XS4ALL-Date: Tue, 04 Nov 1997 06:05:42 CET >X-001: Replay may or may not approve of the content of this posting >X-002: Report misuse of this automated service to <abuse@replay.com> >X-URL: replay.com >Lines: 107 >Xref: chaos.crhc.uiuc.edu alt.video.dvd:64380 A few days ago some guy on IRC was distributing the note below, claiming it would be possible to use SoftDVD (a software DVD decoder by a company named Compcore) to duplicate copy protected DVDs. I was very sceptical. But since I happened to have the required equipment (MMX PC with a DVD-ROM) I actually tried it. Works great! I just played part of 'Species' off a CD-R. Thought people might be interested to see what's possible these days. And no: I will NOT post ccmpeg.dll. JLF ===================================================================== SoftDVDCrack is a little add-on utility for SoftDVD. it allows u to make descrambled copies of your favourite DVD titles. how it works? SoftDVDCrack first uses two exported entry points in ccmpeg.dll (part of SoftDVD) to unlock the disc and a specific title. then it reads each sector of the title, calls SoftDVD's descrambler module, and finally writes the descrambled sectors to a file. this file no longer has copy protection. It can be played with any MPEG2 decoder. what is it good for? u can use SoftDVDCrack to make personal backups of your own DVDs. almost anything else, like copying the files to CDs and distributing them, is most likely illegal. don't do it! in addition to being a handy utility, SoftDVDCrack shows how easy DVD software decoders make it to bypass DVD scrambling. browsing thru media coverage of DVD copy protection i assumed software DVD would have to have some tricky protection against accessing decrypted data if they wanted to get a CSS licence. this looked like a nice challenge. i was a bit disappointed to see that SoftDVD actually has no protection at all against this kind of use. It was a matter of hours to locate the descrambler entry point. there may be some protection in SoftDVD attempting to make it difficult to analyse the actual descrambling algorithms. but who would really care about how the algorithms work. one can simply use SoftDVD's descrambler as a black box that does its job on any PC. And it can be much more conveniently duplicated than hardware descrambler chips. Instructions: 1. Get an MMX PC with Windows 95, a DVD drive, and a DVD disc. 1. Get the SoftDVD DLL ccmpeg.dll (date 8/13/97, size 539136 bytes). It ships with some COMPAQ PCs (4840, 4850). 2. Get msvcrt.dll (Microsoft Visual C runtime library). It is installed as part of many program packages, for example Internet Explorer 4. 3. Copy ccmpeg.dll and msvcrt.dll to \windows\system. 5. Compile the program listed below and run it in a DOS box. /** SoftDVDCrack.cpp **/ #include <windows.h> #include <stdio.h> typedef DWORD (WINAPI *PFNValidateDisk)(DWORD); typedef DWORD (WINAPI *PFNValidateTitle)(DWORD); typedef DWORD (*PFNDescramble)(DWORD title, PBYTE address, DWORD count); BYTE buffer[4096]; int main(int argc, char *argv[]) { PFNValidateDisk ValidateDisk; PFNValidateTitle ValidateTitle; PFNDescramble Descramble; HINSTANCE hCC; FILE *fdin, *fdout; DWORD sector, nsectors, title; CHAR inputfile[256]; if(argc!=5) { printf("SoftDVDCrack input_path title_number number_of_sectors output_file\n" "(example: SoftDVDCrack d:\\video_ts 1 -1 movie.mpg)\n"); exit(-1); } sscanf(argv[2],"%d",&title); sscanf(argv[3],"%d",&nsectors); hCC=LoadLibrary("ccmpeg.dll"); if (!hCC) {printf("ccmpeg.dll missing\n"); exit(-1);} ValidateDisk=(PFNValidateDisk)GetProcAddress(hCC,"CCMPEG_Validate_DVD_Disk"); ValidateTitle=(PFNValidateTitle)GetProcAddress(hCC,"CCMPEG_Validate_DVD_Title"); if (!ValidateDisk||!ValidateTitle) {printf("link failure\n"); exit(-1);} Descramble=(PFNDescramble)((PBYTE)hCC + 0x2ef40); if(*(PDWORD)Descramble!=0xb80cec83) {printf("wrong ccmpeg.dll version\n"); exit(-1);} if(!ValidateDisk(0)) {printf("cant't validate disc\n"); exit(-1);} if(!ValidateTitle(title)) {printf("cant't validate title\n"); exit(-1);} if(title==0) sprintf(inputfile,"%s\\video_ts.vob",argv[1]); else sprintf(inputfile,"%s\\vts_%02d_1.vob",argv[1],title); fdin=fopen(inputfile,"rb"); fdout=fopen(argv[4],"wb"); if (fdin==0||fdout==0) {printf("file open failure\n"); exit(-1);} for(sector=0;sector!=nsectors;sector++) { if (!fread(buffer,2048,1,fdin)) break; Descramble(title,buffer,1); if (!fwrite(buffer,2048,1,fdout)) break; } fclose(fdin); fclose(fdout); return(0); } /** SoftDVDCrack.cpp **/