The Free Talk Live BBS

Free Talk Live => General => Topic started by: Alex Libman on November 02, 2008, 09:58:00 PM

Title: I just posted kiddy porn on this BBS!
Post by: Alex Libman on November 02, 2008, 09:58:00 PM
Or did I?  The world may never know...   8)

However, if you're geeky enough, you might be able to figure this out (http://en.wikipedia.org/wiki/Steganography).  Notice how my recent posts all look weird?  Well, if you look at the source code (i.e. click "QUOTE"), you will notice a lot of extra formatting tags.  Their visual effect is very subtle, but they are there for a reason.  There is a bitstream (http://en.wikipedia.org/wiki/Bitstream) hiding in them!  You'll notice that some tags (only those which are auto-generated by my script) contain random casing: that's one place where the bits are hidden.  Another place is the font color codes (http://en.wikipedia.org/wiki/Web_colors): notice that there are up to four color categories (normal, vowels, numbers, and punctuation): some may be turned off automatically to fit the data into the 20,000 character per-post limit.  Each of them starts with a particular color, but sometimes this color shifts subtly: that's another place the bits are hidden.

Messages that contain fewer than 32 bits are useless, because that's the header identifying where those bits belong (i.e. position in a file).  The rest of the bits are the data.  (Notice that if I'm quoting a message from someone else, which could include a message quoted from me, it could include tags that look to contain the bitstream but could contain garbage that throws off your decoder script.)  If the bitstream reaches the end of file, there will be an EOF (end-of-file) control character (8 bits), followed by another 32-bit address like in the beginning, followed by another bitstream.

I've already put through one small JPEG file, and ran a script to piece it together again.  More than once, actually, because indicating the file position in every message makes harmless repetition possible, which also works as a redundancy check and it makes no difference in which order the bitstream chunks are processed.

So, um, enjoy.
  :lol:
Title: Re: I just posted kiddy porn on this BBS!
Post by: orion on November 02, 2008, 10:01:49 PM
I am so jealous of the free time you have to waste on useless projects.
Title: Re: I just posted kiddy porn on this BBS!
Post by: MacFall on November 02, 2008, 10:19:46 PM
I have no idea what you just said
Title: Re: I just posted kiddy porn on this BBS!
Post by: Alex Libman on November 02, 2008, 10:27:12 PM
... if you're geeky enough ...

   ^^^   hint  ;)
Title: Re: I just posted kiddy porn on this BBS!
Post by: digitalfour on November 02, 2008, 10:35:01 PM
Pretty cool. Why don't you publish the scripts?
Title: Re: I just posted kiddy porn on this BBS!
Post by: YixilTesiphon on November 02, 2008, 10:38:55 PM
Pretty cool. Why don't you publish the scripts?

Because he's full of shit, and under the impression that stated IQ of 155 (which isn't that impressive) makes him not have to work, which as far as I can tell he doesn't.
Title: Re: I just posted kiddy porn on this BBS!
Post by: Alex Libman on November 02, 2008, 10:47:32 PM
Um, that's 0x155 (http://www.google.com/search?q=0x155+in+base+10).  :lol:

