Vector35 / Vector35/binaryninja-api
Don't display integer arguments as strings
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: 3.6.4561-dev
- OS: macOS
- OS Version: 14.0
- CPU Architecture: ARM64
Bug Description:
In the screenshot below, observe that - sometimes - we show the argument to a a function as a string despite the fact that it is typed as an integer. This is incredibly annoying as a user and the only way to fix it is to change the display type at every single call site.
Steps To Reproduce:
- Open the example binary
- Observe that the function being called many times around 0x0000e200 has a
uint16_tas the first argument (which is not a pointer type!) - Also observe that, in cases where a string is located at that address, it will display the string instead of the integer (which, again, is an identifier and not a pointer)
- Observe that the second argument is a
char *and that it has the same behavior (which is the correct behavior in this circumstance)
Expected Behavior:
We should only ever look through the pointer and resolve the string if we've got a pointer. I understand it may be too limiting to restrict this to a char * (e.g. a uint16_t * may actually be a wide character string pointer).
Screenshots:
Additional Information:
Example binary available to Vector 35 employees, search for divisibly visible purgatory deacon.
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
Start by reproducing the call display around 0x0000e200 in the example binary and trace the argument-display logic that decides when to resolve strings. Verify that integer arguments such as uint16_t remain numeric while pointer arguments such as char * retain string resolution.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- cpp
- Ambito
- reverse-engineering
- Tipo di issue
- Bug
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Stato di attività
- Ferma
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 35/100