{ Does not return } harmful assumption
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 38/100
- Issue type
- Bug
- Clarity
- Needs clarification
- Activity status
- Quiet
- Tech stack
- cpp
- Domain
- reverse-engineering
Research direction
Reproduce the issue in Binary Ninja 5.3.9757 on Windows 10 x86_64 using a function with an indirect call through a dynamically set vector. Trace why disassembly stops at the call and identify how valid instructions after it are handled; done means the function's decodable instructions are disassembled without the "{ Does not return }" shortcut.
Written by the indexing model from the issue text.
Description
Version and Platform (required):
- Binary Ninja Version: 5.3.9757 free, a99f2380
- OS: windows
- OS Version: 10
- CPU Architecture: x86_64
Bug Description:
Every time you encounter an indirect call via a dynamically set vector (I'm not sure of the exact conditions but I'm sure you know what I'm talking about) you stop disassembling past the call assuming that it will not return. you only put "{ Does not return }".
This leaves a lot of useful and actually running opcodes not decoded and makes static analysis harder for no reason. Forces me to have to paste the hex code into another tool for disassembly.
Expected Behavior:
Please disassemble the entirety of the functions without any "{ Does not return }" short cuts.
Omitting valid and decodable content for ANY reason is a bad idea.
- Dominant language
- C++
- Stars
- 1.3k
- Forks
- 298
- Avg merge
- 4d 13h
- Merged PRs (30d)
- 20
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from Vector35/binaryninja-api
-
Difficulty 1/5 1-3 hours Newbie friendliness 88/100
Vector35/binaryninja-api#8540 ·
-
Difficulty 1/5 Under an hour Newbie friendliness 88/100
Vector35/binaryninja-api#8446 ·
-
Difficulty 1/5 Under an hour Newbie friendliness 88/100
Vector35/binaryninja-api#8444 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
Vector35/binaryninja-api#8441 · 3 comments ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
Vector35/binaryninja-api#8404 ·
All issues in Vector35/binaryninja-api
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
google/libultrahdr#485 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
godotengine/godot#123776 ·
-
bug
Difficulty 1/5 Under an hour Newbie friendliness 60/100
-
good first issue
Difficulty 1/5 Under an hour Newbie friendliness 90/100
-
good first issue
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
ros2/common_interfaces#344 ·