Skip to content

[MachO] Obj-C metadata errors due to incorrect handling of some chained fixups #7421

@bdash

Description

@bdash

Version and Platform (required):

  • Binary Ninja Version: 5.2.8289-dev Ultimate, bfcf69fd
  • OS: macos
  • OS Version: 26.0
  • CPU Architecture: arm64

Bug Description:
A user on Slack reported problems with symbols when opening a specific Mach-O binary (rapid code iterates deliberately).

Steps To Reproduce:

  1. Open the arm64e slice of the binary.

Expected Behavior:
Objective-C metadata is parsed, no errors are logged.

Actual Behavior:

Many errors like:

[macho.objc] Failed to read class RO data at 0xf9001515f9401514. 0x837890, objc_class_t @ 0xf9001515f9401514
[macho.objc] Failed to read class RO data at 0xa9427bfdaa1503e0. 0x837898, objc_class_t @ 0xa9427bfdaa1503e0
[macho.objc] Failed to read class RO data at 0xf9401020aa0003f4. 0x8378a0, objc_class_t @ 0xf9401020aa0003f4
[macho.objc] Failed to read class RO data at 0xa9417bfdf9401260. 0x8378a8, objc_class_t @ 0xa9417bfdf9401260

and Objective-C class metadata is not parsed.

Binary:
rapid code iterates deliberately

Additional Information:
Open with Options with an image base of 0x0 gives working symbols. We're doing something incorrect with the rebase fix-ups in this binary.

Metadata

Metadata

Assignees

Labels

Effort: LowIssues require < 1 week of workFile Format: Mach-OImpact: LowIssue is a papercut or has a good, supported workaround

Type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions