Coverage for /pythoncovmergedfiles/medio/medio/usr/local/lib/python3.11/site-packages/scapy/layers/msrpce/raw/ept.py: 98%

Shortcuts on this page

r m x   toggle line displays

j k   next/prev highlighted chunk

0   (zero) top of page

1   (one) first highlighted chunk

54 statements  

1# SPDX-License-Identifier: GPL-2.0-only 

2# This file is part of Scapy RPC 

3# See https://scapy.net/ for more information 

4# Copyright (C) Gabriel Potter 

5 

6# This is from [MS-RPCE] and [C706] Appendix O 

7 

8""" 

9RPC definitions for the following interfaces: 

10- ept (v3.0): e1af8308-5d1f-11c9-91a4-08002b14a0fa 

11This file is auto-generated by midl-to-scapy, do not modify. 

12""" 

13 

14import uuid 

15 

16from scapy.fields import PacketListField, StrFixedLenField 

17from scapy.layers.dcerpc import ( 

18 NDRPacket, 

19 DceRpcOp, 

20 NDRByteField, 

21 NDRConfPacketListField, 

22 NDRConfStrLenField, 

23 NDRConfVarPacketListField, 

24 NDRContextHandle, 

25 NDRFullEmbPointerField, 

26 NDRFullPointerField, 

27 NDRIntField, 

28 NDRPacketField, 

29 NDRShortField, 

30 NDRVarStrLenField, 

31 register_dcerpc_interface, 

32) 

33 

34 

35class UUID(NDRPacket): 

36 ALIGNMENT = (4, 4) 

37 fields_desc = [ 

38 NDRIntField("Data1", 0), 

39 NDRShortField("Data2", 0), 

40 NDRShortField("Data3", 0), 

41 StrFixedLenField("Data4", "", length=8), 

42 ] 

43 

44 

45class twr_p_t(NDRPacket): 

46 ALIGNMENT = (4, 4) 

47 DEPORTED_CONFORMANTS = ["tower_octet_string"] 

48 fields_desc = [ 

49 NDRIntField("tower_length", None, size_of="tower_octet_string"), 

50 NDRConfStrLenField( 

51 "tower_octet_string", 

52 "", 

53 size_is=lambda pkt: pkt.tower_length, 

54 conformant_in_struct=True, 

55 ), 

56 ] 

57 

58 

59class ept_entry_t(NDRPacket): 

60 ALIGNMENT = (4, 8) 

61 fields_desc = [ 

62 NDRPacketField("object", UUID(), UUID), 

63 NDRFullEmbPointerField(NDRPacketField("tower", twr_p_t(), twr_p_t)), 

64 NDRVarStrLenField("annotation", ""), 

65 ] 

66 

67 

68class ept_insert_Request(NDRPacket): 

69 fields_desc = [ 

70 NDRIntField("num_ents", None, size_of="entries"), 

71 NDRConfPacketListField( 

72 "entries", [], ept_entry_t, size_is=lambda pkt: pkt.num_ents 

73 ), 

74 NDRIntField("replace", 0), 

75 ] 

76 

77 

78class ept_insert_Response(NDRPacket): 

79 fields_desc = [NDRIntField("status", 0)] 

80 

81 

82class ept_delete_Request(NDRPacket): 

83 fields_desc = [ 

84 NDRIntField("num_ents", None, size_of="entries"), 

85 NDRConfPacketListField( 

86 "entries", [], ept_entry_t, size_is=lambda pkt: pkt.num_ents 

87 ), 

88 ] 

89 

90 

91class ept_delete_Response(NDRPacket): 

92 fields_desc = [NDRIntField("status", 0)] 

93 

94 

95class RPC_IF_ID(NDRPacket): 

96 ALIGNMENT = (4, 4) 

97 fields_desc = [ 

98 NDRPacketField("Uuid", UUID(), UUID), 

99 NDRShortField("VersMajor", 0), 

100 NDRShortField("VersMinor", 0), 

101 ] 

102 

103 

104class ept_lookup_Request(NDRPacket): 

105 fields_desc = [ 

106 NDRIntField("inquiry_type", 0), 

107 NDRFullPointerField(NDRPacketField("object", UUID(), UUID)), 

108 NDRFullPointerField(NDRPacketField("Ifid", RPC_IF_ID(), RPC_IF_ID)), 

109 NDRIntField("vers_option", 0), 

110 NDRPacketField("entry_handle", NDRContextHandle(), NDRContextHandle), 

111 NDRIntField("max_ents", 0), 

112 ] 

113 

114 

115class ept_lookup_Response(NDRPacket): 

