文章目录
  1. 1. 总结

今天碰到个问题,要修改混淆过的js代码。index.min.js 代码长下面这个样子.

全是a b c d 一脸懵逼啊。

看了大半天实在没看得懂,尝试debugger,就是没进去。

然后,哈哈,我看到了一段可以代码,有了灵感,

代码竟然是eval,貌似真实的代码再最后一行的字符串里,哈哈。那就打印出eval的结果吧

1
2
3
4
5
6
7
while (c--) {
if (k[c]) {
p = p.replace(new RegExp('\\b' + e(c) + '\\b', 'g'), k[c])
}
}
console.log(p) //我加的这句
return p

然后我就看下Chrome的Console,好像接近原始代码了

:):) 这不是没有混淆的代码吗?看到 Copy 按钮没?点一下

把代码复制到在线格式化的网站 http://tool.oschina.net/codeformat/js

代码就这样被格式化了。

然后把格式化的结果保存到文件index.js 里。让html引用这个文件。

跑跑试试。

然后就报错了

咿呀,缺啥啊?

我们再看看原始文件,找线索。

看看eval上有个分号。吼吼,这个文件莫不是拼接的吧?

好吧,我把混淆的文件index.min.js 上面的部分保存为swiper.min.js,再引入html。

然后呢,呵呵,然后就OK啦。

总结

今天一不小心黑科技了一把,不过也是有理由的:

  1. 利用好js的动态性,它是动态执行的,我就能看到动态的结果
  2. 要找到一个线索,顺杆爬,然后想想自己再正向写代码时会用哪些技术和方式操作,再去尝试。
文章目录
  1. 1. 总结