Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

Importing symbols from a loaded diff in IDA is significantly slower than a diff performed within IDA

未关闭
#3 3 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

评估

难度
4/5
预计耗时
3-5 天
新手友好度
35/100
Issue 类型
缺陷
描述清晰度
基本清楚
活跃度
停滞
技术栈
cpp

调研方向

使用大型二进制文件在 IDA 中重现该问题,并比较新 diff 中的符号导入与已保存 diff 结果中的导入。跟踪报告中描述的 BinExport2 和 google::protobuf::MessageLite::ParsePartialFromIstream 调用路径,然后验证已保存的结果不再针对每个符号加载一次 BinExport 文件,并且导入时间相当。

由索引模型根据 Issue 内容生成。

描述

bug enhancement

Steps to reproduce the problem:

  1. Load two large binaries and create IDBs
  2. Bindiff one of them against the other
  3. Import a couple of symbols and note the time it takes
  4. Save the diff results
  5. Restart IDA
  6. Load saved diff results
  7. Import the same number of symbols and again note the time it takes.

What is the expected behavior?

It should take about the same amount of time.

What went wrong?

I bindiffed bindiff (haha) against binexport and put breakpoints on calls to BinExport2::BinExport2 and google::protobuf::MessageLite::ParsePartialFromIstream. When working with a fresh diff performed within IDA bindiff does not load the binexport file for every symbol, but when working with loaded diff results binexport will load the binexport files for EACH symbol that's being ported.

What version of the product are you using? On what operating system? Bindiff 7, windows x64, IDA 7.6.210427

Any other comments? No

Ported from b/199001147

主要语言
Java
星标
3.2k
派生
240
PR 合并指标
30 天内没有已合并 PR

环境准备

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

google/bindiff 的其他 Issue

查看 google/bindiff 的全部 Issue

相似的 Issue

更多 Java Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。