Broken navigation with nested anonymous structures
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
- 52/100
- Loại issue
- Lỗi
- Độ rõ ràng
- Khá rõ ràng
- Mức độ hoạt động
- Sôi nổi
- Công nghệ
- cpp
- Lĩnh vực
- reverse-engineering
Hướng nghiên cứu
Start by reproducing the nested anonymous-structure and union examples in the types view, then inspect the HLIL/MLIL tokens and their typeNames as described. Trace how double-click navigation resolves those tokens, including data variables, and consider the issue done when inner fields navigate to their definitions.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Version and Platform (required):
- Binary Ninja Version: 6.1.10668-dev
- Edition: Ultimate
- OS: macOS
- OS Version: 27.0
- CPU Architecture: M5
Bug Description:
Trying to navigate to a field nested in one or more anonymous structures fails to navigate.
Steps To Reproduce:
Structure:
struct foo {
int pad;
struct {
int bar;
} inner;
};
Code (x86 Windows):
int32_t sub_0(struct foo* arg1)
mov eax, dword [esp+0x4]
mov eax, dword [eax+0x4]
retn
HLIL:
return arg1->inner.bar
Trying to double click bar fails to navigate to the field. Looking at the token itself:
>>> current_il_instruction.tokens[-1].typeNames
['bar']
The token doesn't have valid type information for figuring out how to navigate to it.
Making it a union instead:
union foo_u
{
struct
{
int32_t a;
int32_t b;
} bar;
};
Function type:
int32_t sub_0(union foo_u* arg1)
HLIL (broken):
return arg1->bar.__offset(0x4).d
MLIL:
eax = eax_1->bar.b
Double clicking b in MLIL also fails to navigate. The token for this:
>>> current_il_instruction.tokens[-1].typeNames
['foo_u', 'bar', 'b']
These two types also fail to navigate when made into data variables.
Expected Behavior:
Double clicking the inner field of these structures should navigate to that field in the types view.
- 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
- Đọ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 Vector35/binaryninja-api
-
Độ khó 1/5 1-3 giờ Mức phù hợp với người mới 88/100
Vector35/binaryninja-api#8540 ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 88/100
Vector35/binaryninja-api#8516 ·
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 92/100
Vector35/binaryninja-api#8503 ·
-
normalize time logs from WARP Đang mở
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 88/100
Vector35/binaryninja-api#8446 ·
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 88/100
Vector35/binaryninja-api#8444 ·
Tất cả issue của Vector35/binaryninja-api
Issue tương tự
-
Độ khó 1/5 1-3 giờ Mức phù hợp với người mới 92/100
autowarefoundation/autoware_universe#13413 ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 88/100
-
automated-analysis bug memory-safety
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 86/100
-
Sensor initialization takes very long when `--initial-sim-time` is set to current UNIX timestamp Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
gazebosim/gz-sensors#662 · 1 bình luận ·