diff options
Diffstat (limited to 'view/kernelcache')
| -rw-r--r-- | view/kernelcache/core/KernelCache.cpp | 23 | ||||
| -rw-r--r-- | view/kernelcache/ui/kctriage.cpp | 36 |
2 files changed, 13 insertions, 46 deletions
diff --git a/view/kernelcache/core/KernelCache.cpp b/view/kernelcache/core/KernelCache.cpp index 41577c0b..5d97e8eb 100644 --- a/view/kernelcache/core/KernelCache.cpp +++ b/view/kernelcache/core/KernelCache.cpp @@ -223,7 +223,7 @@ void KernelCache::PerformInitialLoad(std::lock_guard<std::mutex>& lock) return; } uint32_t cpuType = reader.Read32(); - uint32_t cpuSubtype = reader.Read32(); + reader.SeekRelative(4); uint32_t fileType = reader.Read32(); if (fileType != MH_FILESET) { @@ -231,8 +231,7 @@ void KernelCache::PerformInitialLoad(std::lock_guard<std::mutex>& lock) return; } uint32_t ncmds = reader.Read32(); - uint32_t sizeofcmds = reader.Read32(); - uint32_t flags = reader.Read32(); + reader.SeekRelative(8); if ((cpuType & MachOABIMask) != MachOABI64) { m_logger->LogError("Invalid ABI in KernelCache. 32 bit not yet supported."); @@ -1812,7 +1811,7 @@ void KernelCache::ReadExportNode(Ref<BinaryView> view, std::vector<Ref<Symbol>>& { if (!currentText.empty() && textBase + imageOffset) { - uint32_t flags; + uint32_t sectionFlags; BNSymbolType type; for (auto s : header.sections) { @@ -1820,12 +1819,12 @@ void KernelCache::ReadExportNode(Ref<BinaryView> view, std::vector<Ref<Symbol>>& { if (s.addr + s.size > textBase + imageOffset) { - flags = s.flags; + sectionFlags = s.flags; } } } - if ((flags & S_ATTR_PURE_INSTRUCTIONS) == S_ATTR_PURE_INSTRUCTIONS - || (flags & S_ATTR_SOME_INSTRUCTIONS) == S_ATTR_SOME_INSTRUCTIONS) + if ((sectionFlags & S_ATTR_PURE_INSTRUCTIONS) == S_ATTR_PURE_INSTRUCTIONS + || (sectionFlags & S_ATTR_SOME_INSTRUCTIONS) == S_ATTR_SOME_INSTRUCTIONS) type = FunctionSymbol; else type = DataSymbol; @@ -2016,17 +2015,17 @@ bool KernelCache::SaveModifiedStateToKCView(std::lock_guard<std::mutex>&) // merged into a single state object and the modification count is reset to zero. for (size_t i = modificationNumber + 1; i < std::numeric_limits<size_t>::max(); ++i) { - std::string metadataKey = KernelCacheMetadata::ModifiedStateTagPrefix + std::to_string(i); + std::string modifiedStateMetadataKey = KernelCacheMetadata::ModifiedStateTagPrefix + std::to_string(i); bool done = true; - if (m_kcView->QueryMetadata(metadataKey)) + if (m_kcView->QueryMetadata(modifiedStateMetadataKey)) { done = false; - m_kcView->RemoveMetadata(metadataKey); + m_kcView->RemoveMetadata(modifiedStateMetadataKey); } - if (m_kcView->GetParentView()->QueryMetadata(metadataKey)) + if (m_kcView->GetParentView()->QueryMetadata(modifiedStateMetadataKey)) { done = false; - m_kcView->GetParentView()->RemoveMetadata(metadataKey); + m_kcView->GetParentView()->RemoveMetadata(modifiedStateMetadataKey); } if (done) break; diff --git a/view/kernelcache/ui/kctriage.cpp b/view/kernelcache/ui/kctriage.cpp index 3a8699a7..3fa70065 100644 --- a/view/kernelcache/ui/kctriage.cpp +++ b/view/kernelcache/ui/kctriage.cpp @@ -163,7 +163,7 @@ KCTriageView::KCTriageView(QWidget* parent, BinaryViewRef data) : QWidget(parent auto loadImageModel = new QStandardItemModel(0, 2, loadImageTable); { loadImageModel->setHorizontalHeaderLabels({"Name", "VM Address"}); - BackgroundThread::create(loadImageTable)->thenBackground([this, loadImageModel](QVariant var) + BackgroundThread::create(loadImageTable)->thenBackground([this](QVariant var) { QVariantList rows; @@ -190,7 +190,7 @@ KCTriageView::KCTriageView(QWidget* parent, BinaryViewRef data) : QWidget(parent } return QVariant(rows); - })->thenMainThread([this, loadImageModel, loadImageTable](QVariant var){ + })->thenMainThread([loadImageModel, loadImageTable](QVariant var){ QVariantList rows = var.toList(); if (loadImageModel->rowCount() > 0) @@ -332,38 +332,6 @@ KCTriageView::KCTriageView(QWidget* parent, BinaryViewRef data) : QWidget(parent m_triageTabs->setCanCloseTab(symbolWidget, false); } // symbolSearch - auto loadedRegions = new QTreeView; - { - auto loadedRegionsModel = new QStandardItemModel(0, 3, loadedRegions); - loadedRegionsModel->setHorizontalHeaderLabels({"VM Address", "Size", "Pretty Name"}); - - auto loadedRegionsLayout = new QVBoxLayout; - loadedRegionsLayout->addWidget(loadedRegions); - - auto loadedRegionsWidget = new QWidget; - loadedRegionsWidget->setLayout(loadedRegionsLayout); - - loadedRegions->setModel(loadedRegionsModel); - - loadedRegions->header()->setSectionResizeMode(QHeaderView::Stretch); - - loadedRegions->setSelectionBehavior(QAbstractItemView::SelectRows); - loadedRegions->setSelectionMode(QAbstractItemView::SingleSelection); - - connect(loadedRegions, &QTreeView::doubleClicked, this, [=](const QModelIndex& index) - { - auto addr = loadedRegionsModel->item(index.row(), 0)->text().toULongLong(nullptr, 16); - }); - - connect(loadedRegions, &QTreeView::activated, this, [=](const QModelIndex& index) - { - auto addr = loadedRegionsModel->item(index.row(), 0)->text().toULongLong(nullptr, 16); - }); - - // m_triageTabs->addTab(loadedRegionsWidget, "Loaded Regions"); - } // loadedRegions - - { // Doc tabs QTextBrowser *mainDocBrowser = new QTextBrowser(this); |
