Importing symbols from a loaded diff in IDA is significantly slower than a diff performed within IDA
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức phù hợp với người mới
- 35/100
- Loại issue
- Lỗi
- Độ rõ ràng
- Khá rõ ràng
- Mức độ hoạt động
- Đình trệ
- Công nghệ
- cpp
- Lĩnh vực
- reverse-engineering
Hướng nghiên cứu
Tái hiện vấn đề trong IDA bằng các tệp nhị phân lớn và so sánh các lần nhập ký hiệu từ một diff mới với các lần nhập từ kết quả diff đã lưu. Theo dõi các đường dẫn gọi của BinExport2 và google::protobuf::MessageLite::ParsePartialFromIstream được mô tả trong báo cáo, sau đó xác minh rằng các kết quả đã lưu không còn tải các tệp BinExport một lần cho mỗi ký hiệu và thời gian nhập là tương đương.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
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
- Ngôn ngữ chính
- Java
- Star
- 3.2k
- Fork
- 240
- Chỉ số merge pull request
- Không có pull request nào được merge trong 30 ngày
Chuẩn bị môi trường
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của google/bindiff
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
-
question
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 42/100
-
ida pro 9.1 i64 db diff failsĐang mở
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 35/100
-
[Bug] Error when buildĐang mở
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 55/100
-
[Bug] Protobuf message size limit of 2GB exceeded during final stage of diffing large binariesĐang mở
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 15/100
Tất cả issue của google/bindiff
Issue tương tự
-
and-bugs and-ui gpx-track
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 86/100
Maintainer thường phản hồi trong vòng 2 ngày
-
TerminalRow.mSpaceUsed (short) overflows on terminals wider than 1023 columns, crashing setCharĐang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 88/100
termux/termux-app#5340 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
OpenAICompatibleToolDescriptorSchemaGenerator drops requiredProperties of nested object parametersĐang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
Maintainer thường phản hồi trong vòng 7 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 86/100
apache/rocketmq-dashboard#5110 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
frontend
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 88/100
No-Country-simulation/S08-26-equipo04#210 ·
Maintainer thường phản hồi trong vòng 1 ngày