Vector35 / binaryninja-api

Public API, examples, documentation and issues for Binary Ninja
https://binary.ninja/
MIT License
926 stars 209 forks source link

Thumb2 disassembler can't decode NEON instruction #744

Closed Metalnem closed 6 years ago

Metalnem commented 7 years ago

At the address 0x003dbfe8 In the attached file is the instruction 0x04f9ef8a. Both Hopper and Online HEX To ARM Converter can successfully decode it as vst1.64 {d8, d9}, [r4, #0x80]. Binary Ninja can't decode it, and it will also skip decoding the rest of the function.

plafosse commented 7 years ago

Updated the issue a bit. This is a Thumb2 instruction, and it is expected behavior to halt disassembly when an invalid instruction is encountered.

tchebb commented 7 years ago

I'm encountering the same issue with the vpush Thumb instruction. The instruction that fails to decode is 2ded088b (vpush {d8-d11}). The file I'm working with uses vpush at the beginning of a lot of functions, and since the failed decode prevents further parsing, they show up as having only one or two instructions in total.

bpotchik commented 6 years ago

Fixed by Andrew. Verified in latest build 1.1.1127-dev but the fix showed up several builds earlier.