Live data from Hacker News

A technique for hiding your JavaScript code

patrick-wied.at

21–30 of 36 posts

Re: A technique for hiding your JavaScript code

#21
post #2

Bonus points for not just creating an image, but hiding the code steganographically in an existing image (ie only using the LSB of each pixel to hide code)!

Comments should make it fairly straightforward to accomplish: function foo() { /* ...characters for image data... / bar(); / ...more image data... */ The asterisks are not showing up but you get the idea. It checks out with the comments part of the javascript spec as well: http://ecma-international.org/ecma-262/5.1/#sec-7.4 ...as the text inside the comment can be any unicode code unit except for an asterisk (For sou…

If you want asterisks to show up, * put a space on both sides.

  If you want to do something *f*a*n*c*y* put two spaces
  at the front of the line, it will show up verbatim
  including line breaks.

Re: A technique for hiding your JavaScript code

#25

This might be useful as a way to reduce your code size using the image's compression algorithm

Maybe, but obviously we would need loss-less compression. And the current web standards like gzip are optimized and perfectly suited for "text-like" loss-less compression, so it seems a little pointless to apply any image-optimized loss-less compression.

Re: A technique for hiding your JavaScript code

#26

This might be useful as a way to reduce your code size using the image's compression algorithm

Modern servers and browsers support the DEFLATE algorithm for compressing over HTTP, which is the same algorithm as PNG. The only difference is that PNG preprocesses with a predictor to exploit row-to-row correlations in an image. Since the assumptions of that predictor are less likely to be sound with JavaScript code than with practical image data, and since lossless compression is a zero-sum game, PNG will perform worse than plain old DEFLATE on average for JS code.

Re: A technique for hiding your JavaScript code

#28
post #15

Earlier quoted context omitted.

"Developer tools" is the new View Source. Browsers should really just redirect View Source to the live DOM view of their developer tools, that's what most people want from it.

Maybe, but there's still a lot of value in being able to see pre-rendered code so I wouldn't go as far as a redirect. Somehow combining the two could be a good option.

I like having them both personally. I'll normally use the page inspector for most things, but I like to see the raw HTML I'm producing from a web app too, along with the CSS and JS tags, etc.

Re: A technique for hiding your JavaScript code

#29
post #19

If someone is clever enough to hide their JavaScript like this, then they hopefully know that it isn't foolproof. In other words, don't rely on obfuscating your code for anything related to security (as an example).

Did you read to the bottom? He knows it doesn't really hide the code. He's just having fun and slowing down the lowest level of code-stealers.

Re: A technique for hiding your JavaScript code

#30
post #8

I can't help but feel saddened that we learned how to code using View Source (indeed, it's a big factor in the web's success) and now we're trying to prevent others doing the same. Also, this seems like a surprisingly naive generalisation to me: "... a first measurement for preventing evil business guys from stealing your code – developers who can figure the code out are (mostly) kind enough not to steal it."

The author has replied with the edit:

ADD: Jeez, don’t get me wrong, I’m not really trying to hide my code from anyone, I actually love writing open source software, it was just a fun idea to do this experiment :)

Post reply on HN