Skip to content

Commit 9a85f4c

Browse files
committed
Recompile IDLs
1 parent 0ffc147 commit 9a85f4c

32 files changed

+8785
-2826
lines changed

scapy-rpc/msrpcs/mc_ccfg.py

Lines changed: 300 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,24 +7,152 @@
77

88
"""
99
RPC definitions for the following interfaces:
10+
- IUnknown (v0.0): 00000000-0000-0000-C000-000000000046
11+
- IDispatch (v0.0): 00020400-0000-0000-C000-000000000046
1012
- IClusCfgAsyncEvictCleanup (v0.0): 52C80B95-C1AD-4240-8D89-72E9FA84025E
1113
This file is auto-generated by midl-to-scapy, do not modify.
1214
"""
1315

16+
from enum import IntEnum
1417
import uuid
1518

16-
19+
from scapy.fields import StrFixedLenField
1720
from scapy.layers.dcerpc import (
1821
NDRPacket,
1922
DceRpcOp,
23+
NDRConfFieldListField,
24+
NDRConfPacketListField,
2025
NDRConfStrLenField,
2126
NDRConfStrLenFieldUtf16,
27+
NDRConfVarStrLenField,
28+
NDRConfVarStrLenFieldUtf16,
29+
NDRFullEmbPointerField,
30+
NDRFullPointerField,
31+
NDRInt3264Field,
2232
NDRIntField,
2333
NDRPacketField,
34+
NDRRecursiveField,
35+
NDRRefEmbPointerField,
36+
NDRShortField,
2437
NDRSignedIntField,
38+
NDRSignedLongField,
2539
register_com_interface,
2640
)
2741

42+
IUNKNOWN_OPNUMS = { # 0: Opnum0NotUsedOnWire,
43+
# 1: Opnum1NotUsedOnWire,
44+
# 2: Opnum2NotUsedOnWire
45+
}
46+
register_com_interface(
47+
name="IUnknown",
48+
uuid=uuid.UUID("00000000-0000-0000-C000-000000000046"),
49+
opnums=IUNKNOWN_OPNUMS,
50+
)
51+
52+
53+
class GetTypeInfoCount_Request(NDRPacket):
54+
fields_desc = []
55+
56+
57+
class GetTypeInfoCount_Response(NDRPacket):
58+
fields_desc = [NDRIntField("pctinfo", 0), NDRIntField("status", 0)]
59+
60+
61+
class MInterfacePointer(NDRPacket):
62+
ALIGNMENT = (4, 8)
63+
DEPORTED_CONFORMANTS = ["abData"]
64+
fields_desc = [
65+
NDRIntField("ulCntData", None, size_of="abData"),
66+
NDRConfStrLenField(
67+
"abData", "", size_is=lambda pkt: pkt.ulCntData, conformant_in_struct=True
68+
),
69+
]
70+
71+
72+
class GetTypeInfo_Request(NDRPacket):
73+
fields_desc = [NDRIntField("iTInfo", 0), NDRIntField("lcid", 0)]
74+
75+
76+
class GetTypeInfo_Response(NDRPacket):
77+
fields_desc = [
78+
NDRFullPointerField(
79+
NDRPacketField("ppTInfo", MInterfacePointer(), MInterfacePointer)
80+
),
81+
NDRIntField("status", 0),
82+
]
83+
84+
85+
class GUID(NDRPacket):
86+
ALIGNMENT = (4, 4)
87+
fields_desc = [
88+
NDRIntField("Data1", 0),
89+
NDRShortField("Data2", 0),
90+
NDRShortField("Data3", 0),
91+
StrFixedLenField("Data4", "", length=8),
92+
]
93+
94+
95+
class GetIDsOfNames_Request(NDRPacket):
96+
fields_desc = [
97+
NDRPacketField("riid", GUID(), GUID),
98+
NDRConfVarStrLenFieldUtf16("rgszNames", "", size_is=lambda pkt: pkt.cNames),
99+
NDRIntField("cNames", None, size_of="rgszNames"),
100+
NDRIntField("lcid", 0),
101+
]
102+
103+
104+
class GetIDsOfNames_Response(NDRPacket):
105+
fields_desc = [
106+
NDRConfFieldListField(
107+
"rgDispId", [], NDRSignedIntField("", 0), size_is=lambda pkt: pkt.cNames
108+
),
109+
NDRIntField("status", 0),
110+
]
111+
112+
113+
class VARENUM(IntEnum):
114+
VT_EMPTY = 0
115+
VT_NULL = 1
116+
VT_I2 = 2
117+
VT_I4 = 3
118+
VT_R4 = 4
119+
VT_R8 = 5
120+
VT_CY = 6
121+
VT_DATE = 7
122+
VT_BSTR = 8
123+
VT_DISPATCH = 9
124+
VT_ERROR = 10
125+
VT_BOOL = 11
126+
VT_VARIANT = 12
127+
VT_UNKNOWN = 13
128+
VT_DECIMAL = 14
129+
VT_I1 = 16
130+
VT_UI1 = 17
131+
VT_UI2 = 18
132+
VT_UI4 = 19
133+
VT_I8 = 20
134+
VT_UI8 = 21
135+
VT_INT = 22
136+
VT_UINT = 23
137+
VT_VOID = 24
138+
VT_HRESULT = 25
139+
VT_PTR = 26
140+
VT_SAFEARRAY = 27
141+
VT_CARRAY = 28
142+
VT_USERDEFINED = 29
143+
VT_LPSTR = 30
144+
VT_LPWSTR = 31
145+
VT_RECORD = 36
146+
VT_INT_PTR = 37
147+
VT_UINT_PTR = 38
148+
VT_ARRAY = 8192
149+
VT_BYREF = 16384
150+
151+
152+
class CURRENCY(NDRPacket):
153+
ALIGNMENT = (8, 8)
154+
fields_desc = [NDRSignedLongField("int64", 0)]
155+
28156

