?

Log in

No account? Create an account

Previous Entry | Next Entry

Gleek !

I've got a bunch of old audio CD-Rs that I burned a long time ago with Roxio Toast Titanium 4, and I wanted to see what was on them without having to listen and recognize every song. In anticipation of that day, I had saved the project documents for each of those CD-Rs, so that I could read them later for just such a purpose.

It turns out that Toast Titanium, the newest version, can't read all such files – it will just crash. Even more alarming, those files appear have no data when you look at them with ls, text editors, and so on. That's because the file format is actually in the resource fork of CD-R document file, a practice that Apple has warned developers against for, oh, I don't know, fifteen years now ?

On the other hand, resource forks are fairly structured, and Apple still distributes a tool called DeRez that will try to decode those things. So, sure enough:

$ derez Developer/Tools/DeRez Pop\ 1
[...]
data 'Uni#' (1) {
	$"0019 0008 0041 0075 0064 0069 006F 0020"            /* .....A.u.d.i.o.  */
	$"0043 0044 000D 0049 006E 0020 0074 0068"            /* .C.D...I.n. .t.h */
	$"0065 0020 0053 0074 0072 0065 0065 0074"            /* .e. .S.t.r.e.e.t */
	$"000E 0057 0068 0065 006E 0020 0059 006F"            /* ...W.h.e.n. .Y.o */
	$"0075 0020 0053 006C 0065 0065 0070 001F"            /* .u. .S.l.e.e.p.. */
	$"0042 0072 0065 0065 0064 0065 0072 0073"            /* .B.r.e.e.d.e.r.s */
	$"0020 002D 0020 0053 0068 006F 0063 006B"            /* . .-. .S.h.o.c.k */
	$"0065 0072 0020 0049 006E 0020 0047 006C"            /* .e.r. .I.n. .G.l */
	$"006F 006F 006D 0074 006F 0077 006E 0022"            /* .o.o.m.t.o.w.n." */
	$"0042 0075 0073 0074 0065 0064 0020 0053"            /* .B.u.s.t.e.d. .S */
	$"0074 0061 0074 0075 0065 0073 0020 002D"            /* .t.a.t.u.e.s. .- */
	$"0020 0048 0065 0061 0072 0074 0020 0055"            /* . .H.e.a.r.t. .U */
	$"0070 0073 0069 0064 0065 0020 0044 006F"            /* .p.s.i.d.e. .D.o */
	$"0077 006E 0006 0053 006C 0069 0076 0065"            /* .w.n...S.l.i.v.e */
	$"0072 0008 0043 0061 006E 006E 0061 0062"            /* .r...C.a.n.n.a.b */
	$"0069 0073 0009 0042 0061 0063 006B 0077"            /* .i.s.∆.B.a.c.k.w */
	$"0061 0074 0065 0072 000C 0049 0020 0041"            /* .a.t.e.r...I. .A */
        [...]
};

data 'Uni#' (2) {
	$"0019 0000 0008 0042 0069 0067 0020 0053"            /* .......B.i.g. .S */
	$"0074 0061 0072 0000 0000 0000 0007 004E"            /* .t.a.r.........N */
	$"0069 0072 0076 0061 006E 0061 0010 0053"            /* .i.r.v.a.n.a...S */
	$"0065 0072 0067 0065 0020 0047 0061 0069"            /* .e.r.g.e. .G.a.i */
	$"006E 0073 0062 006F 0075 0072 0067 0009"            /* .n.s.b.o.u.r.g.∆ */
	$"0042 0072 0069 0061 006E 0020 0045 006E"            /* .B.r.i.a.n. .E.n */
	[...]
}
[...]
Jeepers ! I don't think 'Uni#' is standard resource type, but it looks like a vector (with the size in the first word) of Unicode text encoded as UCS-2, prefixed by the length of text (again, as a word). Maybe I'll hack it…

Tags:

Profile

into battle
rpkrajewski
Daddy-O à Go-Go

Latest Month

December 2016
S M T W T F S
    123
45678910
11121314151617
18192021222324
25262728293031

Tags

Powered by LiveJournal.com
Designed by Jamison Wieser