From 78a7827240196508cb135ad9c2f05215edd39e25 Mon Sep 17 00:00:00 2001 From: mostobriv Date: Sat, 23 Aug 2025 16:10:32 +0700 Subject: [PATCH] [MachoView] Fixed missing symbols in binding parsing --- view/macho/machoview.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/view/macho/machoview.cpp b/view/macho/machoview.cpp index 1da2bda798..b69ed814de 100644 --- a/view/macho/machoview.cpp +++ b/view/macho/machoview.cpp @@ -2146,8 +2146,15 @@ bool MachoView::InitializeHeader(MachOHeader& header, bool isMainHeader, uint64_ default: if (ordinal > 0) - { - if (auto symbol = GetSymbolByRawName(name, GetExternalNameSpace()); symbol) + { + auto symbol = GetSymbolByRawName(name, GetExternalNameSpace()); + if (!symbol) + { + // As macho can bind symbols, which is not listed in the symtab + symbol = DefineMachoSymbol(ExternalSymbol, name, 0, GlobalBinding, false); + } + + if (symbol) { DefineRelocation(m_arch, relocation, symbol, relocation.address); handled = true;