Open
Description
Version and Platform (required):
- Binary Ninja Version: 5.1.7870-dev
- OS: macOS 15.5
- CPU Architecture: arm64
Bug Description:
When opening a shared cache I'm seeing that Objective-C runtime functions end up looking like this:
18007f920 id_1 _objc_retain(id_1 obj)
Methods defined within the framework use id
as expected.
Steps To Reproduce:
- Open a macOS shared cache.
- Load MediaLibrary.framework
- Look at
objc_retain
or any other Objective-C runtime function.
Expected Behavior:
id_1
/ SEL_1
rather than id
/ SEL
.
Additional Information:
I'm guessing it is this logic within ObjCProcessor::ProcessObjCData
that is responsible for the duplicates:
binaryninja-api/objectivec/objc.cpp
Lines 1337 to 1338 in 9ff07a9
The other copy might be coming from the type library?
I also see BOOL_1
and Protocol_1
.
This isn't specific to shared caches. I see it when opening /usr/libexec/syspolicyd, too.