Profile

Cover photo
Manuel Hirth
1,143 views
AboutPostsPhotosVideos

Stream

Manuel Hirth

Shared publicly  - 
 
Almost as clever as the CSS stuff for DVDs :D
 
I bought a digital video download today that required a video player from Leaping Brain. As usual, the proprietary player wasn't great and to transfer it to my iPhone I'd need another proprietary player. Ugh. But I browsed around and found that the video had been downloaded into a hidden directory as a bunch of .mov files. Great, except none of the files would play.

It turned out the actual player, launched from their compiled app, was a Python wrapper around some VLC libraries. Nothing funny going on, as far as I could tell, but when I tried to launch the player directly, nothing happened. The compiled app was modifying the .mov files right before they were loaded into the player, and then reverting the file on disk. According to http://leapingbrain.com/mod-machine/faq/:

 "We apply our BrainTrust™ proprietary video encryption to your movies before we upload them to our servers. If someone ever was able to gain access to your content, the files would be useless and unplayable, because they are stored in a scrambled, encrypted format. Once downloaded to the user’s hard drive, the files are still encrypted and only readable via the MOD Machine Player by a legitimate owner. We are not aware of a better DRM scheme than ours. Where Windows Media DRM is easily crackable, and doesn’t run on Macs, BrainTrust™ works great on Windows 8, Vista, Windows XP and Mac, and is virtually uncrackable."

Virtually uncrackable? Well, since they load the file from a Python script, it's easy to make a copy of the "decrypted" file before it's reverted. Having done so, I was curious to see the encryption scheme. By comparing the binary files, I discovered the "proprietary video encryption" algorithm: for the first 15kB, each 1kB block has its initial bytes xor'd with the string "RANDOM_STRING". That's the "scrambled, encrypted format" that leaves these files "useless and unplayable".
1
Add a comment...

Manuel Hirth

Shared publicly  - 
1
Add a comment...

Manuel Hirth

Shared publicly  - 
 
Nerd Achievment unlocked: Mit Lisp-Features hausieren gehen.
1
Add a comment...

Manuel Hirth

Shared publicly  - 
 
le bam.
1
Add a comment...

Manuel Hirth

Shared publicly  - 
 
Ich komm mir gerade irgendwie blöd vor…
Ich kriegs nich' in mein Hirn, wie ich 'nen String
bei allen Kommata splitte, die nicht in einem durch
Anführungszeichen eingegrenzten Substring sind.

Also zB.: "foo, bar, \"foo, bar\", bleh"

Ich könnte natürlich erst alle Kommata in quotierten Substrings durch Platzhalter ersetzen, jedoch kann man darf dieser Platzhalter dann nirgendwo mehr direkt vorkommen… -.-
1
Matthias Fassl's profile photoManuel Hirth's profile photo
2 comments
 
Jo, hab jetzt gestern 'ne >30 sloc funktion geschrieben, die das char für char durchgeht… :(
 ·  Translate
Add a comment...

Manuel Hirth

Shared publicly  - 
 
Da ja irgendwie abzusehen ist, dass ich auch vom 3. Ticket-Batch für den 28C3 nix abkriege: Was gehtn nerd- und hackermäßig sonst so gegen Jahresende?
 ·  Translate
1
Manuel Hirth's profile photo
 
Scratch that - I'm going to the congress, baby! WHOOOOP WHOOOP :)
Add a comment...
Story
Tagline
Eating your children. Failing to properly use C, Python, Common Lisp and a load of other languages.
Introduction
Nerd, Caffeine-Addict
Links
Contributor to
Basic Information
Gender
Male