| 1860 | |
| 1861 | |
| 1862 | std::vector<Ref<Symbol>> KernelCache::ParseExportTrie(Ref<BinaryView> view, KernelCacheMachOHeader header) |
| 1863 | { |
| 1864 | if (!header.exportTriePresent || !header.exportTrie.dataoff || !header.exportTrie.datasize) |
| 1865 | return {}; |
| 1866 | |
| 1867 | std::vector<Ref<Symbol>> symbols; |
| 1868 | try |
| 1869 | { |
| 1870 | std::vector<ExportNode> nodes; |
| 1871 | |
| 1872 | DataBuffer buffer = view->GetParentView()->ReadBuffer(header.exportTrie.dataoff, header.exportTrie.datasize); |
| 1873 | ReadExportNode(view, symbols, header, buffer, header.textBase, "", 0, header.exportTrie.datasize); |
| 1874 | } |
| 1875 | catch (std::exception& e) |
| 1876 | { |
| 1877 | BNLogError("Failed to load Export Trie"); |
| 1878 | } |
| 1879 | return symbols; |
| 1880 | } |
| 1881 | |
| 1882 | std::vector<std::string> KernelCache::GetAvailableImages() |
| 1883 | { |
nothing calls this directly
no test coverage detected