libintrovirt
v0.57.4
IntroVirt introspection library
Loading...
Searching...
No Matches
PROCESS_INFORMATION.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 <
introvirt/core/injection/GuestAllocation.hh
>
19
#include <
introvirt/core/memory/guest_ptr.hh
>
20
21
#include <cstdint>
22
#include <memory>
23
24
namespace
introvirt
{
25
namespace
windows {
26
namespace
kernel32 {
27
28
class
PROCESS_INFORMATION
{
29
public
:
30
virtual
uint64_t
hProcess
()
const
= 0;
31
virtual
void
hProcess
(uint64_t
hProcess
) = 0;
32
33
virtual
uint64_t
hThread
()
const
= 0;
34
virtual
void
hThread
(uint64_t
hThread
) = 0;
35
36
virtual
uint32_t
dwProcessId
()
const
= 0;
37
virtual
void
dwProcessId
(uint32_t
dwProcessId
) = 0;
38
39
virtual
uint32_t
dwThreadId
()
const
= 0;
40
virtual
void
dwThreadId
(uint32_t
dwThreadId
) = 0;
41
42
virtual
guest_ptr<void>
address
()
const
= 0;
43
44
static
std::shared_ptr<PROCESS_INFORMATION>
make_shared
(
const
guest_ptr<void>
& ptr,
bool
x64);
45
46
virtual
~PROCESS_INFORMATION
() =
default
;
47
};
48
49
}
// namespace kernel32
50
}
// namespace windows
51
52
namespace
inject {
53
54
template
<>
55
class
GuestAllocation
<windows::kernel32::PROCESS_INFORMATION> final
56
:
public
GuestAllocationComplexBase
<windows::kernel32::PROCESS_INFORMATION> {
57
public
:
58
explicit
GuestAllocation
();
59
};
60
61
}
// namespace inject
62
63
}
// namespace introvirt
GuestAllocation.hh
introvirt::basic_guest_ptr
Definition
guest_ptr.hh:88
introvirt::inject::GuestAllocationComplexBase
Definition
GuestAllocation.hh:179
introvirt::inject::GuestAllocation< windows::kernel32::PROCESS_INFORMATION >::GuestAllocation
GuestAllocation()
introvirt::inject::GuestAllocation
Definition
GuestAllocation.hh:31
introvirt::windows::kernel32::PROCESS_INFORMATION
Definition
PROCESS_INFORMATION.hh:28
introvirt::windows::kernel32::PROCESS_INFORMATION::make_shared
static std::shared_ptr< PROCESS_INFORMATION > make_shared(const guest_ptr< void > &ptr, bool x64)
introvirt::windows::kernel32::PROCESS_INFORMATION::~PROCESS_INFORMATION
virtual ~PROCESS_INFORMATION()=default
introvirt::windows::kernel32::PROCESS_INFORMATION::dwThreadId
virtual void dwThreadId(uint32_t dwThreadId)=0
introvirt::windows::kernel32::PROCESS_INFORMATION::hThread
virtual uint64_t hThread() const =0
introvirt::windows::kernel32::PROCESS_INFORMATION::address
virtual guest_ptr< void > address() const =0
introvirt::windows::kernel32::PROCESS_INFORMATION::dwProcessId
virtual uint32_t dwProcessId() const =0
introvirt::windows::kernel32::PROCESS_INFORMATION::hProcess
virtual void hProcess(uint64_t hProcess)=0
introvirt::windows::kernel32::PROCESS_INFORMATION::hProcess
virtual uint64_t hProcess() const =0
introvirt::windows::kernel32::PROCESS_INFORMATION::dwThreadId
virtual uint32_t dwThreadId() const =0
introvirt::windows::kernel32::PROCESS_INFORMATION::hThread
virtual void hThread(uint64_t hThread)=0
introvirt::windows::kernel32::PROCESS_INFORMATION::dwProcessId
virtual void dwProcessId(uint32_t dwProcessId)=0
guest_ptr.hh
Type-safe guest virtual address pointer and guest_ptr template.
introvirt
Core IntroVirt classes.
Definition
Cr0.hh:20