improper "add negative -> subtract" transformation with floating point
@rssor ci sta già lavorando.
Dal 12/1/2022.
Valutazione
Questa issue non è ancora stata valutata.
Descrizione
Version and Platform (required):
- Binary Ninja Version: 2.5.3140-dev (Build ID 532595b6)
- OS: macOS
- OS Version: 11.6
Steps To Reproduce:
Please provide all steps required to reproduce the behavior:
-
Open this binary.
-
Notice in HLIL:
00000000 uint64_t _start(float arg1 @ v0)
00000004 data_4000
0000001c return zx.q(int.d(arg1 - 0x41666666))
00000020 uint64_t sub_20(float arg1 @ v0)
00000024 data_4000
0000003c return zx.q(int.d(arg1 f+ 0x41666666))
Expected Behavior:
The functions are identical except for loading a different constant: one is "negative" 0x41666666, one is "positive" 0x41666666. In reality, both constants are used as 32-bit floats, not signed integers.
In the second function, Binary Ninja indicates that floating point addition is being used with f+ 0x41666666. But in the first function, Binary Ninja produces just - 0x41666666. This is wrong in two ways: it doesn't indicate that floating point is being used, and in any case arg1 f+ -0x41666666 (i.e. arg1 f+ 0xbe99999a, i.e. arg1 + -0.300000011921) is not equivalent to arg1 f- 0x41666666 (i.e. arg1 + 14.3999996185).
- Lingua principale
- C++
- Stelle
- 1.3k
- Fork
- 298
- Merge medio
- 5g 5h
- PR unite (30g)
- 19
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.
Altre issue di Vector35/binaryninja-api
-
Difficoltà 1/5 1-3 ore Idoneità per principianti 88/100
Vector35/binaryninja-api#8540 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
Vector35/binaryninja-api#8516 ·
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 92/100
Vector35/binaryninja-api#8503 ·
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 88/100
Vector35/binaryninja-api#8446 ·
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 88/100
Vector35/binaryninja-api#8444 ·
Tutte le issue di Vector35/binaryninja-api
Issue simili
-
Website Doc Typo Aperta
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 92/100
-
Difficoltà 1/5 1-3 ore Idoneità per principianti 92/100
autowarefoundation/autoware_universe#13413 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
-
automated-analysis bug memory-safety
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100