某javascript混淆的解密破解过程分享

@xuing  August 6, 2019
本文是被简书下架后进行的旧文搬运,文章写于 2019.08.06

前言

这段时间碰到一个加密的JS文件。这里分享一下过程,因为被某些人警(wei)告(xie),不能写出加密方式。

总所周知,前端的东西,无论你怎么加密,你最终还是要解密出来给浏览器读的。不管你刷什么花招。浏览器能读,我们就也能读。(除非是native code才会复杂一些,但是这个没那么复杂)
所以破解这个也很简单,稍微下点功夫,加几个断点,跳过循环,单步几次也用不了多久,就可以看到实际的代码了。耐心一些

破解流程

第一步 删除debugger

搜索debugger,然后删除,否则后续会阻碍Chrome调试。

第二步 格式化

使用Chrome打开,点击Sources标签,然后点击{}进行格式化
image.png
这样代码就被格式化了,也可以很方便的添加断点了。

第三步 调试

这里将两个技巧。

  1. console面板直接敲函数名,会打印出函数体。(很基本的技能2333,虽然可能用不上)
    打印函数
  2. 调试技巧:在函数或变量末尾下断点,然后F8执行。查看变量值。如可以在这里下断点。
    断点
    中间的过程,我们不关心~

最后来到类似这样的地方。

这里就会慢慢的展开真正的代码了。
Case里面下几个断点,几次单步后,就可以看到原始代码了。(如果跑飞了的话,就重新来就好了,很快就能定位到关键地方的)

还有就是他会把这些代码跑到一个函数里面,跟到函数里也就知道内容是什么了。如图:

我这里是一个CHM的病毒样本,所以内容是这样的。

好了,完事了。
多一些耐心,会找到你需要的部分的。
这种加密被广泛应用于病毒,恶意软件上,也不知道加密方要不要承担责任。


添加新评论