libintrovirt v0.57.4
IntroVirt introspection library
Loading...
Searching...
No Matches
PS_CREATE_INFO.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
19#include <introvirt/util/json/json.hh>
22
23#include <cstdint>
24#include <ostream>
25
26namespace introvirt {
27namespace windows {
28namespace nt {
29
42
44 public:
45 virtual PS_CREATE_STATE State() const = 0;
46 virtual uint64_t Size() const = 0;
47
49 virtual uint64_t FileHandle() const = 0;
50
52 virtual uint64_t SectionHandle() const = 0;
53 virtual uint64_t UserProcessParametersNative() const = 0;
54 virtual uint32_t UserProcessParametersWow64() const = 0;
55 virtual uint32_t CurrentParameterFlags() const = 0;
56 virtual uint64_t PebAddressNative() const = 0;
57 virtual uint32_t PebAddressWow64() const = 0;
58 virtual uint64_t ManifestAddress() const = 0;
59 virtual uint32_t ManifestSize() const = 0;
60 virtual uint32_t OutputFlags() const = 0;
61
63 virtual uint64_t IFEOKey() const = 0;
64
65 /* Only valid for state == PsCreateInitialState */
66 virtual uint32_t InitFlags() const = 0;
67 virtual void InitFlags(uint32_t InitFlags) = 0;
68
71
72 virtual guest_ptr<void> ptr() const = 0;
73 virtual void write(std::ostream& os, const std::string& linePrefix = "") const = 0;
74 virtual Json::Value json() const = 0;
75
76 static std::unique_ptr<PS_CREATE_INFO> make_unique(const NtKernel& kernel,
77 const guest_ptr<void>& ptr);
78
79 virtual ~PS_CREATE_INFO() = default;
80};
81
82const std::string& to_string(PS_CREATE_STATE state);
83std::ostream& operator<<(std::ostream&, PS_CREATE_STATE);
84
85} /* namespace nt */
86} /* namespace windows */
87} /* namespace introvirt */
Definition guest_ptr.hh:88
ACCESS_MASK class for file permissions.
Definition FILE_ACCESS_MASK.hh:99
Abstraction for the Windows NT kernel.
Definition NtKernel.hh:37
Definition PS_CREATE_INFO.hh:43
virtual PS_CREATE_STATE State() const =0
virtual uint32_t ManifestSize() const =0
virtual void InitFlags(uint32_t InitFlags)=0
virtual uint64_t Size() const =0
virtual uint64_t PebAddressNative() const =0
virtual uint32_t InitFlags() const =0
virtual void write(std::ostream &os, const std::string &linePrefix="") const =0
virtual uint32_t OutputFlags() const =0
virtual uint32_t PebAddressWow64() const =0
virtual FILE_ACCESS_MASK AdditionalFileAccess() const =0
virtual uint64_t SectionHandle() const =0
virtual uint64_t IFEOKey() const =0
virtual void AdditionalFileAccess(FILE_ACCESS_MASK AdditionalFileAccess)=0
virtual Json::Value json() const =0
virtual uint32_t CurrentParameterFlags() const =0
virtual uint64_t ManifestAddress() const =0
static std::unique_ptr< PS_CREATE_INFO > make_unique(const NtKernel &kernel, const guest_ptr< void > &ptr)
virtual uint64_t UserProcessParametersNative() const =0
virtual guest_ptr< void > ptr() const =0
virtual uint32_t UserProcessParametersWow64() const =0
virtual uint64_t FileHandle() const =0
Type-safe guest virtual address pointer and guest_ptr template.
std::ostream & operator<<(std::ostream &, APPHELPCACHESERVICECLASS val)
PS_CREATE_STATE
Definition PS_CREATE_INFO.hh:30
@ PsCreateFailExeName
Definition PS_CREATE_INFO.hh:36
@ PsCreateFailExeFormat
Definition PS_CREATE_INFO.hh:34
@ PsCreateUnknown
Definition PS_CREATE_INFO.hh:40
@ PsCreateFailOnSectionCreate
Definition PS_CREATE_INFO.hh:33
@ PsCreateInitialState
Definition PS_CREATE_INFO.hh:31
@ PsCreateSuccess
Definition PS_CREATE_INFO.hh:37
@ PsCreateFailMachineMismatch
Definition PS_CREATE_INFO.hh:35
@ PsCreateFailOnFileOpen
Definition PS_CREATE_INFO.hh:32
@ PsCreateMaximumStates
Definition PS_CREATE_INFO.hh:38
const std::string & to_string(APPHELPCACHESERVICECLASS val)
Core IntroVirt classes.
Definition Cr0.hh:20