diff options
| author | Mark Rowe <mrowe@bdash.net.nz> | 2025-05-08 11:31:10 -0700 |
|---|---|---|
| committer | kat <kat@vector35.com> | 2025-05-29 09:42:11 -0400 |
| commit | 2524e2ce6be351d79477442a073e743946d1334a (patch) | |
| tree | 79486df727a1cd6741237d96de3e0056f4cd4f1e /lang/c/pseudoobjc.h | |
| parent | 4ea37e18bfed8de162dfb816971417a0679b602f (diff) | |
Detect calls that the Objective-C workflow has rewritten directly to an implementation
These are detected by their function names having the characteristic
`-[ClassName methodName:]` format. Calls to functions with this naming
pattern that accept a selector as a second argument are assumed to be
`objc_msgSend` calls that the Objective-C workflow rewrote.
These calls are formatted identically to other `objc_msgSend` calls with
the exception that the selector tokens reference the address of the call
target rather than the selector string, so double-clicking on them takes
you to the fixed destination of the rewritten call.
Diffstat (limited to 'lang/c/pseudoobjc.h')
| -rw-r--r-- | lang/c/pseudoobjc.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/lang/c/pseudoobjc.h b/lang/c/pseudoobjc.h index 4b87c7d7..9910c4b8 100644 --- a/lang/c/pseudoobjc.h +++ b/lang/c/pseudoobjc.h @@ -22,7 +22,7 @@ protected: BNOperatorPrecedence precedence, bool statement) override; private: - bool GetExpr_ObjCMsgSend(const BinaryNinja::HighLevelILInstruction& expr, + bool GetExpr_ObjCMsgSend(uint64_t msgSendAddress, bool isRewritten, const BinaryNinja::HighLevelILInstruction& expr, BinaryNinja::HighLevelILTokenEmitter& tokens, BinaryNinja::DisassemblySettings* settings, const std::vector<BinaryNinja::HighLevelILInstruction>& parameterExprs); bool GetExpr_GenericObjCRuntimeCall(uint64_t address, const BinaryNinja::HighLevelILInstruction& expr, |
