Vector35 / binaryninja-api

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

Certain instructions have empty stack frames #5602

Open CouleeApps opened 5 months ago

CouleeApps commented 5 months ago

Version and Platform (required):

Bug Description: Some instructions in some functions incorrectly report having no live stack variables. When used with the new Position Aware Stack View, you get an empty screen.

Steps To Reproduce: Please provide all steps required to reproduce the behavior:

  1. Open this binary: push-pop-automaton-macos.zip
  2. Open stack view
  3. Ensure Position Aware is enabled in the stack view context menu
  4. Navigate to disassembly: 0x100003e59
  5. Observe empty stack view

Expected Behavior: I expected to see the stack variables present on the surrounding instructions, or really just anything at all.

Screenshots/Video Recording:

image

Additional Information: Disabling Position Aware shows the remaining frames. I figure that means the stack variable api is returning the wrong things, and that it's not an issue with Stack View itself.

rssor commented 4 months ago

Fixed today

CouleeApps commented 4 months ago

Seems like this still happens with "nop" instructions. Version 4.1.5742

Binary 0a5fa9c0bcfe6d4123f7421958a05c33b84eeed843cb135e433e4308288c2e4b in the dogbolt corpus at 0x65b414e8

image
fuzyll commented 4 months ago

The Stack view is also empty if you select the function header or the closing/ending brace in Pseudo-C. Turning off "Position Aware" makes it show back up again.

Binary: ls.zip

Saw this while messing with the arm64 part on an ARM linux build while doing release testing for 4.1.