Vector35 / Vector35/binaryninja-api

Cross references duplicated and don't display correctly when switching ILs

Open
#5,757 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Component: UI Impact: Low UI: Cross References
Dominant language
C++
Stars
1.3k
Forks
298
Avg merge
5d 5h
Merged PRs (30d)
19

Description

Version and Platform (required):

  • Binary Ninja Version: 4.1.5746
  • OS: Ubuntu
  • OS Version: 24.04
  • CPU Architecture: aarch64

Bug Description:
We now have what appears to be weirdly duplicated cross-references when switching ILs in certain cases? I'm pretty sure that's not actually what's happening, it's just what the effect looks like from a user perspective.

Here's an example in HLIL on 4.0 stable:

image

When you switch from HLIL to disassembly, it won't change at first, and then will eventually change to this, which is also wrong:

image

Re-clicking on that address leads to this:

image

In the new 4.1 stable we're testing, it does this in HLIL:

image

...which immediately switches to this:

image

...and clicking on the address again gives this:

image

Steps To Reproduce:

  1. Open the binary below
  2. Navigate to 0x217af4
  3. Click on x0
  4. Observe cross-references
  5. Change view to Disassembly
  6. Observe cross-references again

Expected Behavior:
Something closer to what's in 4.0 than 4.1. And, also, showing what I see when I re-click on the address possibly.

Screenshots/Video Recording:
See above.

Binary:
libicui18n.so.70.zip

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

Open the supplied libicui18n.so.70 binary in Binary Ninja and reproduce the sequence at 0x217af4: click x0, inspect cross-references, switch from HLIL to Disassembly, and click the address again. Trace the cross-reference display and IL-switch handling; done means references are not duplicated or stale and remain consistent across the views.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
reverse-engineering
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.