Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Bmg-copycontrol czyli białe wakacje a wymagania sprzętowo-softwarowe CDDA.

8 views
Skip to first unread message

Maciek Pasternacki

unread,
Dec 1, 2002, 7:43:19 PM12/1/02
to
Historia.

Pewnego pięknego dnia (gdyby mi się chciało sięgnąć po paragon,
wkleiłbym datę) stałem się szczęśliwym posiadaczem płyty zespołu
Ścianka, tytułem ,,Białe wakacje''. Szczęśliwym? Nie! Jedna mała
wioska... wróć. Otóż, nie całkiem - po próbie włożenia tejże do
komputera i uruchomienia xmcd, stwierdziłem brak muzyki w
słuchawkach. Bliższa inwigilacja komunikatów diagnostycznych
zaowocowała stwierdzeniem, że xmcd widzi tylko ścieżki z danymi, w
związku z czym nie chce ich odtwarzać. Tak samo widzi płytę cdp,
workbone i cdparanoia. W każdym wypadku zostaję odesłany na drzewo.
Dokładne przyjrzenie się okładce...

#v+
Produkt ten zawiera system przeciwdziałania nielegalnemu kopiowaniu.
Muzyka zawarta na tej płycie może być odtwarzana na PC (Windows)
dzięki dołączonemu oprogramowaniu. W przypadku problemów prosimy o
kontakt z pośrednikiem lub BMG Poland. www.bmg-copycontrol.info.
Minimalne wymagania systemu: system operacyjny MS Windows 95, Pentium
II 233MHz, 64MB RAM.
#v-

Odruch:

#v+
<japhy@lizard:pts/4 japhy> 502$ mount /mnt/cdrom
<japhy@lizard:pts/4 japhy> 503$ ls -al /mnt/cdrom
total 69
dr-xr-xr-x 1 root root 2048 Sep 10 21:52 .
drwxr-xr-x 13 root root 4096 Nov 23 02:58 ..
-r-xr-xr-x 1 root root 31 Oct 30 2001 autorun.inf
dr-xr-xr-x 1 root root 2048 Sep 10 21:52 player
-r-xr-xr-x 1 root root 61440 Jan 20 2002 player.exe
<japhy@lizard:pts/4 japhy> 504$ ls -al /mnt/cdrom/player
total 6
dr-xr-xr-x 1 root root 2048 Sep 10 21:52 .
dr-xr-xr-x 1 root root 2048 Sep 10 21:52 ..
dr-xr-xr-x 1 root root 2048 Sep 10 21:52 skin
<japhy@lizard:pts/4 japhy> 505$ ls -al /mnt/cdrom/player/skin
total 4
dr-xr-xr-x 1 root root 2048 Sep 10 21:52 .
dr-xr-xr-x 1 root root 2048 Sep 10 21:52 ..
<japhy@lizard:pts/4 japhy> 506$ umount /mnt/cdrom
#v-

Świetnie. Wychodzi na to, że nie mając sprzętowego odtwarzacza CD,
nie mogę wysłuchać muzyki, nie kupiwszy Windowsa, nie wspominając już
o możliwości zrobienia kopii zapasowej bądź co bądź kupionej przeze
mnie informacji albo załadowania muzyki do całkowicie legalnego
odtwarzacza MP3, który mógłbym posiadać. Krótki mail z prośbą o parę
słów wyjaśnienia na adres podany na stronie wymienionej na okładce,
bez odpowiedzi przez dwa tygodnie. Time is out; próbuję coś z tym
zrobić na własną rękę. Pierwszy odruch: dokładne przyjrzenie się
komunikatom cdparanoi, xmcd, cdp, workbone; próba montowania kolejnych
sesji; nic. Kolejna próba: sczytać TOC przy użyciu cdrdao - eureka!
Widzi dziesięć ścieżek audio o takiej długości, jak trzeba (i, co
najdziwniejsze, żadnej ścieżki z danymi - a playery widzą tylko
ścieżki z danymi, i do tego jądro potrafi tę płytę zamontować).
cdrdao read-cd cd.toc - zgrało coś... zgrało sensownie wyglądającego
TOC-a i data.bin - jak się można domyślać z zawartości TOC, są to dane
zgrane bajt po bajcie z płyty. Parę prób z sox... najpierw
szum... potem trochę inny szum... potem olśnienie - może to
big-endian? potem:

