libintrovirt
v0.57.4
IntroVirt introspection library
Loading...
Searching...
No Matches
ServiceDescriptorTable.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
18
#include "
ServiceTable.hh
"
19
#include "
fwd.hh
"
20
21
#include <
introvirt/core/memory/guest_ptr.hh
>
22
23
namespace
introvirt
{
24
namespace
windows {
25
26
class
ServiceDescriptorTableEntry;
27
33
class
ServiceDescriptorTable
{
34
public
:
42
virtual
const
ServiceDescriptorTableEntry
&
entry
(
unsigned
int
index)
const
= 0;
43
49
virtual
unsigned
int
count
()
const
= 0;
50
58
static
std::unique_ptr<ServiceDescriptorTable>
create
(
const
nt::NtKernel
& kernel,
59
const
guest_ptr<void>
& ptr);
60
64
virtual
~ServiceDescriptorTable
() =
default
;
65
};
66
70
class
ServiceDescriptorTableEntry
{
71
public
:
77
virtual
const
ServiceTable
&
service_table
()
const
= 0;
78
82
virtual
~ServiceDescriptorTableEntry
() =
default
;
83
};
84
85
}
// namespace windows
86
}
// namespace introvirt
ServiceTable.hh
introvirt::basic_guest_ptr
Definition
guest_ptr.hh:88
introvirt::windows::ServiceDescriptorTableEntry
An entry in the ServiceDescriptorTable.
Definition
ServiceDescriptorTable.hh:70
introvirt::windows::ServiceDescriptorTableEntry::~ServiceDescriptorTableEntry
virtual ~ServiceDescriptorTableEntry()=default
Destroy the instance.
introvirt::windows::ServiceDescriptorTableEntry::service_table
virtual const ServiceTable & service_table() const =0
Get the ServiceTable this entry points to.
introvirt::windows::ServiceDescriptorTable
Windows Service Descriptor Table.
Definition
ServiceDescriptorTable.hh:33
introvirt::windows::ServiceDescriptorTable::count
virtual unsigned int count() const =0
Get the number of entries in the table.
introvirt::windows::ServiceDescriptorTable::~ServiceDescriptorTable
virtual ~ServiceDescriptorTable()=default
Destroy the instance.
introvirt::windows::ServiceDescriptorTable::create
static std::unique_ptr< ServiceDescriptorTable > create(const nt::NtKernel &kernel, const guest_ptr< void > &ptr)
Create a new ServiceDescriptorTable instance.
introvirt::windows::ServiceDescriptorTable::entry
virtual const ServiceDescriptorTableEntry & entry(unsigned int index) const =0
Get the service descriptor table entry at the given index.
introvirt::windows::ServiceTable
A Windows ServiceTable.
Definition
ServiceTable.hh:28
introvirt::windows::nt::NtKernel
Abstraction for the Windows NT kernel.
Definition
NtKernel.hh:37
guest_ptr.hh
Type-safe guest virtual address pointer and guest_ptr template.
introvirt
Core IntroVirt classes.
Definition
Cr0.hh:20
fwd.hh