ブックマークレットなどの難読化された JavaScript のコードをデコードする方法

例えば、下記はニコニコ動画を Tumblr に投稿するブックマークレットですが、これを編集したい時はありませんか。

1
javascript:var d=document,w=window,e=w.getSelection,k=d.getSelection,x=d.selection,s=(e?e():(k)?k():(x?x.createRange().text:0)),f='http://www.tumblr.com/share',l=d.location,e=encodeURIComponent;if(/nicovideo.jp/.test(l.host)){var params=location.href.match(/.*(sm[0-9]{8})/)[1];s='<script type="text/javascript" src="http://ext.nicovideo.jp/thumb_watch/'+params+'"></script><noscript><a href="http://www.nicovideo.jp/watch/'+params+'">'+document.title+'</a></noscript>'}var p='?v=3&u='+e(l.href)+'&t='+e(d.title)+'&s='+e(s);u=f+p;try{if(!/^(.*\.)?tumblr[^.]*$/.test(l.host))throw(0);tstbklt()}catch(z){a=function(){if(!w.open(u,'t','toolbar=0,resizable=0,status=1,width=450,height=430'))l.href=u};if(/Firefox/.test(navigator.userAgent))setTimeout(a,0);else a()}void(0)

そんな時は Online JavaScript beautifier を使うと便利です。これは難読化された JavaScript をデコードすることができるサービスです。

以下のようにデコードすることができました。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
javascript: var d = document,
    w = window,
    e = w.getSelection,
    k = d.getSelection,
    x = d.selection,
    s = (e ? e() : (k) ? k() : (x ? x.createRange().text : 0)),
    f = 'http://www.tumblr.com/share',
    l = d.location,
    e = encodeURIComponent;
if (/nicovideo.jp/.test(l.host)) {
    var params = location.href.match(/.*(sm[0-9]{8})/)[1];
    s = '<script type="text/javascript" src="http://ext.nicovideo.jp/thumb_watch/' + params + '"></script><noscript><a href="http://www.nicovideo.jp/watch/' + params + '">' + document.title + '</a></noscript>'
}
var p = '?v=3&u=' + e(l.href) + '&t=' + e(d.title) + '&s=' + e(s);
u = f + p;
try {
    if (!/^(.*\.)?tumblr[^.]*$/.test(l.host)) throw (0);
    tstbklt()
} catch (z) {
    a = function () {
        if (!w.open(u, 't', 'toolbar=0,resizable=0,status=1,width=450,height=430')) l.href = u
    };
    if (/Firefox/.test(navigator.userAgent)) setTimeout(a, 0);
    else a()
}
void(0)

難読化する必要がある際はこちらのサービスを活用しましょう。

コメント

コメントは受け付けていません。