DVD-RX, the fight against protection

DVD-RX is a multi-level protection of DVD video from unauthorized copying. But since there is information that can be viewed, then it can be saved. In this post I will describe how exactly I managed to take an image from such a disk using Linux.

Since I had never had to deal with protected disks, and in particular with DVD-RX, I had to try many ways to get a comfortable result.

The contents of the disk that I had was a 30-minute video without a menu, stored in the form of a huge number of files (more than a hundred) with the VOB extension and each larger than one gigabyte. However, the video itself is a piece of news from television, so I didn’t even break anything. The total amount of content was about one terabyte, despite the fact that the volume of the disk itself was standard, i.e. 4.7 GB Therefore, I refused to copy the contents as files immediately. I also decided to refuse to grab the video from the screen, although it would be faster, but I decided to make a copy of the disk. An attempt to capture the image with K3b failed. after 10 mb copied, sector reading errors began to appear. Despite,

After reading the literature on copying information from bad media, I decided to use the dd_rescue console program, which can create images of block device files, skipping a given number of bytes at the beginning (zapping them with zeros). Unfortunately, I could not find a software solution to quickly search for bad blocks on optical media. I had to search by typing . I knew the lower border where the broken sectors (10 mb) began, so I decided to take 100 MB immediately for verification. Oddly enough, the sector starting with 100 MB was also beaten, as well as with 200, but the data went to 300, so I chose 200 MB as the lower limit of the search, and 300 as the upper one. As a result, I had to make about 20 jumps to find the border between broken and live sectors. So I copiedtop of the disk.

However, when I looked at the surface of the disk, I realized that I would have to look for two more boundaries, because there were two rings, sharply different in color.


In the same way (by launching dd_rescue in different places and looking at the output), I found the necessary boundaries.
One was in the region of 63 MB, and the second in the region of 130. So, I already had an iso file weighing 10 MB (from the center of the disk to the first bad blocks), and a 4.7 GB file containing information from the end of the bad blocks to the edge of the disk. I needed to dump between those rings. I used the same dd_rescue by pressing Ctrl + C when the bad blocks fell:

$dd_rescue -s 62973431 -f /dev/sr0 /home/mascom/middle

Thus, I had three files that I needed to merge into one, overlapping one on top of the beginning of the other, like layers (in the sense that this is not just concatenation ). I used the split program, breaking the middle file into equal parts, each the size of a small file.

$split -b 9997139 /home/mascom/middle

Replacing the file of the first part (xaa) with 10 megabytes begin.iso and combining all the parts into one, I got a file containing information from the physical center of the disk to the beginning of the second ring.

$cat begin.iso xab xac xad xae xaf xag xah xai xaj xak xal xam xan xao xap xaq xar xas xat xau xav > begin1
$rm xaa xab xac xad xae xaf xag xah xai xaj xak xal xam xan xao xap xaq xar xas xat xau xav

Repeating this procedure with a large file (using the size of the resulting begin1, replacing it with a new xaa and concatenating them again), I got a ready-to-use iso image of the source disk.

Also popular now: