diff options
| author | kat <kat@vector35.com> | 2024-10-23 21:56:29 -0400 |
|---|---|---|
| committer | kat <kat@vector35.com> | 2024-10-23 21:58:47 -0400 |
| commit | 3006c68e108a18f9b8782bc937dc9ec7e2cb3b54 (patch) | |
| tree | f589bb38909349142c09b6215244205aef0a57ac /view/sharedcache/core/DSCView.h | |
| parent | 80fcccec8f686e0e5c89626b60af121a97baf856 (diff) | |
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.
Diffstat (limited to 'view/sharedcache/core/DSCView.h')
| -rw-r--r-- | view/sharedcache/core/DSCView.h | 65 |
1 files changed, 65 insertions, 0 deletions
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 <binaryninjaapi.h> + +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<BinaryNinja::BinaryView> Create(BinaryNinja::BinaryView* data) override; + BinaryNinja::Ref<BinaryNinja::BinaryView> Parse(BinaryNinja::BinaryView* data) override; + bool IsTypeValidForData(BinaryNinja::BinaryView *data) override; + + bool IsDeprecated() override { return false; } + + BinaryNinja::Ref<BinaryNinja::Settings> 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<BinaryNinja::BinaryView> Create(BinaryNinja::BinaryView *data) override; + + BinaryNinja::Ref<BinaryNinja::BinaryView> Parse(BinaryNinja::BinaryView *data) override; + + bool IsTypeValidForData(BinaryNinja::BinaryView *data) override; + + bool IsDeprecated() override { return false; } + + BinaryNinja::Ref<BinaryNinja::Settings> GetLoadSettingsForData(BinaryNinja::BinaryView *data) override; +}; + + +#endif //SHAREDCACHE_DSCVIEW_H |