Seriously, 155 is smarter than 99.98% (http://www.iqcomparisonsite.com/IQtable.aspx)...  Or at least better at cheating.  8)


Pretty cool. Why don't you publish the scripts?

Um, hello...  I'd be arrested!

Title: Re: I just posted kiddy porn on this BBS!
Post by: BonerJoe on November 02, 2008, 11:13:46 PM
Ignored.
Title: Re: I just posted kiddy porn on this BBS!
Post by: sillyperson on November 03, 2008, 11:10:53 AM
Color me impressed.
I'd like to see the scripts. Wouldn't be too hard in Perl (then again, nothing is too hard in Perl).
Title: Re: I just posted kiddy porn on this BBS!
Post by: Alex Libman on November 03, 2008, 12:06:12 PM
I can't show you the script I'm using now because (1) it's silly, (2) you'd be able to decode what I've been hiding thus-far, and (3) it uses some fancier-than-needed obfuscation math that I'd rather keep to myself.  Plus the one I'm using is just a demo, it's not optimized to hide as much data as possible - it doesn't even encode any casing bits in the closing color / font tags, simply duplicating the casing of the opening tag.

If I was writing a script from scratch and wanted to fit in as much data as possible, I'd just have it insert all bunch of empty {color=#abcdef}{/color} tags, filling the post up to the allowed character limit with no visible changes to the viewer (until the message is quoted).  The deciphering script could ignore all tags except the empty color ones for simplicity, or you could have the encoding script change the casing of any normal tags you use, minus the URL's.  Each instance of the word "color" stores 5 bits based on casing, and each hex color value is 24 bits, so it's 34 bits per tag.  This is clearly meant to smuggle secret messages, not files, but my ~30 posts per day average would allow a small photo to be hidden in text every day.  In fact, assuming a 20,000 character limit, you could fit the maximum of 3.61 KB of data into just one post that appears blank to the user - but then it's obvious that you're hiding something, you might as well post an encrypted base64 dump via background color hiding / size=0!  :roll:

The trick is to hide the data in formatting tags that "beautify" your post, so you could claim to be doing it for aesthetic reasons alone, and most people will not inquire into your subtle color shifts or weird tag casing further.  Like if I didn't start this thread (and used a prettier font face), most people would probably just ignore the formatting tags when they quote my messages, thinking I was just being stylistically eccentric.  The problem is that changing each character to a random color would make your post completely unreadable: you have to limit your range just to colors that contrast with the background.  Using round (in base 16) numbers you could easily limit each color value to storing 8 bits of data, but you can use fancier math tricks for variable data significance.  The one I'm using is puny: it almost looks simply like a common script to make vowels / numbers / punctuation a different color, but each octet of those colors changes by X every time the color is used - the bitstream hides therein.


Title: Re: I just posted kiddy porn on this BBS!
Post by: Lindsey on November 03, 2008, 12:23:11 PM
I don't really have that much trouble reading it.  With most of it I highlight his text and read it easily, but I can see it without.   :shock:
Title: Re: I just posted kiddy porn on this BBS!
Post by: Alex Libman on November 03, 2008, 12:31:20 PM


44 65 61 72 20 4d 72 20 43 79 72 6f 3a 20 49 20 61 70 70 72 65 63 69 61 74 65
20 74 68 65 20 61 6e 6e 6f 79 61 6e 63 65 20 63 61 75 73 65 64 20 62 79 20 74
68 69 73 20 6c 69 74 74 6c 65 20 73 6f 63 69 61 6c 20 65 78 70 65 72 69 6d 65
6e 74 2c 20 61 6e 64 20 69 74 20 77 69 6c 6c 20 62 65 20 6f 76 65 72 20 69 6e
20 61 20 66 65 77 20 6d 6f 72 65 20 64 61 79 73 2e 20 20 49 20 77 69 6c 6c 20
6e 6f 74 20 22 73 68 75 74 20 74 68 65 20 66 75 63 6b 20 75 70 22 2c 20 62 75
74 20 79 6f 75 27 72 65 20 66 72 65 65 20 74 6f 20 69 67 6e 6f 72 65 20 6d 65
20 69 66 20 79 6f 75 20 6c 69 6b 65 2e 20 20 50 65 61 63 65 2e



In case no one told you, allow me to be the first:  It looks like shit.

You're using the dark-bg theme, right?  If not, please post a screen-shot.  It could be that the Terminal font is different on different OS'es...
Title: Re: I just posted kiddy porn on this BBS!
Post by: Alex Libman on November 03, 2008, 01:03:17 PM
Cyro, sir... 

Please don't hurt me!  :cry:

OK, ok, I'll stop with the hidden kiddy porn.  Rejoice, O merry forum, for thy hero Cyro saveth thee from my evil hex!



Title: Re: I just posted kiddy porn on this BBS!
Post by: Lindsey on November 03, 2008, 01:08:45 PM
Okay, who do I thank with what for Libman ceasing the posting of potentially disturbing material? 
Title: Re: I just posted kiddy porn on this BBS!
Post by: Lindsey on November 03, 2008, 01:10:39 PM
Okay, who do I thank with what for Libman ceasing the posting of potentially disturbing material? 

Me and you know what.

Excellent.  I'm booking the plane ticket as we speak.   :lol:
Title: Re: I just posted kiddy porn on this BBS!
Post by: Alex Libman on November 03, 2008, 04:20:09 PM
Colors look good, but the font isn't Terminal.  (Easiest way to tell is zeroes should have a line through them.)

I see that Webkit has a problem with font-face values being in MiXeD-CaSe...  I've also noticed that my last line of hex is centered in IE7 / Opera, because of the tag outside the table...

All browsers other than Firefox suck!  :x
Title: Re: I just posted kiddy porn on this BBS!
Post by: Lindsey on November 03, 2008, 04:23:27 PM
It was just plain black for me on the default theme. 
Title: Re: I just posted kiddy porn on this BBS!
Post by: Alex Libman on November 03, 2008, 04:33:36 PM
When you right-click your desktop (assuming you're using Windows), select Properties, and open the Settings tab in the "Display Properties" window, what does it say under color quality?  It looked fine to me under both 16 and 32 bit.
Title: Re: I just posted kiddy porn on this BBS!
Post by: Alex Libman on November 03, 2008, 04:38:00 PM
Yeah, I guess Acid3 doesn't want me to hide an extra 8 bits of data in the font name and still have that tag work...  ;)
Title: Re: I just posted kiddy porn on this BBS!
Post by: Lindsey on November 03, 2008, 04:50:12 PM
When you right-click your desktop (assuming you're using Windows), select Properties, and open the Settings tab in the "Display Properties" window, what does it say under color quality?  It looked fine to me under both 16 and 32 bit.


It's a little different with Vista, btw.  But it's 32 bit.  16 and 32 are the only choices, as a matter of fact. 
Title: Re: I just posted kiddy porn on this BBS!
Post by: Alex Libman on November 03, 2008, 04:53:22 PM
Can you please post a screenshot of what you mean by "it was just plain black for me on the default theme" - are the subtle color variations invisible?

(I could have of course made them deliberately imperceivable to the human eye, which would have still left plenty of variation to hide a bitstream in.)
Title: Re: I just posted kiddy porn on this BBS!
Post by: Lindsey on November 03, 2008, 05:00:34 PM
Here is what it looks like in Helios:

http://pics.livejournal.com/llbsb4ever/pic/0001wf9e

And here is what it looks like using the default theme:

http://pics.livejournal.com/llbsb4ever/pic/0001xgxc
Title: Re: I just posted kiddy porn on this BBS!
Post by: Alex Libman on November 03, 2008, 05:20:27 PM
The colors are as I expected.

The font-family casing issue, meh...
Title: Re: I just posted kiddy porn on this BBS!
Post by: shoespider on April 25, 2010, 09:59:01 PM
Or did I?  The world may never know...   8)

However, if you're geeky enough, you might be able to figure this out (http://en.wikipedia.org/wiki/Steganography).  Notice how my recent posts all look weird?  Well, if you look at the source code (i.e. click "QUOTE"), you will notice a lot of extra formatting tags.  Their visual effect is very subtle, but they are there for a reason.  There is a bitstream (http://en.wikipedia.org/wiki/Bitstream) hiding in them!  You'll notice that some tags (only those which are auto-generated by my script) contain random casing: that's one place where the bits are hidden.  Another place is the font color codes (http://en.wikipedia.org/wiki/Web_colors): notice that there are up to four color categories (normal, vowels, numbers, and punctuation): some may be turned off automatically to fit the data into the 20,000 character per-post limit.  Each of them starts with a particular color, but sometimes this color shifts subtly: that's another place the bits are hidden.

Messages that contain fewer than 32 bits are useless, because that's the header identifying where those bits belong (i.e. position in a file).  The rest of the bits are the data.  (Notice that if I'm quoting a message from someone else, which could include a message quoted from me, it could include tags that look to contain the bitstream but could contain garbage that throws off your decoder script.)  If the bitstream reaches the end of file, there will be an EOF (end-of-file) control character (8 bits), followed by another 32-bit address like in the beginning, followed by another bitstream.

I've already put through one small JPEG file, and ran a script to piece it together again.  More than once, actually, because indicating the file position in every message makes harmless repetition possible, which also works as a redundancy check and it makes no difference in which order the bitstream chunks are processed.

So, um, enjoy.
  :lol:

Title: Re: I just posted kiddy porn on this BBS!
Post by: Riddler on April 26, 2010, 11:18:06 AM
whatta fag