extra minus sign before int64_t values in MLIL and up
Version and Platform (required):
Binary Ninja Version: 3.6.4780-dev Personal (d35c49ed) OS: manjaro OS Version: Linux version 6.6.10-1-MANJARO CPU Architecture: x64
Bug Description: reversed arm64 instruction is right but when converted to c code , the address in arm64 is unsigned long long , but in c code is signed as minus 0xfffffxxxxx
Steps To Reproduce: Please provide all steps required to reproduce the behavior: 1- open the sample code 2-display reversed instruction 3-Press F5
Expected Behavior:
/* jump -> -0xffff800008f828e8 / should be / jump -> 0xffff800008f828e8 */
Screenshots:
issue picture as follows
Additional Information: no
We get it correct in disassembly, and for some reason there is an extra minus sign in MLIL and up:
抱歉又来ping 方便更新下哈 如下还是64位常量会出险负数的情况:
https://github.com/Vector35/binaryninja-api/assets/5463104/6ff65afb-00a6-4d45-970d-c549eb2a42f2
I really hope we can fix this. Because when reversing some code , we can almost use the c code directly without any modification. But now , We have to delete the minus symbol before uint64 numbers.
here is some tips i tried
https://github.com/Vector35/binaryninja-api/assets/5463104/828aa729-d107-443b-924f-b9b44f494592
is there any possible that if we treat the number as signed, then we directly add the minus symbol?