跳至正文
首页 » Blog » 表排序和中继器的性能改进

表排序和中继器的性能改进

性能是任何软件可用性和效率的关键因素,Burp Suite 也不例外。我们最近专注于增强 burp Suite 在几个关键领域的性能,并在减少处理时间、最大限度地减少内存使用和确保更流畅的用户体验方面取得了重大进展。请继续阅读,深入了解我们在最近版本中解决的几个性能问题。

表排序

表是 Burp Suite 的核心组件。 Burp 中生成的大部分数据都以表格格式呈现。能够通过排序来操作这些数据是许多用户工作流程的关键。本节详细介绍了我们解决问题的方法以及可衡量的性能改进。

问题

表排序的主要问题源于如何处理数据检索和排序操作。对大型项目文件上的表进行排序会导致大量缓慢且重复的磁盘检索,从而严重影响性能。当应用多列排序时,需要多达两到三倍的数据检索,从而加剧了问题。

最令人沮丧的问题之一是用户界面 (UI) 在这些操作期间冻结。由于排序是在 UI 线程上进行的,因此 Burp 将变得无响应。几乎所有表操作(例如插入和删除)也会发生这种情况,因为新值也需要排序。这导致了糟糕的体验,因为用户可能不确定 Burp Suite 是否已崩溃或是否仍在处理。

解决方案

为了解决这些问题,我们进行了一系列技术改进,重点是优化数据检索、从 UI 线程卸载处理以及增强视觉反馈。

  1. 快照和内存缓存:我们拍摄了表数据的快照并在单独的线程上对其进行排序。这种方法涉及在排序之前将所有必要的数据检索到内存缓存中。通过这样做,我们减少了从磁盘重复检索数据(有时是同一对象)的需要。
  2. 后台线程排序:通过将排序操作的大部分处理转移到不同的线程,我们能够维护响应灵敏的用户界面。排序完成后,我们将结果传回 UI 线程以更新表。开发过程中的一个主要考虑因素是跨多个线程的数据完整性的仔细管理。
  3. 用户体验改进:为了改善用户体验,我们在排序列的标题中添加了旋转动画,让用户知道 Burp 正在后台运行。

结果和绩效指标

我们实施的更改显着提高了表排序性能。以下是一些关键结果:

  • 排序时间减少:对于大型数据集,排序时间显着减少。这意味着以前需要几分钟才能对大量代理历史记录(250,000 多个条目)进行排序,现在只需几秒或更短的时间即可完成。
  • UI 响应能力:过渡到多线程排序消除了明显的 UI 冻结。即使在密集的分拣操作过程中,也能实现流畅且响应灵敏的界面。

为了监控性能改进的结果,我们引入了一套测试和仪表板,反映代码库中的更改如何影响 Burp 的典型工作流程。这不仅使我们能够量化所做改进的价值,还有助于我们防止性能下降。

我们的性能测试证明了这些收益,即排序时间的大幅减少和 UI 响应能力的提高。这些结果强调了我们方法的有效性以及给用户带来的切实好处。

单中继器

Repeater 是 Burp Suite 的核心部分,用于手动修改和重新发送 HTTP 请求 – 它通常是渗透测试人员工作流程的关键。而且,就像网络浏览器一样,随着时间的推移,用户可能(意外地或以其他方式)最终会看到很多转发器”选项卡,而我们并没有对此进行最好的处理。

问题

加载 Burp Suite 时,我们之前会为您拥有的每个 Repeater 选项卡加载一组 UI(用户界面)组件。不幸的是,这意味着如果您的项目文件中有很多 Repeater 选项卡,那么内存使用量和加载 Burp 所需的时间将受到显着影响,因为每组组件都会占用一点内存。

即使您没有积极使用 Repeater,它也可能导致后台出现一般 UI 延迟,这可能会导致使用 Burp 时的挫败感,这是可以理解的。

解决方案

我们已尝试通过更改中继器选项卡的内部表示方式来解决该问题。现在,我们只使用一组 UI 组件,每个 Repeater 选项卡仅保留其单独的选项卡状态,例如您选择的文本、选择的编辑器视图和编辑历史记录。这意味着如果您有大量选项卡,则可以节省大量内存。我们现在还更聪明地确保选项卡在第一次单击之前不使用任何资源。

Repeater 的外观功能应该没有任何变化,希望您唯一会注意到的是性能改进!

结果和绩效指标

与表排序工作一样,我们设置了自动回归测试,以便在性能下降时通知我们。这些跟踪启动具有 300 个中继器选项卡的项目文件时所花费的时间和使用的内存。我们还注意到选项卡操作总体上也有了显着改进,例如复制或关闭组选项卡。

我们已经看到内存和性能方面的显着改进,并且我们还在这里更加严格地提高了性能阈值,这意味着我们永远不应该回到以前的状态。

我们在性能方面做了很多工作。特别是,我们还对消息编辑器中大型响应正文的渲染、站点地图过滤的速度以及 Intruder 中简单单词列表的内存使用情况进行了改进。

发布时间表

2024.5

  • 表排序
  • 延迟加载扩展选项卡

2024.6

  • 站点地图过滤速度

2024.7

  • 单中继器
  • 消息分析器改进了速度和内存使用情况

2024.8及以后

  • 入侵者简单列表内存改进
  • 进一步的消息分析器改进

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注