libintrovirt v0.57.4
IntroVirt introspection library
Loading...
Searching...
No Matches
WindowsGuest.hh
Go to the documentation of this file.
1/*
2 * Copyright 2021 Assured Information Security, Inc.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16#pragma once
17
20
21#include <introvirt/fwd.hh>
22
23#include <cstdint>
24#include <set>
25#include <string>
26
27namespace introvirt {
28namespace windows {
29
33class WindowsGuest : public Guest {
34 public:
40 virtual const SystemCallConverter& syscalls() const = 0;
41
47 virtual nt::NtKernel& kernel() = 0;
48
52 virtual const nt::NtKernel& kernel() const = 0;
53
59 virtual Domain& domain() = 0;
60
64 virtual const Domain& domain() const = 0;
65
76 bool value) const = 0;
77
86 virtual void default_syscall_filter(SystemCallFilter& filter) const = 0;
87
92 static std::set<std::string> syscall_categories();
93
100 virtual void enable_category(const std::string& category, SystemCallFilter& filter) const = 0;
101
102 virtual ~WindowsGuest() = default;
103
104 private:
105};
106
107} // namespace windows
108} // namespace introvirt
A class representing a single Domain.
Definition Domain.hh:44
Base interface for a Guest.
Definition Guest.hh:35
Base class for system call filtering.
Definition SystemCallFilter.hh:35
Class for converting between native system call numbers and our SystemCall values.
Definition SystemCallConverter.hh:36
A representation of a Windows Guest OS.
Definition WindowsGuest.hh:33
virtual void enable_category(const std::string &category, SystemCallFilter &filter) const =0
Enable a specific category for a filter.
virtual Domain & domain()=0
Get the Domain instance the guest is running on.
static std::set< std::string > syscall_categories()
Get the available system call categories.
virtual const nt::NtKernel & kernel() const =0
Get the Nt kernel.
virtual nt::NtKernel & kernel()=0
Get the Nt kernel.
virtual void default_syscall_filter(SystemCallFilter &filter) const =0
Configure a system call filter for all supported calls.
virtual const Domain & domain() const =0
Get the Domain instance the guest is running on.
virtual const SystemCallConverter & syscalls() const =0
Get the system call conversion class.
virtual bool set_system_call_filter(SystemCallFilter &filter, SystemCallIndex index, bool value) const =0
Configure a system call filter intercept.
Abstraction for the Windows NT kernel.
Definition NtKernel.hh:37
SystemCallIndex
This is our "normalized" list of Windows system calls.
Definition SystemCallIndex.hh:30
Core IntroVirt classes.
Definition Cr0.hh:20