function(p,a,c,k,e,r) de-mystify trick

If you ever came across code that starts

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. …

Advertisements

30 thoughts on “function(p,a,c,k,e,r) de-mystify trick

  1. Other than being hard to read, I find this method of demonstrating to be very interesting and effective. However, I somewhat prefer old fashioned screenshots more, just so I can study each shot and see more of what is going on. I know this is a very simple demo, but for example you yahoo blog earlier would be hard to follow in a video imho.

  2. My problem with this was also that the video continued without my interaction (I stopped it though when I saw the stop-button).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 :Dedit: Oh, nearly forgotten to add: I like this trick very much 🙂 I have actually seen code like that and been unable to do anything with it (not that it was important).

  3. I actually like text posts better. With this flash movie I wasn't always sure where to look and felt like I might miss stuff. And it went on pretty fast which didn't make it easier. With text+screenshots one can just take oneself more time.

  4. Thanks for the tip, although I hope something like this will be built into the Opera Dev Tools in the end. Not only for JS, but (X)HTML as well as CSS.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!!!- ØØ –

  5. Good points on speed and interaction, thanks. Non-troppo, I will definititely look at your Wink resources :)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).

  6. I must have missed the point when I gave up on reading any of the words in the Flash file. Please don't tell me that you can? I can't handle going blind at this age.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++.- ØØ –

  7. Haven't tried prettyprinter.de, if it can beautify, say, Y!Mail or GMail's JS libs I'll be quite impressed.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.

  8. Anonymous writes:I don't understand ?My Code:eval(function(p,a,c,k,e,r){[Edit: removed a very large section of unreadable code. Hallvord]

  9. Anonymous: just create a line at the top of the script doing either

    eval=alert;

    or

    eval=document.write;

    when you load the modified code, you will see the original, unpacked version.

  10. Somebody writes:

    Your trick doesn't work for me but i found similar idea, just changeeval(function(p,a,c,k,e,r){…on alert(function(p,a,c,k,e,r){…

  11. Anonymous writes:

    If you want to hack luckyzoom for whateverr reason then remove this code'+xgdf7fsgd56('^bko}k.{~i|ojk.za.h{bb.xk|}ga`.ah.Coigm.Taac')+'line beginning appendChild(this.bigImage);var str=

  12. goodHelp writes:

    thank you for the ideas here. On this first experience with a packer I needed them all. the alert box terminated my long unpack. I found a way with no practical limit on size:make the function named>> eg. unPAC=(function(p,a,c,k,e,d){e=function(c){return…..assign an html text node value to the value produce by unPAC . I cheated, avoid tough DOM stuff and used jQuery like this..$j('.unP').text(unPAC)works great. .unP is a div I gave a class="unP".

  13. Anonymous writes:Wow, you all sure go to a lot of trouble to decrypt some kid's code. Here's just one of the numerous ways to crack the toy.1. Copy javascript: 2. Paste to text file and save as *.HTML3. Open with I.explorer4. When it opens, allow script to run5. Open "Tools; Developer Tools"6. On HTML tab, open HTML header and then 7. Tab to move through values; most individuals will want the "src" value, which is one past "src".

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s