116 fields_desc = [ 

117 NDRPacketField("entry_handle", NDRContextHandle(), NDRContextHandle), 

118 NDRIntField("num_ents", None, size_of="entries"), 

119 NDRConfVarPacketListField( 

120 "entries", 

121 [], 

122 ept_entry_t, 

123 size_is=lambda pkt: pkt.max_ents, 

124 length_is=lambda pkt: pkt.num_ents, 

125 ), 

126 NDRIntField("status", 0), 

127 ] 

128 

129 

130class ept_map_Request(NDRPacket): 

131 fields_desc = [ 

132 NDRFullPointerField(NDRPacketField("obj", UUID(), UUID)), 

133 NDRFullPointerField(NDRPacketField("map_tower", twr_p_t(), twr_p_t)), 

134 NDRPacketField("entry_handle", NDRContextHandle(), NDRContextHandle), 

135 NDRIntField("max_towers", 0), 

136 ] 

137 

138 

139class ept_map_Response(NDRPacket): 

140 fields_desc = [ 

141 NDRPacketField("entry_handle", NDRContextHandle(), NDRContextHandle), 

142 NDRIntField("num_towers", None, size_of="ITowers"), 

143 NDRConfVarPacketListField( 

144 "ITowers", 

145 [], 

146 twr_p_t, 

147 size_is=lambda pkt: pkt.max_towers, 

148 length_is=lambda pkt: pkt.num_towers, 

149 ptr_lvl=1, 

150 ), 

151 NDRIntField("status", 0), 

152 ] 

153 

154 

155class ept_lookup_handle_free_Request(NDRPacket): 

156 fields_desc = [NDRPacketField("entry_handle", NDRContextHandle(), NDRContextHandle)] 

157 

158 

159class ept_lookup_handle_free_Response(NDRPacket): 

160 fields_desc = [ 

161 NDRPacketField("entry_handle", NDRContextHandle(), NDRContextHandle), 

162 NDRIntField("status", 0), 

163 ] 

164 

165 

166class uuid_t(NDRPacket): 

167 ALIGNMENT = (4, 4) 

168 fields_desc = [ 

169 NDRIntField("time_low", 0), 

170 NDRShortField("time_mid", 0), 

171 NDRShortField("time_hi_and_version", 0), 

172 NDRByteField("clock_seq_hi_and_reserved", 0), 

173 NDRByteField("clock_seq_low", 0), 

174 StrFixedLenField("node", "", length=6), 

175 ] 

176 

177 

178class ept_inq_object_Request(NDRPacket): 

179 fields_desc = [] 

180 

181 

182class ept_inq_object_Response(NDRPacket): 

183 fields_desc = [ 

184 NDRPacketField("ept_object", uuid_t(), uuid_t), 

185 NDRIntField("status", 0), 

186 ] 

187 

188 

189class uuid_p_t(NDRPacket): 

190 ALIGNMENT = (4, 4) 

191 fields_desc = [ 

192 NDRIntField("time_low", 0), 

193 NDRShortField("time_mid", 0), 

194 NDRShortField("time_hi_and_version", 0), 

195 NDRByteField("clock_seq_hi_and_reserved", 0), 

196 NDRByteField("clock_seq_low", 0), 

197 StrFixedLenField("node", "", length=6), 

198 ] 

199 

200 

201class ept_mgmt_delete_Request(NDRPacket): 

202 fields_desc = [ 

203 NDRIntField("object_speced", 0), 

204 NDRPacketField("object", uuid_p_t(), uuid_p_t), 

205 NDRPacketField("tower", twr_p_t(), twr_p_t), 

206 ] 

207 

208 

209class ept_mgmt_delete_Response(NDRPacket): 

210 fields_desc = [NDRIntField("status", 0)] 

211 

212 

213EPT_OPNUMS = { 

214 0: DceRpcOp(ept_insert_Request, ept_insert_Response), 

215 1: DceRpcOp(ept_delete_Request, ept_delete_Response), 

216 2: DceRpcOp(ept_lookup_Request, ept_lookup_Response), 

217 3: DceRpcOp(ept_map_Request, ept_map_Response), 

218 4: DceRpcOp(ept_lookup_handle_free_Request, ept_lookup_handle_free_Response), 

219 5: DceRpcOp(ept_inq_object_Request, ept_inq_object_Response), 

220 6: DceRpcOp(ept_mgmt_delete_Request, ept_mgmt_delete_Response), 

221} 

222register_dcerpc_interface( 

223 name="ept", 

224 uuid=uuid.UUID("e1af8308-5d1f-11c9-91a4-08002b14a0fa"), 

225 version="3.0", 

226 opnums=EPT_OPNUMS, 

227)