目的:恶意JS代码篇幅太长而且if結构迭代嵌套switch…case结构,遂有了想要去动态调试的目的大概看了下恶意代码,一眼看过去我竟然还没看到它调用什么run方法啊exec方法之类的,而且之前也从来没有调试过JS代码大家都说语言是相同的,但是吧对于未知的东西,还是保留了一份畏惧不过还好,这次之后我就會动态调试JS代码啦
最近在看GandCrabV5.0.3的JS脚本发现作者对于混淆的JS脚本还原简单说了一句,但是对于不是很懂JS调试的人来说还是不知道如何还原JS腳本,之前那是在混淆的基础上调试的这次就简单说一下利用sublime工具辅助,快速帮助还原JS代码
如果安装失败,请自己手动安装
这个我就鈈多说了请百度,如成功了就在输入框中搜索JSformat并点击安装只要是类似工具就可以。
之后将混淆的JS代码拷贝过来在右下角处选择JavaScript,部汾var等就变得高亮显示了
然后按下ctrl+alt+F就可以将混淆的JS代码格式化高亮显示再将它拷贝到以下<script>code</script>框架中,在最后关键的地方下断点就可以看到解密之后的JS代码了我放一张前后对比的图吧,让大家感受下方法对了是多么重要我被折磨了许久,不知道怎么还原JS代码现在把方法教給大家了。
JavaScript 是一种轻量级的编程语言
JavaScript 插入 HTML 页面后,可由所有的现代浏览器执行
2、我们以html网页的形式载入到浏览器中,借助chrome动态调试
3、保存为html文件后打开浏览器,按下F12使用开发者工具调试,如图:
4、下好断点以后按F5刷新页面,重新载入页面时就会停留到断点处下斷点要注意,一定要下在代码一定会执行的地方否则你刷新N遍也不会断下来。
5、使用F10单步步过F11单步执行,一边执行一边观察JS代码中各變量的值查看是否有执行拼接的函数,拼接恶意的字符串