在浏览器中动态调试恶意JS代码

本文介绍了如何在浏览器中动态调试复杂的恶意JavaScript代码。通过使用Sublime编辑器的JSformat插件进行代码格式化,以及Chrome浏览器的开发者工具设置断点进行动态调试,帮助读者理解和还原混淆的JS脚本。详细步骤包括JS脚本的高亮显示、断点设置及单步执行,以揭示解密后的代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目的:恶意JS代码篇幅太长,而且if结构迭代嵌套switch…case结构,遂有了想要去动态调试的目的,大概看了下恶意代码,一眼看过去我竟然还没看到它调用什么run方法啊,exec方法之类的,而且之前也从来没有调试过JS代码,大家都说语言是相同的,但是吧,对于未知的东西,还是保留了一份畏惧,不过还好,这次之后我就会动态调试JS代码啦

----------------------------------------------------------------------分割线--------------------------------------------------------------------------------------

【10.30更新】

最近在看GandCrabV5.0.3的JS脚本,发现作者对于混淆的JS脚本还原简单说了一句,但是对于不是很懂JS调试的人来说,还是不知道如何还原JS脚本,之前那是在混淆的基础上调试的,这次就简单说一下利用sublime工具辅助,快速帮助还原JS代码。

sublime上有一个插件JSformat,首先ctrl+shift+P,输入install,接着就能看到Package Control:Install Package这一行,选择这一行安装,如下图所示:

如果安装失败,请自己手动安装

这个我就不多说了,请百度,如成功了就在输入框中搜索JSformat并点击安装,只要是类似工具就可以。

之后将混淆的JS代码拷贝过来,在右下角处选择JavaScript,部分var等就变得高亮显示了

然后按下ctrl+alt+F就可以将混淆的JS代码格式化高亮显示,再将它拷贝到以下<script>code</script>框架中,在最后关键的地方下断点就可以看到解密之后的JS代码了,我放一张前后对比的图吧,让大家感受下方法对了是多么重要,我被折磨了许久,不知道怎么还原JS代码。现在把方法教给大家了。

混淆:

还原:

----------------------------------------------------------------------10.30--以上为补充内容--------------------------------------------------------------------

1、JS的介绍

JavaScript 是脚本语言

JavaScript 是一种轻量级的编程语言。

JavaScript 是可插入 HTML 页面的编程代码。

JavaScript 插入 HTML 页面后,可由所有的现代浏览器执行。

2、我们以html网页的形式载入到浏览器中,借助chrome动态调试

<!DOCTYPE html>
<html>
<body>
<p>
Hello World
</p>
<script>
这里放JS代码
</script>
</body>
</html>

3、保存为html文件后,打开浏览器,按下F12,使用开发者工具调试,如图:

4、下好断点以后,按F5刷新页面,重新载入页面时就会停留到断点处,下断点要注意,一定要下在代码一定会执行的地方,否则你刷新N遍也不会断下来。

5、使用F10单步步过,F11单步执行,一边执行一边观察JS代码中各变量的值,查看是否有执行拼接的函数,拼接恶意的字符串。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值