Skip to content

The PACIBSPPC instruction isn't supported #8467

Description

@jvoisin

Version and Platform (required):

  • Binary Ninja Version: 6.0.10526-dev Personal (c0a85dfd)
  • Edition: Non-Commercial
  • OS: Fedora
  • OS Version: 44
  • CPU Architecture: M2

Bug Description:

Binary Ninja doesn't decode the PACIBSPPC instruction.

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

  1. Unzip the attached binary
  2. Open it in Binary Ninja
  3. Got to the _start symbol
  4. Follow the branch at fffffe0007c9001c branching to 0xfffffe0007c94000
  5. Notice that the instruction at 0xfffffe0007c94000, namely fea7c1da isn't supported

Expected Behavior:

I expect Binja to properly decode the instruction.

Screenshots/Video Recording:

Image Image

Binary:

kernel.release.zip, a macho aarch64 binary.

Additional Information:

With a bit of Python and the PACIBSPPC documentation page, one can see that its encoding is fea7c1da:

>>> i = """1	1	0	1	1	0	1	0	1	1	0	0	0	0	0	1	1	0	1	0	0	1	1	1	1	1	1	1	1	1	1	0"""
>>> def swap32(i):
...     return struct.unpack("<I", struct.pack(">I", i))[0]
...     
>>> import struct
>>> hex(swap32(int(s.replace("\t", ""), 2)))
'0xfea7c1da'
>>> 

The issue was initially found on IDA Pro by @amarioguy, while looking at macOS 26.7 RC1.

Metadata

Metadata

Assignees

Labels

Arch: ARM64Issues with the AArch64 architecture pluginEffort: LowIssues require < 1 week of work

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions