Vector35 / Vector35/binaryninja-api

MSP430: Incorrect lifting of conditional jump to ret

Open
#8,281 0 comments 0 reactions 0 assignees View on GitHub

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:

  1. Paste the bytes 7f9034120224b01278563041 at address 0 (or open the uploaded binary)
  2. Make function at address 0
  3. 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:

Image Image

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

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.