Vector35 / Vector35/binaryninja-api

The `Override Call Type...` UI command doesn't appear when HLIL has multiple calls in a single HLIL instruction

Aperta
#7,983 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Lingua principale
C++
Stelle
1.3k
Fork
298
Merge medio
5g 5h
PR unite (30g)
19

Descrizione

Version and Platform (required):

  • Binary Ninja Version: 5.3.9147-dev Ultimate (209ad20f)
  • Edition: Ultimate
  • OS: macOS
  • OS Version: 26.3
  • CPU Architecture: M1

Bug Description:
When a HLIL instruction (or line?) has multiple call expressions, the Override Call Type... UI command does not appear in the right-click menu. If there is just a single call in a HLIL instruction it works fine.

Expected Behavior:
The command should be able to handle when there are multiple calls in a single HLIL instruction. In the screenshot below I should be able to override the call type of both the outer and inner calls to objc_msgSend.

Screenshots/Video Recording:

Image

Binary:
The screenshot comes from the function -[NSRTFD writePath:docInfo:errorHandler:remapContents:markBusy:hardLinkPath:] in the Foundation library for the DYLD Shared Cache for iOS 26.0 for an iPhone 17 Pro Max.

Additional Information:
This issue seems to have always existed, I just hadn't reported it until now. The workaround is simply to find the call in MLIL and apply the override that way. Its a bit of an inconvenience because I don't normally have HLIL and MLIL side by side (usually HLIL and disassembly) but it does work.

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Direzione di ricerca

Reproduce the issue in the HLIL UI using the reported Foundation function, comparing a single-call instruction with one containing nested calls. Check how the right-click menu handles call selection and compare the behavior with the MLIL workaround; done means the command appears for the HLIL instruction and supports both calls.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
cpp
Ambito
reverse-engineering
Tipo di issue
Bug
Difficoltà
3/5
Tempo stimato
1-2 giorni
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
45/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.