Importing symbols from a loaded diff in IDA is significantly slower than a diff performed within IDA
还没有人认领这个 Issue。
评估
- 难度
- 4/5
- 预计耗时
- 3-5 天
- 新手友好度
- 35/100
- Issue 类型
- 缺陷
- 描述清晰度
- 基本清楚
- 活跃度
- 停滞
- 技术栈
- cpp
调研方向
使用大型二进制文件在 IDA 中重现该问题,并比较新 diff 中的符号导入与已保存 diff 结果中的导入。跟踪报告中描述的 BinExport2 和 google::protobuf::MessageLite::ParsePartialFromIstream 调用路径,然后验证已保存的结果不再针对每个符号加载一次 BinExport 文件,并且导入时间相当。
由索引模型根据 Issue 内容生成。
描述
Steps to reproduce the problem:
- Load two large binaries and create IDBs
- Bindiff one of them against the other
- Import a couple of symbols and note the time it takes
- Save the diff results
- Restart IDA
- Load saved diff results
- 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
环境准备
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
google/bindiff 的其他 Issue
-
bug
难度 2/5 1-3 小时 新手友好度 78/100
-
question
难度 3/5 1-2 天 新手友好度 42/100
-
难度 4/5 3-5 天 新手友好度 35/100
-
难度 1/5 1 小时以内 新手友好度 55/100
-
难度 5/5 一周以上 新手友好度 15/100
相似的 Issue
-
难度 2/5 1-3 小时 新手友好度 88/100
termux/termux-app#5340 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 86/100
apache/rocketmq-dashboard#5110 ·
维护者通常 1 天内回复
-
难度 1/5 1 小时以内 新手友好度 88/100
维护者通常 4 天内回复
-
bug
难度 2/5 1-3 小时 新手友好度 84/100
维护者通常 1 天内回复
-
bug javascript
难度 2/5 1-3 小时 新手友好度 88/100
维护者通常 1 天内回复