29157
class FLAGGED_WORD_BLOB(NDRPacket):
30158
ALIGNMENT = (4, 8)
@@ -38,6 +166,169 @@ class FLAGGED_WORD_BLOB(NDRPacket):
38166
]
39167

40168

169+
class SF_TYPE(IntEnum):
170+
SF_ERROR = VARENUM.VT_ERROR
171+
SF_I1 = VARENUM.VT_I1
172+
SF_I2 = VARENUM.VT_I2
173+
SF_I4 = VARENUM.VT_I4
174+
SF_I8 = VARENUM.VT_I8
175+
SF_BSTR = VARENUM.VT_BSTR
176+
SF_UNKNOWN = VARENUM.VT_UNKNOWN
177+
SF_DISPATCH = VARENUM.VT_DISPATCH
178+
SF_VARIANT = VARENUM.VT_VARIANT
179+
SF_RECORD = VARENUM.VT_RECORD
180+
SF_HAVEIID = VARENUM.VT_UNKNOWN | 32768
181+
182+
183+
class SAFEARR_BSTR(NDRPacket):
184+
ALIGNMENT = (4, 8)
185+
fields_desc = [
186+
NDRIntField("Size", None, size_of="aBstr"),
187+
NDRRefEmbPointerField(
188+
NDRConfPacketListField(
189+
"aBstr", [], FLAGGED_WORD_BLOB, size_is=lambda pkt: pkt.Size
190+
)
191+
),
192+
]
193+
194+
195+
class SAFEARR_UNKNOWN(NDRPacket):
196+
ALIGNMENT = (4, 8)
197+
fields_desc = [
198+
NDRIntField("Size", None, size_of="apUnknown"),
199+
NDRRefEmbPointerField(
200+
NDRConfPacketListField(
201+
"apUnknown", [], MInterfacePointer, size_is=lambda pkt: pkt.Size
202+
)
203+
),
204+
]
205+
206+
207+
class SAFEARR_DISPATCH(NDRPacket):
208+
ALIGNMENT = (4, 8)
209+
fields_desc = [
210+
NDRIntField("Size", None, size_of="apDispatch"),
211+
NDRRefEmbPointerField(
212+
NDRConfPacketListField(
213+
"apDispatch", [], MInterfacePointer, size_is=lambda pkt: pkt.Size
214+
)
215+
),
216+
]
217+
218+
219+
class wireVARIANTStr(NDRPacket):
220+
ALIGNMENT = (4, 4)
221+
fields_desc = [
222+
NDRIntField("clSize", 0),
223+
NDRIntField("rpcReserved", 0),
224+
NDRShortField("vt", 0),
225+
NDRShortField("wReserved1", 0),
226+
NDRShortField("wReserved2", 0),
227+
NDRShortField("wReserved3", 0),
228+
NDRRecursiveField("_varUnion"),
229+
]
230+
231+
232+
class DISPPARAMS(NDRPacket):
233+
ALIGNMENT = (4, 8)
234+
fields_desc = [
235+
NDRFullEmbPointerField(
236+
NDRConfPacketListField(
237+
"rgvarg",
238+
[],
239+
wireVARIANTStr,
240+
size_is=lambda pkt: pkt.cArgs,
241+
ptr_pack=True,
242+
)
243+
),
244+
NDRFullEmbPointerField(
245+
NDRConfFieldListField(
246+
"rgdispidNamedArgs",
247+
[],
248+
NDRSignedIntField("rgdispidNamedArgs", 0),
249+
size_is=lambda pkt: pkt.cNamedArgs,
250+
)
251+
),
252+
NDRIntField("cArgs", None, size_of="rgvarg"),
253+
NDRIntField("cNamedArgs", None, size_of="rgdispidNamedArgs"),
254+
]
255+
256+
257+
class EXCEPINFO(NDRPacket):
258+
ALIGNMENT = (4, 8)
259+
fields_desc = [
260+
NDRShortField("wCode", 0),
261+
NDRShortField("wReserved", 0),
262+
NDRFullEmbPointerField(
263+
NDRPacketField("bstrSource", FLAGGED_WORD_BLOB(), FLAGGED_WORD_BLOB)
264+
),
265+
NDRFullEmbPointerField(
266+
NDRPacketField("bstrDescription", FLAGGED_WORD_BLOB(), FLAGGED_WORD_BLOB)
267+
),
268+
NDRFullEmbPointerField(
269+
NDRPacketField("bstrHelpFile", FLAGGED_WORD_BLOB(), FLAGGED_WORD_BLOB)
270+
),
271+
NDRIntField("dwHelpContext", 0),
272+
NDRInt3264Field("pvReserved", 0),
273+
NDRInt3264Field("pfnDeferredFillIn", 0),
274+
NDRSignedIntField("scode", 0),
275+
]
276+
277+
278+
class Invoke_Request(NDRPacket):
279+
fields_desc = [
280+
NDRSignedIntField("dispIdMember", 0),
281+
NDRPacketField("riid", GUID(), GUID),
282+
NDRIntField("lcid", 0),
283+
NDRIntField("dwFlags", 0),
284+
NDRPacketField("pDispParams", DISPPARAMS(), DISPPARAMS),
285+
NDRIntField("cVarRef", None, size_of="rgVarRef"),
286+
NDRConfFieldListField(
287+
"rgVarRefIdx", [], NDRIntField("", 0), size_is=lambda pkt: pkt.cVarRef
288+
),
289+
NDRConfPacketListField(
290+
"rgVarRef",
291+
[],
292+
wireVARIANTStr,
293+
size_is=lambda pkt: pkt.cVarRef,
294+
ptr_pack=True,
295+
),
296+
]
297+
298+
299+
class Invoke_Response(NDRPacket):
300+
fields_desc = [
301+
NDRFullPointerField(
302+
NDRPacketField("pVarResult", wireVARIANTStr(), wireVARIANTStr)
303+
),
304+
NDRPacketField("pExcepInfo", EXCEPINFO(), EXCEPINFO),
305+
NDRIntField("pArgErr", 0),
306+
NDRConfPacketListField(
307+
"rgVarRef",
308+
[],
309+
wireVARIANTStr,
310+
size_is=lambda pkt: pkt.cVarRef,
311+
ptr_pack=True,
312+
),
313+
NDRIntField("status", 0),
314+
]
315+
316+
317+
IDISPATCH_OPNUMS = { # 0: Opnum0NotUsedOnWire,
318+
# 1: Opnum1NotUsedOnWire,
319+
# 2: Opnum2NotUsedOnWire,
320+
3: DceRpcOp(GetTypeInfoCount_Request, GetTypeInfoCount_Response),
321+
4: DceRpcOp(GetTypeInfo_Request, GetTypeInfo_Response),
322+
5: DceRpcOp(GetIDsOfNames_Request, GetIDsOfNames_Response),
323+
6: DceRpcOp(Invoke_Request, Invoke_Response),
324+
}
325+
register_com_interface(
326+
name="IDispatch",
327+
uuid=uuid.UUID("00020400-0000-0000-C000-000000000046"),
328+
opnums=IDISPATCH_OPNUMS,
329+
)
330+
331+
41332
class CleanupNode_Request(NDRPacket):
42333
fields_desc = [
43334
NDRPacketField("bstrEvictedNodeNameIn", FLAGGED_WORD_BLOB(), FLAGGED_WORD_BLOB),
@@ -50,8 +341,14 @@ class CleanupNode_Response(NDRPacket):
50341
fields_desc = [NDRIntField("status", 0)]
51342

52343

53-
ICLUSCFGASYNCEVICTCLEANUP_OPNUMS = {
54-
0: DceRpcOp(CleanupNode_Request, CleanupNode_Response)
344+
ICLUSCFGASYNCEVICTCLEANUP_OPNUMS = { # 0: Opnum0NotUsedOnWire,
345+
# 1: Opnum1NotUsedOnWire,
346+
# 2: Opnum2NotUsedOnWire,
347+
3: DceRpcOp(GetTypeInfoCount_Request, GetTypeInfoCount_Response),
348+
4: DceRpcOp(GetTypeInfo_Request, GetTypeInfo_Response),
349+
5: DceRpcOp(GetIDsOfNames_Request, GetIDsOfNames_Response),
350+
6: DceRpcOp(Invoke_Request, Invoke_Response),
351+
7: DceRpcOp(CleanupNode_Request, CleanupNode_Response),
55352
}
56353
register_com_interface(
57354
name="IClusCfgAsyncEvictCleanup",

0 commit comments

Comments
 (0)