#v+
<japhy@lizard:pts/4 japhy> 691$ sox -t raw -r 44100 -s -w -c 2 -x - -t ossdsp /dev/dsp
#v-

Eureka! Teraz tylko znaleźć z TOC granice ścieżek i zakodować
(tudzież wypalić na niezabezpieczone audio, bądź cokolwiek innego -
teraz już mogę z tym wszystko). W manie do cdrdao format pliku TOC
jest dość łopatologicznie objaśniony, więc wszystko sprowadza się do
jednego skryptu Perla (który wkleję z komentarzami po angielskiemu w
oddzielnym poście, żeby ułatwić życie googlistom z tym samym
problemem). I ostatecznie:

#v+
<japhy@lizard:pts/4 japhy> 749$ cat /tmp/xmms-info | grep '^File: '
File: /mnt/rh/scianka/09. September.ogg
#v-

I teraz nieunikniona część wątku: pytania. Jak wszyscy, którzy
czytali many, wiedzą, cdparanoia czyta dane z CD kilkukrotnie;
porównuje je i poprawia błędy wynikające ze specyfiki czytania danych
audio w wielozadaniowym systemie operacyjnym. W związku z tym nie ma
trzasków i przeskoków, które zdarzają się podczas zgrywania danych
innymi narzędziami. Cdrdao czyta dane innym sposobem (jak sama nazwa
wskazuje, w trybie disc-at-once) i sczytuje dane niższego poziomu
(strumień sampli poniżej podziału na ścieżki - czyli można w ten
sposób przeczytać (a może i nagrać) np. dane nie należące do żadnej
ścieżki wymienionej w TOC); jak się to ma do paranoicznego podejścia
cdparanoi - czy w trybie DAO korekcję błędów i buforowanie robi sam
czytnik? Nie zauważyłem w zgrywanych danych żadnych trzasków ani
innych uchybień, ale z drugiej strony podczas samego zgrywania też
starałem się nie patrzeć na klawiaturę ani nie oddychać zbyt
głośno... czy taka metoda zgrywania płyt jest względnie bezpieczna
jeśli idzie o jakość otrzymanych danych?

Pozdrawiam,
--dżaf.

