function(p,a,c,k,e,r) de-mystify trick
Friday, September 21, 2007 5:40:41 PM
eval(function(p,a,c,k,e,r)
here's a small demonstration of how to turn that code into something sensible..
A word of warning: I'm experimenting with Wink for creating Flash screencast-type demonstrations. That means you agree to receive a 1.5 M .swf file of screenshots and text by clicking through to the post.
I haven't quite mastered Wink, some unintentional mouse movement might occur but anything in the spirit of experimentation.. Feel free to tell me in comments whether you like more of those Flash-based visual demonstrations or prefer the old-fashioned screenshot approach.









Hallvord R. M. Steenhallvors # Friday, September 21, 2007 5:44:03 PM
http://www.hallvord.com/opera/unpack.htm
FataL # Friday, September 21, 2007 6:53:01 PM
But it's mutch better to see this demo through Opera RSS reader.
Kyle Bakerkyleabaker # Friday, September 21, 2007 7:20:25 PM
_Grey_ # Friday, September 21, 2007 8:17:51 PM
I kind of liked those flash tutorials that explain Opera functionality... they have a "next" button in the lower right corner imho.
"Normal" screenshots will do just fine, though
edit: Oh, nearly forgotten to add: I like this trick very much
Non-Tropponon-troppo # Friday, September 21, 2007 11:47:40 PM
I've already made some buttons to use here: http://operawiki.info/MakingFlashTutorials
larskl # Friday, September 21, 2007 11:53:13 PM
Øyvind ØstlundNoteMe # Saturday, September 22, 2007 12:17:12 AM
As I wrote about a long time ago, Firefox has an extension like this. It formats the source, and you can see the CSS applied to any element with it. Really helpful tool. Together with the CSSViewer you save yourself a lot of time.
Except that, I really hope you will show us more tricks of the trade Hallvord. This blog gets better every day!!!
- ØØ -
scipio # Saturday, September 22, 2007 7:36:21 AM
Smir # Saturday, September 22, 2007 1:56:49 PM
I knew of CTRL+A, CTRL+C in alert boxes. It is terrible annoying that this does not work in other browsers!
Hallvord R. M. Steenhallvors # Saturday, September 22, 2007 8:07:22 PM
NoteMe: the "eval=alert" trick is somewhat beyond the scope of the Firefox tool (presuming it is a code beautifier only). This script is compressed in a way that means the original source code makes no sense, and you get source that makes sense to read only by actually running it. To see meaningful source here you'd need a combined JS debugger (to run the decompress routine and stop afterwards) and code beautifier (to format the generated scripts nicely).
Øyvind ØstlundNoteMe # Saturday, September 22, 2007 9:54:10 PM
Even though I can't read the code in the flash movie, I should have taken a hint if I had read the first line again and understood it was the "re-compilation"/interpretation you where on about. Neither the less, thanks for correcting me back to the stone age there.
Firefox do have an uneval function as well for some reason. Although I can't see much use for it except doubling the amount of Fuzzytest bugs++.
- ØØ -
_Grey_ # Sunday, September 23, 2007 1:28:38 AM
phamgiagia # Friday, October 26, 2007 12:18:38 AM
Ohwzay # Wednesday, April 2, 2008 12:53:24 PM
var n=document.createElement('textarea');document.body.appendChild(n);eval=function(s){n.value+=s;};
instead.
http://www.arachnoid.com/arachnophilia/index.html contains a beautifier, and http://www.prettyprinter.de/ usually works just fine. What is it Hallvord is using? No public script I assume?
Hallvord R. M. Steenhallvors # Wednesday, April 2, 2008 6:42:08 PM
I mostly use ad-hoc stuff, I've written one PHP script that does a pretty good job at being a minimal JS pretty-printer - knows just enough syntax to parse it - and I'm going to make that public at some point. When I get around to it.
Anonymous # Thursday, December 11, 2008 6:27:07 PM
_Grey_ # Friday, December 12, 2008 7:57:36 PM
Here, did that for you.
@Moderator: You can delete his code.
@topic: I recently found a blog post dealing with "unpacking" packer. Might be useful.
Hallvord R. M. Steenhallvors # Saturday, December 13, 2008 9:24:58 PM
or
when you load the modified code, you will see the original, unpacked version.
Anonymous # Saturday, December 27, 2008 2:31:42 PM
Anonymous # Friday, January 30, 2009 10:58:07 PM
Hallvord R. M. Steenhallvors # Tuesday, February 3, 2009 8:26:40 PM
Anonymous # Thursday, March 12, 2009 5:12:42 PM
Anonymous # Tuesday, April 21, 2009 8:59:40 PM
Anonymous # Tuesday, August 4, 2009 11:04:49 AM
Anonymous # Friday, August 13, 2010 2:07:32 AM
Hallvord R. M. Steenhallvors # Friday, August 13, 2010 9:33:01 PM
eval=function(str){ window.open('data:,%27+encodeURIComponent(str)) }
somewhere before the packed script.
Anonymous # Thursday, October 28, 2010 9:53:50 AM
Anonymous # Saturday, November 6, 2010 5:23:33 AM
Anonymous # Sunday, February 20, 2011 5:31:08 AM
Hallvord R. M. Steenhallvors # Sunday, February 20, 2011 3:11:54 PM