summaryrefslogtreecommitdiff
path: root/view/sharedcache/core/SharedCache.h
diff options
context:
space:
mode:
authorMason Reed <mason@vector35.com>2025-02-13 20:28:29 -0500
committerMason Reed <mason@vector35.com>2025-02-17 21:22:18 -0500
commitedcba9286268656ee3c5594051263c51c1011f39 (patch)
tree10c7f436b8dbef3b6050ff02ebbafe865635bd4d /view/sharedcache/core/SharedCache.h
parent9fa3dd7b2f00fe2e988e319d3fdb83ee99e30cd0 (diff)
[SharedCache] Split out symbol processing into own function
Split out from https://github.com/WeiN76LQh/binaryninja-api/tree/process-local-symbols
Diffstat (limited to 'view/sharedcache/core/SharedCache.h')
-rw-r--r--view/sharedcache/core/SharedCache.h5
1 files changed, 4 insertions, 1 deletions
diff --git a/view/sharedcache/core/SharedCache.h b/view/sharedcache/core/SharedCache.h
index ee4228ef..c683806c 100644
--- a/view/sharedcache/core/SharedCache.h
+++ b/view/sharedcache/core/SharedCache.h
@@ -643,7 +643,10 @@ private:
std::shared_ptr<MMappedFileAccessor> linkeditFile, const SharedCacheMachOHeader& header);
std::shared_ptr<std::unordered_map<uint64_t, Ref<Symbol>>> GetExportListForHeader(std::lock_guard<std::mutex>&, const SharedCacheMachOHeader& header,
std::function<std::shared_ptr<MMappedFileAccessor>()> provideLinkeditFile, bool* didModifyExportList = nullptr);
- std::shared_ptr<std::unordered_map<uint64_t, Ref<Symbol>>> GetExistingExportListForBaseAddress(std::lock_guard<std::mutex>&, uint64_t baseAddress) const;
+ std::shared_ptr<std::unordered_map<uint64_t, Ref<Symbol>>> GetExistingExportListForBaseAddress(std::lock_guard<std::mutex>&, uint64_t baseAddress) const;
+ void ProcessSymbols(std::shared_ptr<MMappedFileAccessor> file, const SharedCacheMachOHeader& header,
+ uint64_t stringsOffset, size_t stringsSize, uint64_t nlistEntriesOffset, uint32_t nlistCount, uint32_t nlistStartIndex = 0);
+ void ApplySymbol(Ref<BinaryView> view, Ref<TypeLibrary> typeLib, Ref<Symbol> symbol);
void ProcessAllObjCSections(std::lock_guard<std::mutex>&);
bool LoadImageWithInstallName(std::lock_guard<std::mutex>&, std::string installName, bool skipObjC);