More accurate support for lock prefixed instructions
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
- Tính năng
- Độ rõ ràng
- Khá rõ ràng
- Mức độ hoạt động
- Đình trệ
- Công nghệ
- cpp
- Lĩnh vực
- compilers, reverse-engineering
Hướng nghiên cứu
Start by locating the HLIL decompiler handling for lock-prefixed instructions, using the assembly and HLIL examples in the issue as the behavioral reference. The change should preserve the interlocked meaning of increment, decrement, compare, and other lock-prefixed operations rather than presenting them as ordinary arithmetic.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
First of all, I want to congratulate anyone who works on BN. I'm evaluating replacing my daily reverse engineering tool (which, I guess anyone who reads this already knows him.) with BN. More than that, I feel like I want to work at Vector35. That is what I really feel about BN. So thank you all for putting this effort into this beautiful project. There are a lot of things already in BN that I want to saw in other tools. But of course there are some other things I want to saw in BN, too! So, here is another one for you... I mean, for us...
Currently, BN's decompiler turns this assembly
004010a0 int32_t list_push(struct list_T* list, struct person_T* person)
004010a3 8b4508 mov eax, dword [ebp+0x8 {list}]
004010a6 83c004 add eax, 0x4
004010a9 f0ff00 lock inc dword [eax]
into this in HLIL view:
004010a0 int32_t list_push(struct list_T* list, struct person_T* person)
004010a6 list->size = list->size + 1
I think it would be more accurate if decompiler make us know that this is an interlocked increment. Maybe something like this?
InterlockedIncrement(&list->size);
There are other variations(decrement, compare etc..) too for sure. Support for all of them in a release would be very pleasant.
- 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 ·