--
__ Maciek Pasternacki <mac...@japhy.fnord.org> [ http://japhy.fnord.org/ ]
`| _ |_\ / { Any road followed to its end leads precisely nowhere. Climb
,|{-}|}| }\/ the mountain just a little to test it's a mountain. From the top
\/ |____/ of the mountain you cannot see the mountain. } ( F.Herbert ) -><-

Maciek Pasternacki

unread,
Dec 1, 2002, 7:46:10 PM12/1/02
to
Maciek Pasternacki <mac...@japhy.fnord.org> writes:

> jednego skryptu Perla (który wkleję z komentarzami po angielskiemu w
> oddzielnym poście, żeby ułatwić życie googlistom z tym samym
> problemem). I ostatecznie:

Więc tak:

#v+
#!/usr/bin/perl -w
#
# This script helps to rip the audio CD protected with BMG Copycontrol
# (http://www.bmg-copycontrol.info/) and lets you hear the music under
# non-windows OS. I wrote it after I bought copycontrol-protected CD
# and realized that I can't listen to music without buying Windows
# first (I don't own CD-player); my e-mail to address mentioned on BMG
# Web site wasn't answered, so I had to get the music out of my disc
# this way. Besides, I think that by buying the disc I also buy
# information written on it and I have right to back it up or upload
# it to my personal MP3 player (if I had one). Script was tested only
# under Linux; it should work fine on any other UNIX-like OS
# (actually, any OS supporting either cdrdao or any equivalent tool
# for reading CD contents in disc-at-once mode (tools other than
# cdrdao may require changes in script) and some encoder (tested only
# with oggenc)). I hope this piece of work will be helpful for anyone
# out there with this (or similar) problem.
#
# To use the script, first create byte-for-byte image of the original
# CD with cdrdao (like `cdrdao read-cd cd.toc'); than edit this
# script, changing disc info ($ARTIST, $ALBUM, @TITLES - should be
# self-explanatory), setting encoder command (only tested on oggenc)
# and format of output file name. When done, run this script giving
# name of the table-of-contents (toc) file generated by cdparanoia as
# an argument (like `chmod 0755 encode-copycontrol.pl;
# ./copycontrol.pl cd.toc'). That's all! (I hope). Enjoy!
#
# --Maciek Pasternacki <mac...@japhy.fnord.org>

use strict;

## Album info:
our $ARTIST='Scianka';
our $ALBUM='Biale Wakacje';
our @TITLES = (
'Got My Shoes & My Tattoo part 1',
'Biale wakacje',
'The Hill',
'Harfa traw',
'Piosenka No2',
'A6',
'Miasta i nieba',
'Peron 4',
'September',
'Got My Shoes & My Tattoo part 2'
);
# Unspecified (missing) titles will be set to trackXX; if you are
# happy with such files, you might as well don't set any titles
# (like`@TITLES = ();')

## Encoders:
# OGG Vorbis encoder (when you get random noise instead of music,
# change `--raw-endianness 1' to `--raw-endianness 0').
our $enc_command = 'oggenc -r --raw-endianness 1 -q 6 -o \"$FILENAME\" -a \"$ARTIST\" -t \"$TITLE\" -l \"$ALBUM\" -';

# Lame MP3 encoder (untested!; when you get random noise, try removing
# `-x' from options)
#our $enc_command = 'lame -h --alt-preset extreme -r -x -s 44.1 --bitwidth 16 -m s --ta \"$ARTIST\" --tl \"$ALBUM\" --tt \"$TITLE\" - \"$FILENAME\"';

# When using sox as `encoder' you can just split binary image to .wav
# files (or, in fact, anything) (Untested!; when you get random noise,
# try removing `-x' from options)
#out $enc_command = 'sox -t raw -r 44100 -s -w -c 2 -x - -t wav \"$FILENAME\"';

## Template of output file name
our $filename_format = '$TRACK. $TITLE.ogg';

## Nothing below here should require changing.
our $bytes_per_sample = 4; # 2*16bit/8(bits/byte)
our $samples_per_frame = 588;
our $samples_per_second = 44100;

our $file_block_size = 102400; # 100k

sub time2bytes {
$_ = shift;
/^\d+$/ and return $bytes_per_sample * $_;
/^(\d+):(\d+):(\d+)$/ and return
(((60*$1+$2)*$samples_per_second)
+ $3*$samples_per_frame) * $bytes_per_sample;
die "Bad frame specification ($_)\n";
}

if ( $#ARGV < 0 ) {
die "Usage: $0 tocfile\n";
}

our $tracks=$#TITLES+1;
print "\n$0: Encoding binary image of $ALBUM by $ARTIST ($tracks tracks)\n";

open TOC, "<$ARGV[0]" or die "Cannot open tocfile ($ARGV[0])!\n";

our $track = 0;

while ( <TOC> ) {
/^TRACK AUDIO/ and do {
$track++;
do { $_ = <TOC>; }
while ( !/^FILE "([^"]+)" (\d+(:\d+)*) (\d+(:\d+)*)/); #"Emacs syntax barfs on odd number of quotes... :/
my $file=$1;
my $start=time2bytes $2;
my $length=time2bytes $4;

my $TRACK=sprintf "%02d",$track;
my $TITLE=$TITLES[$track-1] || "track$TRACK";

print "\nReading track $track ($TITLES[$track-1]), $length bytes from byte $start on.\n";

my $filename;
eval "\$filename=\"$filename_format\";";
my $encoder;
my $FILENAME=$filename;
eval "\$encoder=\"$enc_command\"";

print "Encoding to file $filename with following command:\n$encoder\n";

open DATA,"<$file" or die "Can't open $file: $!\n";
sysseek DATA, $start, 0 or die "Can't set position in $file: $!\n";
open ENC,"|$encoder" or die "Can't start encoder: $!\n";
my $read=0;
my $buffer;
while ( $read < $length ) {
my $to_read = ($length-$read>=$file_block_size) ? $file_block_size : $length%$file_block_size;
my $read_this_time = sysread DATA,$buffer,$to_read;
$read += $read_this_time;
syswrite ENC,$buffer,$read_this_time
or die "Can't write to encoder: $!\n";
}
close DATA;
close ENC;
};
}
close TOC;
print "\nAlbum ripped successfully.\n\n";
#v-

