Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

[Bug] Protobuf message size limit of 2GB exceeded during final stage of diffing large binaries

Đang mở
#82 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

Chưa có ai nhận issue này.

Đánh giá

Độ khó
5/5
Thời gian dự kiến
Hơn một tuần
Mức phù hợp với người mới
15/100
Loại issue
Lỗi
Độ rõ ràng
Cần làm rõ
Mức độ hoạt động
Đình trệ
Công nghệ
java
Lĩnh vực
reverse-engineering

Hướng nghiên cứu

Báo cáo xác định luồng so sánh của BinDiff UI và quá trình tổng hợp cuối cùng của dữ liệu khớp là khu vực bị ảnh hưởng, nhưng không nêu tên tệp nguồn, kiểm thử hoặc điểm vào nào. Trước tiên, hãy tái hiện lỗi với các tệp .BinExport lớn và lần theo nơi thông điệp Protocol Buffers vượt quá 2GB. Được xem là hoàn thành khi diff chạy xong và hiển thị kết quả cho các tệp nhị phân lớn được mô tả.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

**Describe the bug**

When diffing two large and complex binaries (e.g., in the 500MB - 1.5GB range per file), the BinDiff engine successfully processes most of the diff but fails at the very final stage. The process terminates with an error message indicating that the Protocol Buffers message size limit of 2GB has been exceeded.

**To Reproduce**

1.  Generate `.BinExport` files for two large, complex executables. The individual `.BinExport` files themselves are under 2GB.
2.  Load both files into the BinDiff UI for comparison.
3.  The diffing process runs for a significant amount of time, appearing to complete the matching algorithms.
4.  At the end of the process, the error related to the 2GB Protobuf limit is thrown, and the diff fails to complete.

**Expected behavior**

The diff should complete successfully, and the results should be displayed, even for large and complex binaries where the internal match data is extensive.

**Analysis of Root Cause**

This bug suggests that BinDiff is attempting to serialize the **entire set of diff results**—including all function matches, basic block matches, and associated metadata—into a *single internal Protocol Buffers message*. For sufficiently complex binaries, the sheer volume of this match data can cause the resulting message to surpass the hard 2GB limit of the Protobuf library.

This is an architectural limitation in how the final results are aggregated and handled internally.

**Environment:**
* **OS:** `[e.g., Windows 11 / Ubuntu 22.04]`
* **BinDiff Version:** `[e.g., 8.0]`
* **Disassembler:** `[e.g., IDA Pro 8.4]`
* **System RAM:** `[e.g., 64 GB]`
Ngôn ngữ chính
Java
Star
3.2k
Fork
244
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

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. 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.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của google/bindiff

Tất cả issue của google/bindiff

Issue tương tự

Thêm issue về Java

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.