Cookies and Capacitors

This is some lousy content protection

Sun, Jul 29, 2012 at 5:43AM

Ever heard of RainyMood.com? They provide an interesting service: listening to the soothing sounds of a thunderstorm. However, they don’t like it when you play their storms outside of their site. How do I know this? Look at their index page’s source:

:::text
RainyMood.com
Copyright (c) 2008-2012 Tailored Music, Inc. All rights reserved.

DO NOT COPY THIS WEBSITE.

If you copy this website, Tailored Music, Inc. will find out.

Just look at the code below - do you really think you can understand it?
Of course not.

Can you find all the places where it contacts outside servers to report its location?
Nope.

Hey, do you know about trademarks?
"Rainy Mood", "RainyMood", "RainyMood.com", and "Rain makes everything better" are trademarks of Tailored Music, Inc.
That means it's against the law to impersonate us or to make products that use our trademarks.

Sorry if all that sounded snarky. But seriously, there are lots of great business ideas out there. Find something you love, and do it better than anyone ever dreamed. You can't lose with that formula!

I’m not going to steal from you, RainyMood. But, please, don’t insult me. “Just look at the code below - do you really think you can understand it? Of course not.” Yes, in fact, I can.

Not only that, but you’ve made it so painfully obvious that it didn’t take me more than a few minutes to figure out. The giveaway was the sounds it made when loading in my browser. About a minute in (later proven to be a minute, exactly) I heard the loud, thunderous audio cut out and switch to a second stream. That’s how I knew where to look.

Here is an anonymous paste of some old code you had running. My first instinct was to search for someone else who had already obtained the audio; you’ve updated it since then, because those files don’t exist. Clever (not really).

That paste is of unpacked JavaScript code, placed in your homepage. Of course, still seeing obfuscated code in your index file, I went ahead and unpacked all of the hidden scripts using this little beauty (punny, I know). But wait: the audio wasn’t in there! That deterred me for all of…fifty seconds.

I know that there were two parts to the audio: first came a loud, thunderous roar, that lasted for about a minute. The second was approximately 30 minutes long, because that’s what this YouTube video said in its description.

Looking through the page’s source, I found this little chunk of code in plain sight:

:::javascript
var sound_01 = new buzz.sound( server + "/audio1295/SeparatedPart1", { formats: [ "m4a", "ogg", "mp3" ], preload:true, autoplay:true, loop:false });<br />
    var sound_02;<br />
//  var sound_02 = new buzz.sound( server + "/audio1295/SeparatedPart2", { formats: [ "m4a", "ogg", "mp3" ], preload:false, autoplay:false, loop:true   });

Did you really just call the first and second audio parts SeparatedPartX? Yes, unfortunately, you did. Oh, look! SeparatedPart1.ogg and SeparatedPart2.ogg exist! I would assume that m4a and mp3 versions exist as well. Really, whoever named your files should choose something more cryptic.

Hey, look, SeparatedPart1 is one minute long…how interesting. What? And SeparatedPart2 is a little over thirty minutes long? What a coincidence!

And that, kids, is why copy protection doesn’t work well. Now, don’t go off downloading anything from RainyMood; just listen to the soothing sounds directly from their webpage. There isn’t a need to stir up legal trouble.