summaryrefslogtreecommitdiff
path: root/registry.h
diff options
context:
space:
mode:
authortumagonx2017-08-08 10:54:53 +0700
committertumagonx2017-08-08 10:54:53 +0700
commit2acec63b2ed75bf4b71ad257db573c4b8f9639e7 (patch)
treea8bea139ddd26116d44ea182b0b8436f2162e6e3 /registry.h
initial commit
Diffstat (limited to 'registry.h')
-rw-r--r--registry.h140
1 files changed, 140 insertions, 0 deletions
diff --git a/registry.h b/registry.h
new file mode 100644
index 0000000..d4f5756
--- /dev/null
+++ b/registry.h
@@ -0,0 +1,140 @@
1/*
2 * Copyright (c) 2004 Security Architects Corporation. All rights reserved.
3 *
4 * Module Name:
5 *
6 * registry.h
7 *
8 * Abstract:
9 *
10 * This module defines various types used by registry hooking routines.
11 *
12 * Author:
13 *
14 * Eugene Tsyrklevich 20-Feb-2004
15 *
16 * Revision History:
17 *
18 * None.
19 */
20
21
22#ifndef __REGISTRY_H__
23#define __REGISTRY_H__
24
25
26/*
27 * ZwCreateKey creates or opens a registry key object. [NAR]
28 */
29
30typedef NTSTATUS (*fpZwCreateKey) (
31 OUT PHANDLE KeyHandle,
32 IN ACCESS_MASK DesiredAccess,
33 IN POBJECT_ATTRIBUTES ObjectAttributes,
34 IN ULONG TitleIndex,
35 IN PUNICODE_STRING Class OPTIONAL,
36 IN ULONG CreateOptions,
37 OUT PULONG Disposition OPTIONAL
38 );
39
40NTSTATUS
41NTAPI
42HookedNtCreateKey(
43 OUT PHANDLE KeyHandle,
44 IN ACCESS_MASK DesiredAccess,
45 IN POBJECT_ATTRIBUTES ObjectAttributes,
46 IN ULONG TitleIndex,
47 IN PUNICODE_STRING Class OPTIONAL,
48 IN ULONG CreateOptions,
49 OUT PULONG Disposition OPTIONAL
50 );
51
52
53/*
54 * ZwOpenKey opens a registry key object. [NAR]
55 */
56
57typedef NTSTATUS (*fpZwOpenKey) (
58 OUT PHANDLE KeyHandle,
59 IN ACCESS_MASK DesiredAccess,
60 IN POBJECT_ATTRIBUTES ObjectAttributes
61 );
62
63NTSTATUS
64NTAPI
65HookedNtOpenKey(
66 OUT PHANDLE KeyHandle,
67 IN ACCESS_MASK DesiredAccess,
68 IN POBJECT_ATTRIBUTES ObjectAttributes
69 );
70
71
72/*
73 * ZwSetValueKey updates or adds a value to a key. [NAR]
74 */
75
76typedef NTSTATUS (*fpZwSetValueKey) (
77 IN HANDLE KeyHandle,
78 IN PUNICODE_STRING ValueName,
79 IN ULONG TitleIndex,
80 IN ULONG Type,
81 IN PVOID Data,
82 IN ULONG DataSize
83 );
84
85NTSTATUS
86NTAPI
87HookedNtSetValueKey(
88 IN HANDLE KeyHandle,
89 IN PUNICODE_STRING ValueName,
90 IN ULONG TitleIndex,
91 IN ULONG Type,
92 IN PVOID Data,
93 IN ULONG DataSize
94 );
95
96
97/*
98 * ZwQueryValueKey retrieves information about a key value. [NAR]
99 */
100
101typedef NTSTATUS (*fpZwQueryValueKey) (
102 IN HANDLE KeyHandle,
103 IN PUNICODE_STRING ValueName,
104 IN KEY_VALUE_INFORMATION_CLASS KeyValueInformationClass,
105 OUT PVOID KeyValueInformation,
106 IN ULONG KeyValueInformationLength,
107 OUT PULONG ResultLength
108 );
109
110NTSTATUS
111NTAPI
112HookedNtQueryValueKey(
113 IN HANDLE KeyHandle,
114 IN PUNICODE_STRING ValueName,
115 IN KEY_VALUE_INFORMATION_CLASS KeyValueInformationClass,
116 OUT PVOID KeyValueInformation,
117 IN ULONG KeyValueInformationLength,
118 OUT PULONG ResultLength
119 );
120
121
122/*
123 * ZwDeleteKey deletes a key in the registry. [NAR]
124 */
125
126typedef NTSTATUS (*fpZwDeleteKey) (
127 IN HANDLE KeyHandle
128 );
129
130NTSTATUS
131NTAPI
132HookedNtDeleteKey(
133 IN HANDLE KeyHandle
134 );
135
136
137BOOLEAN InitRegistryHooks();
138
139
140#endif /* __REGISTRY_H__ */