PE view creates functions at data variable exports

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

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

Đánh giá

Độ khó
3/5
Thời gian dự kiến
1-2 ngày
Mức phù hợp với người mới
42/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

Reproduce the issue using the binary referenced by Vector35/binaryninja-api#3709 and inspect address 0x100162e8. Start with the PE loader's export handling, especially its treatment of exports in executable segments. Done means data variable exports no longer produce erroneous functions while real functions continue to be analyzed.

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

Mô tả

Component: BinaryViewType Effort: Low File Format: PE Impact: Low

Version and Platform (required):

  • Binary Ninja Version: 3.2
  • OS: macOS
  • OS Version: 12.4
  • CPU Architecture: M1

Bug Description:
On trying to analyze the binary in Vector35/binaryninja-api#3709, many functions are created for data variable symbols, because they are technically exports (and have an entry), but are in the text segment. These functions are erroneous and misleading.

Steps To Reproduce:
Please provide all steps required to reproduce the behavior:

  1. Open the binary from Vector35/binaryninja-api#3709
  2. Go to 0x100162e8
  3. Observe nonsense function created
  4. Undefine function
  5. Observe real data variable at that address

Expected Behavior:
I expected binja to not try to analyze a data variable

Screenshots:
image
image

Additional Information:
This is a bug in the PE loader observing that the segment of the export is executable, and assuming it can create a function there.

Ngôn ngữ chính
C++
Star
1.3k
Fork
298
Merge trung bình
5 ngày 5 giờ
Pull request đã merge (30 ngày)
19

Hướng dẫn đóng góp

Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này

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 Vector35/binaryninja-api

Tất cả issue của Vector35/binaryninja-api

Issue tương tự

Thêm issue về C++

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.