From 3006c68e108a18f9b8782bc937dc9ec7e2cb3b54 Mon Sep 17 00:00:00 2001 From: kat Date: Wed, 23 Oct 2024 21:56:29 -0400 Subject: Initial commit of the alpha dyld_shared_cache view API Plugin. This is an early release of our DSC processing plugin. We're still hard at work improving this feature. You should be able to just drop in a dyld_shared_cache and use the 'Shared Cache Triage' view to load and analyze images. --- view/sharedcache/core/DSCView.h | 65 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 view/sharedcache/core/DSCView.h (limited to 'view/sharedcache/core/DSCView.h') diff --git a/view/sharedcache/core/DSCView.h b/view/sharedcache/core/DSCView.h new file mode 100644 index 00000000..1b891e36 --- /dev/null +++ b/view/sharedcache/core/DSCView.h @@ -0,0 +1,65 @@ +// +// Created by kat on 5/23/23. +// + +#ifndef SHAREDCACHE_DSCVIEW_H +#define SHAREDCACHE_DSCVIEW_H + +#include + +class DSCRawView : public BinaryNinja::BinaryView { + std::string m_filename; +public: + + DSCRawView(const std::string &typeName, BinaryView *data, bool parseOnly = false); + + bool Init() override; +}; + + +class DSCRawViewType : public BinaryNinja::BinaryViewType { + +public: + BinaryNinja::Ref Create(BinaryNinja::BinaryView* data) override; + BinaryNinja::Ref Parse(BinaryNinja::BinaryView* data) override; + bool IsTypeValidForData(BinaryNinja::BinaryView *data) override; + + bool IsDeprecated() override { return false; } + + BinaryNinja::Ref GetLoadSettingsForData(BinaryNinja::BinaryView *data) override { return nullptr; } + +public: + DSCRawViewType(); +}; + + +class DSCView : public BinaryNinja::BinaryView { + bool m_parseOnly; +public: + + DSCView(const std::string &typeName, BinaryView *data, bool parseOnly = false); + + ~DSCView() override; + + bool Init() override; +}; + + +class DSCViewType : public BinaryNinja::BinaryViewType { + +public: + DSCViewType(); + + BinaryNinja::Ref Create(BinaryNinja::BinaryView *data) override; + + BinaryNinja::Ref Parse(BinaryNinja::BinaryView *data) override; + + bool IsTypeValidForData(BinaryNinja::BinaryView *data) override; + + bool IsDeprecated() override { return false; } + + BinaryNinja::Ref GetLoadSettingsForData(BinaryNinja::BinaryView *data) override; +}; + + +#endif //SHAREDCACHE_DSCVIEW_H -- cgit v1.3.1