You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add a setting to opt out of rewriting message sends with visible implementations
The setting is on by default to preserve the current experience. It
should likely be revisited as related changes are merged.
I find this to be confusing as often as it is helpful since it picks the
first implementation of the selector it sees without consideration for
the type of the receiver.
This is particularly annoying if the binary being analyzed implements a
method with the same name as a commonly-used method on a system type
(`-description` or `-path`, for instance), or has methods with generic
names (`-initWithURL:`) on many types.
Explicit cross-references from selectors to method implementations make
it possible to see the potential implementations without rewriting the
call, and an Objective-C pseudo-language
(Vector35/binaryninja-api#6807) provides an even
more natural representation of Objective-C message sends without these
downsides.
"title" : "Rewrite objc_msgSend calls to first visible implementation",
48
+
"type" : "boolean",
49
+
"default" : true,
50
+
"description" : "Message sends of selectors with any visible implementation are replaced with a direct call to the first visible implementation. Note that this can produce false positives if the selector is implemented by more than one class, or shares a name with a method from a system framework."
0 commit comments