--
__ Maciek Pasternacki <mac...@japhy.fnord.org> [ http://japhy.fnord.org/ ]

`| _ |_\ / { ...Leave me alone. Take me with you... }
,|{-}|}| }\/
\/ |____/ ( Ribeiro ) -><-

Michal Zalewski

unread,
Dec 1, 2002, 8:41:24 PM12/1/02
to
On Mon, 2 Dec 2002, Maciek Pasternacki wrote:

> # this way. Besides, I think that by buying the disc I also buy
> # information written on it and I have right to back it up or upload
> # it to my personal MP3 player (if I had one).

Yyyy, dane (dzielo) pozostaja wlasnoscia tego, kto ma prawa autorskie, i
nie mozesz np. powielac bez ograniczen, argumentujac, ze skoro posiadasz
jedna kopie, jestes wlascicielem utworu... a "fair use" - czyli, w
uproszczeniu, przyzwolenie na wykorzystywanie dziela w dobrej wierze w
powszechnie akceptowanych granicach, a wiec robienie sobie kopii na wlasny
uzytek, i tak dalej - to zupelnie inna bajka. Zarowno w Polsce jak i w USA
istnieja odpowiednie zapisy zezwalajace na to, aczkolwiek np. DMCA,
chociaz w duzej mierze "przereklamowana" przez ludzi z EFF, Slashdot i
spora czesc populacji, ktora nigdy tego nie przeczytala - jest
wykorzystywana do ograniczenia tego prawa w Stanach. Gdybys mieszkal w
Stanach, Reuters albo AP napisalby o tym programie, moglbys sie
spodziewac procesu, ktory prawdopodobnie moglbys wygrac, ale na ktory nie
bedzie Cie stac, wiec sie poddasz ;)

--
------------------------- bash$ :(){ :|:&};: --
Michal Zalewski * [http://lcamtuf.coredump.cx]
Did you know that clones never use mirrors?
--------------------------- 2002-12-01 17:48 --


Maciek Pasternacki

unread,
Dec 1, 2002, 9:44:39 PM12/1/02
to
Michal Zalewski <lca...@dione.ids.pl> writes:

> On Mon, 2 Dec 2002, Maciek Pasternacki wrote:
>
>> # this way. Besides, I think that by buying the disc I also buy
>> # information written on it and I have right to back it up or upload
>> # it to my personal MP3 player (if I had one).
>
> Yyyy, dane (dzielo) pozostaja wlasnoscia tego, kto ma prawa autorskie, i
> nie mozesz np. powielac bez ograniczen, argumentujac, ze skoro posiadasz
> jedna kopie, jestes wlascicielem utworu... a "fair use" - czyli, w
> uproszczeniu, przyzwolenie na wykorzystywanie dziela w dobrej wierze w
> powszechnie akceptowanych granicach, a wiec robienie sobie kopii na wlasny
> uzytek, i tak dalej - to zupelnie inna bajka. Zarowno w Polsce jak i w USA
> istnieja odpowiednie zapisy zezwalajace na to, aczkolwiek np. DMCA,
> chociaz w duzej mierze "przereklamowana" przez ludzi z EFF, Slashdot i
> spora czesc populacji, ktora nigdy tego nie przeczytala - jest
> wykorzystywana do ograniczenia tego prawa w Stanach. Gdybys mieszkal w
> Stanach, Reuters albo AP napisalby o tym programie, moglbys sie
> spodziewac procesu, ktory prawdopodobnie moglbys wygrac, ale na ktory nie
> bedzie Cie stac, wiec sie poddasz ;)

Generalnie nie mieszkam w Stanach i w .pl procesu raczej się nie
spodziewam, aczkolwiek wychodzę z założenia, że kupując płytę kupuję
ciąg bitów i prawo do jego odsłuchiwania. Skoro mogę swobodnie
przegrać sobie interpretację dźwiękową tego ciągu bitów na kasetę i
słuchać z walkmana w pociągu, mogę równie dobrze wgrać go sobie do
odtwarzacza MP3 albo (jeśli ciąg bitów jest rzadkością, np. specjalnym
wydaniem płyty, którego jest kilka/naście egzemplarzy) zrobić pięć
kopii i przechować u rodziny albo w sejfie w banku. Sformułowanie w
komentarzu było w zasadzie skrótem myślowym (może o tyle zbyt
skróconym, że formułowanym około piątej nad ranem). Nie wiem jeszcze,
jak to jest z przegrywaniem ,,na kasetę od kolegi'' (w dzisiejszych
czasach s/kasetę/mp3\|ogg/) - kiedyś to ponoć było absolutnie legalne
(tzn. legalne było przegrywanie jeśli nikt nie czerpał zysków ani nie
było to udostępnianie publiczne).

Pozdrawiam,
--dżaf.

P.S. Mam dzisiaj jakiś taki samobójczy nastrój... M-x spook mówi:

Leitrim Albright SAFE Sears Tower Crypto AG Fortezza government bemd
embassy Soviet AVN high security cracking keyhole NWO

--dż.

--
__ Maciek Pasternacki <mac...@japhy.fnord.org> [ http://japhy.fnord.org/ ]

`| _ |_\ / { ...tak bardzo chciałbym, byśmy zwariowali,
,|{-}|}| }\/ tak bardzo chciałbym, lecz tak nas wychowali... }
\/ |____/ ( Z. Staszczyk ) -><-

