Vector35 / Vector35/binaryninja-api
The `Override Call Type...` UI command doesn't appear when HLIL has multiple calls in a single HLIL instruction
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:
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
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- 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