turborex 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +674 -0
  3. data/README.md +38 -0
  4. data/README.rdoc +19 -0
  5. data/examples/alpc_client.rb +15 -0
  6. data/examples/alpc_server.rb +14 -0
  7. data/examples/com_client.rb +19 -0
  8. data/examples/com_finder.rb +39 -0
  9. data/examples/create_instance.rb +15 -0
  10. data/examples/cstruct.rb +19 -0
  11. data/examples/find_com_client_calls.rb +16 -0
  12. data/examples/find_rpc_security_callback.rb +12 -0
  13. data/examples/rpc_finder.rb +117 -0
  14. data/examples/scan_exports.rb +5 -0
  15. data/examples/scan_imports.rb +5 -0
  16. data/examples/tinysdk.rb +17 -0
  17. data/lib/turborex.rb +21 -0
  18. data/lib/turborex/cstruct.rb +565 -0
  19. data/lib/turborex/cstruct/struct_helper.rb +7 -0
  20. data/lib/turborex/exception.rb +65 -0
  21. data/lib/turborex/fuzzer.rb +204 -0
  22. data/lib/turborex/fuzzer/containers.rb +115 -0
  23. data/lib/turborex/fuzzer/coverage.rb +67 -0
  24. data/lib/turborex/fuzzer/mutators.rb +25 -0
  25. data/lib/turborex/fuzzer/seed.rb +30 -0
  26. data/lib/turborex/monkey.rb +11 -0
  27. data/lib/turborex/msrpc.rb +14 -0
  28. data/lib/turborex/msrpc/decompiler.rb +244 -0
  29. data/lib/turborex/msrpc/midl.rb +747 -0
  30. data/lib/turborex/msrpc/ndrtype.rb +167 -0
  31. data/lib/turborex/msrpc/rpcbase.rb +777 -0
  32. data/lib/turborex/msrpc/rpcfinder.rb +1426 -0
  33. data/lib/turborex/msrpc/utils.rb +70 -0
  34. data/lib/turborex/pefile.rb +8 -0
  35. data/lib/turborex/pefile/pe.rb +61 -0
  36. data/lib/turborex/pefile/scanner.rb +82 -0
  37. data/lib/turborex/utils.rb +321 -0
  38. data/lib/turborex/windows.rb +402 -0
  39. data/lib/turborex/windows/alpc.rb +844 -0
  40. data/lib/turborex/windows/com.rb +266 -0
  41. data/lib/turborex/windows/com/client.rb +84 -0
  42. data/lib/turborex/windows/com/com_finder.rb +330 -0
  43. data/lib/turborex/windows/com/com_registry.rb +100 -0
  44. data/lib/turborex/windows/com/interface.rb +522 -0
  45. data/lib/turborex/windows/com/utils.rb +210 -0
  46. data/lib/turborex/windows/constants.rb +82 -0
  47. data/lib/turborex/windows/process.rb +56 -0
  48. data/lib/turborex/windows/security.rb +12 -0
  49. data/lib/turborex/windows/security/ace.rb +76 -0
  50. data/lib/turborex/windows/security/acl.rb +25 -0
  51. data/lib/turborex/windows/security/security_descriptor.rb +118 -0
  52. data/lib/turborex/windows/tinysdk.rb +89 -0
  53. data/lib/turborex/windows/utils.rb +138 -0
  54. data/resources/headers/alpc/ntdef.h +72 -0
  55. data/resources/headers/alpc/ntlpcapi.h +1014 -0
  56. data/resources/headers/rpc/common.h +162 -0
  57. data/resources/headers/rpc/guiddef.h +191 -0
  58. data/resources/headers/rpc/internal_ndrtypes.h +262 -0
  59. data/resources/headers/rpc/rpc.h +10 -0
  60. data/resources/headers/rpc/rpcdce.h +266 -0
  61. data/resources/headers/rpc/rpcdcep.h +187 -0
  62. data/resources/headers/rpc/rpcndr.h +39 -0
  63. data/resources/headers/rpc/v4_x64/rpcinternals.h +154 -0
  64. data/resources/headers/rpc/wintype.h +517 -0
  65. data/resources/headers/tinysdk/tinysdk.h +5 -0
  66. data/resources/headers/tinysdk/tinysdk/comdef.h +645 -0
  67. data/resources/headers/tinysdk/tinysdk/dbghelp.h +118 -0
  68. data/resources/headers/tinysdk/tinysdk/guiddef.h +194 -0
  69. data/resources/headers/tinysdk/tinysdk/memoryapi.h +12 -0
  70. data/resources/headers/tinysdk/tinysdk/poppack.h +12 -0
  71. data/resources/headers/tinysdk/tinysdk/pshpack4.h +13 -0
  72. data/resources/headers/tinysdk/tinysdk/winnt.h +1059 -0
  73. data/resources/headers/tinysdk/tinysdk/wintype.h +326 -0
  74. metadata +290 -0
