summaryrefslogtreecommitdiff
path: root/view/kernelcache/core/KCView.h
blob: c78833c048f1e54a476f8d91a0a7a0d109529b2a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
//
// Created by kat on 5/23/23.
//

#ifndef KERNELCACHE_KCVIEW_H
#define KERNELCACHE_KCVIEW_H

#include <binaryninjaapi.h>

class KCView : public BinaryNinja::BinaryView {
	bool m_parseOnly;
public:

    KCView(const std::string &typeName, BinaryView *data, bool parseOnly = false);

	~KCView() override;

    bool Init() override;
};


class KCViewType : public BinaryNinja::BinaryViewType {

public:
	KCViewType();

    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;
};

#ifdef __cplusplus
extern "C" {
#endif
	void InitKCViewType();
#ifdef __cplusplus
};
#endif

#endif //KERNELCACHE_KCVIEW_H