Vector35 / Vector35/binaryninja-api
MSP430: Incorrect lifting of conditional jump to ret
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 1.3k
- Forks
- 298
- Avg merge
- 5d 5h
- Merged PRs (30d)
- 19
Description
Version and Platform (required):
- Binary Ninja Version: 5.4.9891-dev (7df55f17)
- Edition: Commercial
- OS: Arch Linux
- OS Version: rolling release
- CPU Architecture: x64
Bug Description:
The lifting of a function that has a conditional jump to a ret instruction has an infinite loop at the end instead of a return.
Steps To Reproduce:
Please provide all steps required to reproduce the behavior:
- Paste the bytes
7f9034120224b01278563041at address 0 (or open the uploaded binary) - Make function at address 0
- Observe wrongly lifted code
Expected Behavior:
I expected the code to be lifted correctly, with a return at the end of the function.
Screenshots/Video Recording:
Binary:
keen dawn accelerates harmoniously
Additional Information:
This is a minimal example. I cannot share the original binary. It makes no difference whether the call target is valid.
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.
Research direction
Reproduce the issue by placing the bytes 7f9034120224b01278563041 at address 0, making a function there, and inspecting the lifted code. Trace the MSP430 lifting and control-flow handling for the conditional jump to ret; done means the function ends in a return rather than an infinite loop.
Written by the indexing model from the issue text.
Assessment
- Domain
- reverse-engineering
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Clearly specified
- Newbie friendliness
- 52/100