@@ -0,0 +1,10 @@
1
+ typedef long RPC_STATUS;
2
+ #define RPC_ENTRY __stdcall
3
+
4
+ #define IN
5
+ #define OUT
6
+ #define __RPC_FAR
7
+ typedef void * I_RPC_HANDLE;
8
+
9
+ #include <rpcdce.h>
10
+ #include <rpcndr.h>
@@ -0,0 +1,266 @@
1
+ #ifndef __RPCDCE_H__
2
+ #define __RPCDCE_H__
3
+
4
+ #if _MSC_VER > 1000
5
+ #pragma once
6
+ #endif
7
+
8
+ #ifdef __cplusplus
9
+ extern "C" {
10
+ #endif
11
+
12
+
13
+ #pragma region Application Family or OneCore Family
14
+
15
+ #define RPC_C_PARM_MAX_PACKET_LENGTH 1
16
+ #define RPC_C_PARM_BUFFER_LENGTH 2
17
+
18
+ #define RPC_IF_AUTOLISTEN 0x0001
19
+ #define RPC_IF_OLE 0x0002
20
+ #define RPC_IF_ALLOW_UNKNOWN_AUTHORITY 0x0004
21
+ #define RPC_IF_ALLOW_SECURE_ONLY 0x0008
22
+ #define RPC_IF_ALLOW_CALLBACKS_WITH_NO_AUTH 0x0010
23
+ #define RPC_IF_ALLOW_LOCAL_ONLY 0x0020
24
+ #define RPC_IF_SEC_NO_CACHE 0x0040
25
+ #if (NTDDI_VERSION >= NTDDI_VISTA)
26
+ #define RPC_IF_SEC_CACHE_PER_PROC 0x0080
27
+ #define RPC_IF_ASYNC_CALLBACK 0x0100
28
+ #endif // (NTDDI_VERSION >= NTDDI_VISTA)
29
+
30
+ #if (NTDDI_VERSION >= NTDDI_VISTA)
31
+ #define RPC_FW_IF_FLAG_DCOM 0x0001
32
+ #endif // (NTDDI_VERSION >= NTDDI_VISTA)
33
+
34
+ #ifndef IN
35
+ #define IN
36
+ #endif
37
+
38
+ #ifndef OUT
39
+ #define OUT
40
+ #endif
41
+
42
+ #ifndef OPTIONAL
43
+ #define OPTIONAL
44
+ #endif
45
+
46
+ #ifndef DECLSPEC_NORETURN
47
+ #if (_MSC_VER >= 1200) && !defined(MIDL_PASS)
48
+ #define DECLSPEC_NORETURN __declspec(noreturn)
49
+ #else
50
+ #define DECLSPEC_NORETURN
51
+ #endif
52
+ #endif
53
+
54
+
55
+ typedef unsigned char __RPC_FAR * RPC_CSTR;
56
+
57
+ #if defined(RPC_USE_NATIVE_WCHAR) && defined(_NATIVE_WCHAR_T_DEFINED)
58
+ typedef wchar_t __RPC_FAR * RPC_WSTR;
59
+ typedef const wchar_t * RPC_CWSTR;
60
+ #else
61
+ typedef unsigned short __RPC_FAR * RPC_WSTR;
62
+ typedef const unsigned short * RPC_CWSTR;
63
+ #endif
64
+
65
+ typedef I_RPC_HANDLE RPC_BINDING_HANDLE;
66
+ typedef RPC_BINDING_HANDLE handle_t;
67
+ #define rpc_binding_handle_t RPC_BINDING_HANDLE
68
+
69
+ #ifndef GUID_DEFINED
70
+ #include <guiddef.h>
71
+ #endif /* GUID_DEFINED */
72
+
73
+ #ifndef UUID_DEFINED
74
+ #define UUID_DEFINED
75
+ typedef GUID UUID;
76
+ #ifndef uuid_t
77
+ #define uuid_t UUID
78
+ #endif
79
+ #endif
80
+
81
+
82
+ #pragma endregion
83
+
84
+ #pragma region Desktop Family or OneCore Family
85
+
86
+
87
+ #ifndef rpc_binding_vector_t
88
+ #define rpc_binding_vector_t RPC_BINDING_VECTOR
89
+ #endif
90
+
91
+ #ifndef uuid_vector_t
92
+ #define uuid_vector_t UUID_VECTOR
93
+ #endif
94
+
95
+
96
+ #pragma endregion
97
+
98
+ #pragma region Application Family or OneCore Family
99
+
100
+ typedef void __RPC_FAR * RPC_IF_HANDLE;
101
+
102
+ #ifndef IFID_DEFINED
103
+ #define IFID_DEFINED
104
+ typedef struct _RPC_IF_ID
105
+ {
106
+ UUID Uuid;
107
+ unsigned short VersMajor;
108
+ unsigned short VersMinor;
109
+ } RPC_IF_ID;
110
+ #endif
111
+
112
+
113
+
114
+ #pragma endregion
115
+
116
+ #pragma region Desktop Family or OneCore Family
117
+
118
+
119
+ #define RPC_C_BINDING_INFINITE_TIMEOUT 10
120
+ #define RPC_C_BINDING_MIN_TIMEOUT 0
121
+ #define RPC_C_BINDING_DEFAULT_TIMEOUT 5
122
+ #define RPC_C_BINDING_MAX_TIMEOUT 9
123
+
124
+ #define RPC_C_CANCEL_INFINITE_TIMEOUT -1
125
+
126
+ #define RPC_C_LISTEN_MAX_CALLS_DEFAULT 1234
127
+ #define RPC_C_PROTSEQ_MAX_REQS_DEFAULT 10
128
+
129
+ #define RPC_C_BIND_TO_ALL_NICS 1
130
+ #define RPC_C_USE_INTERNET_PORT 0x1
131
+ #define RPC_C_USE_INTRANET_PORT 0x2
132
+ #define RPC_C_DONT_FAIL 0x4
133
+ #define RPC_C_RPCHTTP_USE_LOAD_BALANCE 0x8
134
+
135
+ #if (NTDDI_VERSION < NTDDI_VISTA)
136
+ #define RPC_C_MQ_TEMPORARY 0x0000
137
+ #define RPC_C_MQ_PERMANENT 0x0001
138
+ #define RPC_C_MQ_CLEAR_ON_OPEN 0x0002
139
+ #define RPC_C_MQ_USE_EXISTING_SECURITY 0x0004
140
+ #define RPC_C_MQ_AUTHN_LEVEL_NONE 0x0000
141
+ #define RPC_C_MQ_AUTHN_LEVEL_PKT_INTEGRITY 0x0008
142
+ #define RPC_C_MQ_AUTHN_LEVEL_PKT_PRIVACY 0x0010
143
+
144
+ #define RPC_C_MQ_EXPRESS 0
145
+ #define RPC_C_MQ_RECOVERABLE 1
146
+
147
+ #define RPC_C_MQ_JOURNAL_NONE 0
148
+ #define RPC_C_MQ_JOURNAL_DEADLETTER 1
149
+ #define RPC_C_MQ_JOURNAL_ALWAYS 2
150
+
151
+
152
+ #define RPC_C_OPT_MQ_DELIVERY 1
153
+ #define RPC_C_OPT_MQ_PRIORITY 2
154
+ #define RPC_C_OPT_MQ_JOURNAL 3
155
+ #define RPC_C_OPT_MQ_ACKNOWLEDGE 4
156
+ #define RPC_C_OPT_MQ_AUTHN_SERVICE 5
157
+ #define RPC_C_OPT_MQ_AUTHN_LEVEL 6
158
+ #define RPC_C_OPT_MQ_TIME_TO_REACH_QUEUE 7
159
+ #define RPC_C_OPT_MQ_TIME_TO_BE_RECEIVED 8
160
+ #endif
161
+
162
+ #define RPC_C_OPT_BINDING_NONCAUSAL 9
163
+ #define RPC_C_OPT_SECURITY_CALLBACK 10
164
+ #define RPC_C_OPT_UNIQUE_BINDING 11
165
+
166
+ #if (NTDDI_VERSION <= NTDDI_WIN2K)
167
+ #define RPC_C_OPT_MAX_OPTIONS 12
168
+
169
+ #elif (NTDDI_VERSION <= NTDDI_WS03)
170
+ #define RPC_C_OPT_CALL_TIMEOUT 12
171
+ #define RPC_C_OPT_DONT_LINGER 13
172
+ #define RPC_C_OPT_MAX_OPTIONS 14
173
+
174
+ #else
175
+ #define RPC_C_OPT_TRANS_SEND_BUFFER_SIZE 5
176
+ #define RPC_C_OPT_CALL_TIMEOUT 12
177
+ #define RPC_C_OPT_DONT_LINGER 13
178
+ #define RPC_C_OPT_TRUST_PEER 14
179
+ #define RPC_C_OPT_ASYNC_BLOCK 15
180
+ #define RPC_C_OPT_OPTIMIZE_TIME 16
181
+ #define RPC_C_OPT_MAX_OPTIONS 17
182
+
183
+ #endif
184
+
185
+ #define RPC_C_FULL_CERT_CHAIN 0x0001
186
+
187
+
188
+
189
+ #ifdef RPC_UNICODE_SUPPORTED
190
+ typedef struct _RPC_PROTSEQ_VECTORA
191
+ {
192
+ unsigned int Count;
193
+ unsigned char __RPC_FAR * Protseq[1];
194
+ } RPC_PROTSEQ_VECTORA;
195
+
196
+ typedef struct _RPC_PROTSEQ_VECTORW
197
+ {
198
+ unsigned int Count;
199
+ unsigned short __RPC_FAR * Protseq[1];
200
+ } RPC_PROTSEQ_VECTORW;
201
+
202
+ #ifdef UNICODE
203
+ #define RPC_PROTSEQ_VECTOR RPC_PROTSEQ_VECTORW
204
+ #else /* UNICODE */
205
+ #define RPC_PROTSEQ_VECTOR RPC_PROTSEQ_VECTORA
206
+ #endif /* UNICODE */
207
+
208
+ #else
209
+
210
+ typedef struct _RPC_PROTSEQ_VECTOR
211
+ {
212
+ unsigned int Count;
213
+ unsigned char __RPC_FAR * Protseq[1];
214
+ } RPC_PROTSEQ_VECTOR;
215
+
216
+ #endif
217
+ typedef struct _RPC_POLICY {
218
+ unsigned int Length ;
219
+ unsigned long EndpointFlags ;
220
+ unsigned long NICFlags ;
221
+ } RPC_POLICY, __RPC_FAR *PRPC_POLICY ;
222
+
223
+ #pragma endregion
224
+
225
+ #pragma region Application Family or OneCore Family
226
+
227
+
228
+ #define RPC_MGR_EPV void
229
+
230
+ typedef struct
231
+ {
232
+ unsigned int Count;
233
+ unsigned long Stats[1];
234
+ } RPC_STATS_VECTOR;
235
+
236
+ #define RPC_C_STATS_CALLS_IN 0
237
+ #define RPC_C_STATS_CALLS_OUT 1
238
+ #define RPC_C_STATS_PKTS_IN 2
239
+ #define RPC_C_STATS_PKTS_OUT 3
240
+
241
+ typedef struct
242
+ {
243
+ unsigned long Count;
244
+ RPC_IF_ID __RPC_FAR * IfId[1];
245
+ } RPC_IF_ID_VECTOR;
246
+
247
+ #define _In_
248
+
249
+ typedef RPC_STATUS RPC_ENTRY
250
+ RPC_IF_CALLBACK_FN (
251
+ _In_ RPC_IF_HANDLE InterfaceUuid,
252
+ _In_ void *Context
253
+ ) ;
254
+
255
+ typedef struct _UUID_VECTOR
256
+ {
257
+ unsigned long Count;
258
+ UUID *Uuid[1];
259
+ } UUID_VECTOR;
260
+ #include <rpcdcep.h>
261
+
262
+ #ifdef __cplusplus
263
+ }
264
+ #endif
265
+
266
+ #endif
@@ -0,0 +1,187 @@
1
+ #include <wintype.h>
2
+ #include <guiddef.h>
3
+
4
+
5
+ #ifndef __RPCDCEP_H__
6
+ #define __RPCDCEP_H__
7
+
8
+ #if _MSC_VER > 1000
9
+ #pragma once
10
+ #endif
11
+
12
+ #ifdef __cplusplus
13
+ extern "C" {
14
+ #endif
15
+
16
+
17
+ #pragma region Application Family or OneCore Family
18
+
19
+
20
+ typedef struct _RPC_VERSION {
21
+ unsigned short MajorVersion;
22
+ unsigned short MinorVersion;
23
+ } RPC_VERSION;
24
+
25
+ typedef struct _RPC_SYNTAX_IDENTIFIER {
26
+ GUID SyntaxGUID;
27
+ RPC_VERSION SyntaxVersion;
28
+ } RPC_SYNTAX_IDENTIFIER, __RPC_FAR * PRPC_SYNTAX_IDENTIFIER;
29
+
30
+ typedef struct _RPC_MESSAGE
31
+ {
32
+ RPC_BINDING_HANDLE Handle;
33
+ unsigned long DataRepresentation;
34
+ void __RPC_FAR * Buffer;
35
+ unsigned int BufferLength;
36
+ unsigned int ProcNum;
37
+ PRPC_SYNTAX_IDENTIFIER TransferSyntax;
38
+ void __RPC_FAR * RpcInterfaceInformation;
39
+ void __RPC_FAR * ReservedForRuntime;
40
+ RPC_MGR_EPV __RPC_FAR * ManagerEpv;
41
+ void __RPC_FAR * ImportContext;
42
+ unsigned long RpcFlags;
43
+ } RPC_MESSAGE, __RPC_FAR * PRPC_MESSAGE;
44
+
45
+
46
+ #pragma endregion
47
+
48
+ #pragma region Desktop Family or OneCore Family
49
+
50
+
51
+ typedef RPC_STATUS
52
+ RPC_ENTRY RPC_FORWARD_FUNCTION(
53
+ IN UUID __RPC_FAR * InterfaceId,
54
+ IN RPC_VERSION __RPC_FAR * InterfaceVersion,
55
+ IN UUID __RPC_FAR * ObjectId,
56
+ IN unsigned char __RPC_FAR * Rpcpro,
57
+ IN void __RPC_FAR * __RPC_FAR * ppDestEndpoint);
58
+
59
+ enum RPC_ADDRESS_CHANGE_TYPE
60
+ {
61
+ PROTOCOL_NOT_LOADED = 1,
62
+ PROTOCOL_LOADED,
63
+ PROTOCOL_ADDRESS_CHANGE
64
+ };
65
+
66
+ typedef void
67
+ RPC_ENTRY RPC_ADDRESS_CHANGE_FN(
68
+ IN void * arg
69
+ );
70
+
71
+
72
+ #pragma endregion
73
+
74
+ #pragma region Application Family or OneCore Family
75
+
76
+
77
+ #define RPC_CONTEXT_HANDLE_DEFAULT_GUARD ((void *)(ULONG_PTR)0xFFFFF00D)
78
+
79
+ #define RPC_CONTEXT_HANDLE_DEFAULT_FLAGS 0x00000000UL
80
+ #define RPC_CONTEXT_HANDLE_FLAGS 0x30000000UL
81
+ #define RPC_CONTEXT_HANDLE_SERIALIZE 0x10000000UL
82
+ #define RPC_CONTEXT_HANDLE_DONT_SERIALIZE 0x20000000UL
83
+ #if (NTDDI_VERSION >= NTDDI_VISTA)
84
+ #define RPC_TYPE_STRICT_CONTEXT_HANDLE 0x40000000UL
85
+ #endif
86
+
87
+
88
+ #define RPC_NCA_FLAGS_DEFAULT 0x00000000 /* 0b000...000 */
89
+ #define RPC_NCA_FLAGS_IDEMPOTENT 0x00000001 /* 0b000...001 */
90
+ #define RPC_NCA_FLAGS_BROADCAST 0x00000002 /* 0b000...010 */
91
+ #define RPC_NCA_FLAGS_MAYBE 0x00000004 /* 0b000...100 */
92
+
93
+ #if (NTDDI_VERSION >= NTDDI_VISTA)
94
+ #define RPCFLG_HAS_GUARANTEE 0x00000010UL
95
+ #endif
96
+
97
+ #define RPCFLG_WINRT_REMOTE_ASYNC 0x00000020UL
98
+
99
+
100
+ #define RPC_BUFFER_COMPLETE 0x00001000 /* used by pipes */
101
+ #define RPC_BUFFER_PARTIAL 0x00002000 /* used by pipes */
102
+ #define RPC_BUFFER_EXTRA 0x00004000 /* used by pipes */
103
+ #define RPC_BUFFER_ASYNC 0x00008000 /* used by async rpc */
104
+ #define RPC_BUFFER_NONOTIFY 0x00010000 /* used by async pipes */
105
+
106
+ #define RPCFLG_MESSAGE 0x01000000UL
107
+ #define RPCFLG_AUTO_COMPLETE 0x08000000UL
108
+ #define RPCFLG_LOCAL_CALL 0x10000000UL
109
+ #define RPCFLG_INPUT_SYNCHRONOUS 0x20000000UL
110
+ #define RPCFLG_ASYNCHRONOUS 0x40000000UL
111
+ #define RPCFLG_NON_NDR 0x80000000UL
112
+
113
+ #if (NTDDI_VERSION >= NTDDI_WINXP)
114
+ #define RPCFLG_HAS_MULTI_SYNTAXES 0x02000000UL
115
+ #define RPCFLG_HAS_CALLBACK 0x04000000UL
116
+ #endif
117
+
118
+ #if (NTDDI_VERSION >= NTDDI_VISTA)
119
+ #define RPCFLG_ACCESSIBILITY_BIT1 0x00100000UL
120
+ #define RPCFLG_ACCESSIBILITY_BIT2 0x00200000UL
121
+ #define RPCFLG_ACCESS_LOCAL 0x00400000UL
122
+
123
+ #define NDR_CUSTOM_OR_DEFAULT_ALLOCATOR 0x10000000UL
124
+ #define NDR_DEFAULT_ALLOCATOR 0x20000000UL
125
+ #endif
126
+
127
+ #if (NTDDI_VERSION >= NTDDI_WIN8)
128
+ #define RPCFLG_NDR64_CONTAINS_ARM_LAYOUT 0x04000000UL
129
+ #endif
130
+
131
+ #if (NTDDI_VERSION >= NTDDI_WINBLUE)
132
+
133
+
134
+ #define RPCFLG_SENDER_WAITING_FOR_REPLY 0x00800000UL
135
+
136
+ #endif
137
+
138
+ #define RPC_FLAGS_VALID_BIT 0x00008000
139
+
140
+ typedef void *RPC_DISPATCH_FUNCTION;
141
+ typedef struct {
142
+ unsigned int DispatchTableCount;
143
+ RPC_DISPATCH_FUNCTION __RPC_FAR * DispatchTable;
144
+ LONG_PTR Reserved;
145
+ } RPC_DISPATCH_TABLE, __RPC_FAR * PRPC_DISPATCH_TABLE;
146
+
147
+ typedef struct _RPC_PROTSEQ_ENDPOINT
148
+ {
149
+ unsigned char __RPC_FAR * RpcProtocolSequence;
150
+ unsigned char __RPC_FAR * Endpoint;
151
+ } RPC_PROTSEQ_ENDPOINT, __RPC_FAR * PRPC_PROTSEQ_ENDPOINT;
152
+
153
+
154
+ #define NT351_INTERFACE_SIZE 0x40
155
+ #define RPC_INTERFACE_HAS_PIPES 0x0001
156
+
157
+ typedef struct _RPC_SERVER_INTERFACE
158
+ {
159
+ unsigned int Length;
160
+ RPC_SYNTAX_IDENTIFIER InterfaceId;
161
+ RPC_SYNTAX_IDENTIFIER TransferSyntax;
162
+ PRPC_DISPATCH_TABLE DispatchTable;
163
+ unsigned int RpcProtseqEndpointCount;
164
+ PRPC_PROTSEQ_ENDPOINT RpcProtseqEndpoint;
165
+ RPC_MGR_EPV __RPC_FAR *DefaultManagerEpv;
166
+ void const __RPC_FAR *InterpreterInfo;
167
+ unsigned int Flags ;
168
+ } RPC_SERVER_INTERFACE, __RPC_FAR * PRPC_SERVER_INTERFACE;
169
+
170
+ typedef struct _RPC_CLIENT_INTERFACE
171
+ {
172
+ unsigned int Length;
173
+ RPC_SYNTAX_IDENTIFIER InterfaceId;
174
+ RPC_SYNTAX_IDENTIFIER TransferSyntax;
175
+ PRPC_DISPATCH_TABLE DispatchTable;
176
+ unsigned int RpcProtseqEndpointCount;
177
+ PRPC_PROTSEQ_ENDPOINT RpcProtseqEndpoint;
178
+ ULONG_PTR Reserved;
179
+ void const __RPC_FAR * InterpreterInfo;
180
+ unsigned int Flags ;
181
+ } RPC_CLIENT_INTERFACE, __RPC_FAR * PRPC_CLIENT_INTERFACE;
182
+
183
+
184
+ #pragma endregion
185
+
186
+
187
+ #endif