文章开始我本想和大家用 JSFuck 打个招呼,结果发现是我天真了,简单的一句 hello world 转换后有近 5 W 字符。
所以大家将就看看下面的图:
【表情】
JSFuck是什么?
下面这个网站是 JSFuck 的官网:
我们可以使用它对我们原有的 JS 代码进行编码风格上的转换。
JSFuck 是使用 [
、]
、(
、)
、!
和 +
六种字符来表示原有的字符的,就像下面这样的对应关系:
1 | false => ![] |
当然还有更多的对应关系没有列出来,但是这并不重要,我们只需要知道 JSFuck 是什么就可以了,接下来我们实战走一波。
如何在实战中处理 JSFuck?
JSFuck 的处理方法有以下几种:
1 | document.write(xxx) |
这里的 xxx 指的就是 JSFuck 的内容,解决方法很简单,我们拿个例子测试一下。
这里本来想拿某文书网的 JSFuck 实战的,但是自从某文书网下了瑞数之后,整个网站频繁瘫痪。
猝。
所以这里用另一个例子测试一下,因为处理的方法是通用的:
复制 JSFuck ,打开 开发者模式,切换至 Console 选项卡,输入下面的内容并执行:
1 | console.log(xxx) |
执行结果如下:
这里看到提示Cannot read property 'attr' of null
我们不管他,我们注意到右手边的vm87:1
,点进去看看:
这里就是浏览器为我们还原的代码了,用其他的方法也是同样的效果。
欢迎大家提供更多 JSFuck 的案例,本文测试的 JS 已经上传至 Github , 后台回复「js逆向」即可获取地址。
本文完。