summaryrefslogtreecommitdiff
path: root/view/kernelcache/core/MachOProcessor.h
blob: 3e353a446f2fe63371f2bee2950b2f49b3cfb6af (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#pragma once
#include "MachO.h"
#include "KernelCache.h"

// Process `KernelCacheMachOHeader`.
class KernelCacheMachOProcessor
{
	BinaryNinja::Ref<BinaryNinja::BinaryView> m_view;
	BinaryNinja::Ref<BinaryNinja::Logger> m_logger;

	bool m_applyFunctions = true;

public:
	explicit KernelCacheMachOProcessor(BinaryNinja::Ref<BinaryNinja::BinaryView> view);

	// Initialize header information such as sections and symbols.
	void ApplyHeader(const KernelCache& cache, KernelCacheMachOHeader& header);

	uint64_t ApplyHeaderSections(KernelCacheMachOHeader& header);

	void ApplyHeaderDataVariables(KernelCacheMachOHeader& header);
};