Michal Zalewski

unread,
Dec 1, 2002, 10:59:43 PM12/1/02
to
On Mon, 2 Dec 2002, Maciek Pasternacki wrote:

> Generalnie nie mieszkam w Stanach i w .pl procesu raczej się nie
> spodziewam, aczkolwiek wychodzę z założenia, że kupując płytę kupuję
> ciąg bitów i prawo do jego odsłuchiwania. Skoro mogę swobodnie
> przegrać sobie interpretację dźwiękową tego ciągu bitów na kasetę i
> słuchać z walkmana w pociągu

To tez mowie, aczkolwiek wiekszosc koncernow muzycznych (i korporacji
medialnych jako takich) nie chce, bys mogl to robic. Staraja sie
wypromowac mechanizmy w stylu 'plac za kopie' albo 'plac za odtworzenie'.
Oczywiscie maja racjonalne, oficjalne powody - choc nie oczekuja raczej,
ze piraci nie beda potrafili tego obejsc, a jedynie, ze zostana zepchnieci
do wiekszego podziemia, zmuszeni do korzystania ze zdelegalizowanego
oprogramowania i sprzetu, podpadajac pod duzo wiecej paragrafow niz tylko
prawo autorskie (vide DMCA), i ze, w efekcie, ryzyko bedzie na tyle duze,
ze koszty pirackich kopii uczynia takie kopiowanie zupelnie
nieoplacalne... ale w wiekszym stopniu, maja zupelnie inne cele, czyli
chec zarobienia przy okazji dodatkowych pieniedzy. Nie spodziewalbym sie,
zeby wiele krajow postawilo sie za bardzo.

> Nie wiem jeszcze, jak to jest z przegrywaniem ,,na kasetę od kolegi'' (w
> dzisiejszych czasach s/kasetę/mp3\|ogg/) - kiedyś to ponoć było
> absolutnie legalne (tzn. legalne było przegrywanie jeśli nikt nie
> czerpał zysków ani nie było to udostępnianie publiczne).

Rozpowszechniasz? Rozpowszechniasz. Uzytek wlasny? Nie. Nie wazne, czy na
tym zarabiasz.

--
------------------------- bash$ :(){ :|:&};: --
Michal Zalewski * [http://lcamtuf.coredump.cx]
Did you know that clones never use mirrors?

--------------------------- 2002-12-02 04:52 --

GoTaR

unread,
Dec 6, 2002, 5:53:06 PM12/6/02
to
begin Michal Zalewski <lca...@dione.ids.pl> skribis:

> Yyyy, dane (dzielo) pozostaja wlasnoscia tego, kto ma prawa autorskie, i
> nie mozesz np. powielac bez ograniczen, argumentujac, ze skoro posiadasz

Możesz zrobić jedną kopię bezpieczeństwa.
Możesz zrobić kopię bezpieczeństwa w postaci mp3 i odtwarzać z komórki.

--
GoTaR <priv0.onet.pl->gotar> USA sux
...Dżahilijja... znowu? Nadal...
PLD stuff at http://mops.uci.agh.edu.pl/~gotar/

Michal Zalewski

unread,
Dec 6, 2002, 5:52:25 PM12/6/02
to
On Fri, 6 Dec 2002, GoTaR wrote:

> Możesz zrobić jedną kopię bezpieczeństwa. Możesz zrobić kopię
> bezpieczeństwa w postaci mp3 i odtwarzać z komórki.

Ostatnio gdy czytalem przepisy, nie bylo tam nic w tym stylu, byla po
prostu prowizja o akceptowalnym uzytku na indywidualne potrzeby, bez
wyliczania ile i czego... moze cos sie zmienilo, tak czy tak, znaczy to
mniej wiecej tyle samo.

--
------------------------- bash$ :(){ :|:&};: --
Michal Zalewski * [http://lcamtuf.coredump.cx]
Did you know that clones never use mirrors?

--------------------------- 2002-12-06 23:51 --


0 new messages