本文详细介绍JavaScript逆向工程中常用的六种断点设置方法,包括正常断点、条件断点、日志断点、XHR断点、事件监听器断点以及DOM断点。通过具体操作示例,解析各断点的适用场景与调试技巧,帮助开发者高效定位代码逻辑与数据流向。
大家好,今天分享一下断点的多种用法。
正常断点
在 JavaScript 逆向分析中,断点是一项基础且高频使用的调试工具。只需在目标代码行的行号处单击一下,即可成功设置断点。


此外,也可以在行号上点击鼠标右键,从弹出的菜单中选择添加断点选项,从而在指定位置插入断点。
设置完成后刷新页面,若断点位置正确,代码执行至该处便会暂停。此时可在控制台查看变量数值,甚至直接修改变量值,修改后的结果会立即生效。

正常设置的断点通常显示为蓝色。
条件断点
与普通断点类似,在行号处点击右键并选择“添加条件断点”,系统将弹出输入框。在此输入触发暂停的条件表达式后按回车,即可配置完成。



条件断点的视觉标识为黄色,并在行号前显示一个小问号图标。该断点仅在设定的条件为真时才触发暂停,适用于需要针对特定数据状态或逻辑分支进行调试的场景。
日志断点
日志断点不会导致代码执行暂停,但在命中该断点时,会在控制台输出一行指定的日志信息。


配置好的日志断点显示为粉红色。当命中时,控制台会输出 num 和 data 的值,并在日志右侧显示对应的代码行号。这种断点在 jsvmp 调试中较为常见,由于 jsvmp 包含自定义指令和解释器,通常通过插桩方式打印不同变量和寄存器的值以辅助算法分析。
XHR 断点
XHR 断点允许在任意 XMLHttpRequest 请求发送时暂停,或者在发送包含特定关键字的请求时暂停。


若需针对包含特定关键字的请求设置断点,可点击加号按钮,并填写目标关键字即可。

触发断点时,执行流会自动停在 send 方法处。此时观察左侧面板,并未添加常规断点,而右侧断点类型标识会自动变为黄色。
事件断点
在 XHR 断点下方,存在一个事件监听器断点功能。

该功能支持对几乎所有类型的事件设置断点,例如鼠标点击、移动、双击等事件。它常用于调试验证码滑块或点击类验证码的逻辑流程。

选中单击事件断点后,在页面任意位置点击,即可自动触发断点。此时可以看到断点处理函数接收了一个 g 参数,该参数保存了当前点击鼠标的坐标位置,同时还包含其他用于处理单击事件的参数。
DOM 断点
DOM 断点主要用于调试 DOM 树中新元素创建或现有元素删除的场景。

例如,可以设置“子树修改”断点,因为在翻页操作中通常会涉及子树的变更。


添加 DOM 断点后,相关元素前会显示一个蓝色小圆点,同时在 DOM 断点标签页中可查看已对哪些元素设置了断点。此时尝试点击下一页:

断点成功触发。观察右侧调用栈,可以看到执行流程先是发送请求,随后调用 success 方法解析数据,最终通过 jQuery 将数据填充至 DOM 树。若未使用 XHR 断点,也可利用此方式反向追踪请求发送的位置。
总结
随着 JavaScript 代码日益复杂,断点已成为逆向工程中不可或缺的工具。然而,当遇到特殊需求或常规断点难以解决的情况时,尝试其他类型的断点往往能取得事半功倍的效果。
到此这篇关于JS打断点的六种常用姿势的文章就介绍到这了,更多相关JS打断点姿势内容请搜索本站以前的文章或继续浏览下面的相关文章希望大家以后多多支持本站!