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

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

28 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# ept.idl compiled on 06/07/2025 

7# This file is a stripped version ! Use scapy-rpc for the full. 

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 NDRConfStrLenField, 

21 NDRConfVarPacketListField, 

22 NDRContextHandle, 

23 NDRFullEmbPointerField, 

24 NDRFullPointerField, 

25 NDRIntField, 

26 NDRPacketField, 

27 NDRShortField, 

28 NDRVarStrLenField, 

29 register_dcerpc_interface, 

30) 

31 

32 

33class UUID(NDRPacket): 

34 ALIGNMENT = (4, 4) 

35 fields_desc = [ 

36 NDRIntField("Data1", 0), 

37 NDRShortField("Data2", 0), 

38 NDRShortField("Data3", 0), 

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

40 ] 

41 

42 

43class RPC_IF_ID(NDRPacket): 

44 ALIGNMENT = (4, 4) 

45 fields_desc = [ 

46 NDRPacketField("Uuid", UUID(), UUID), 

47 NDRShortField("VersMajor", 0), 

48 NDRShortField("VersMinor", 0), 

49 ] 

50 

51 

52class twr_p_t(NDRPacket): 

53 ALIGNMENT = (4, 8) 

54 DEPORTED_CONFORMANTS = ["tower_octet_string"] 

55 fields_desc = [ 

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

57 NDRConfStrLenField( 

58 "tower_octet_string", 

59 "", 

60 size_is=lambda pkt: pkt.tower_length, 

61 conformant_in_struct=True, 

62 ), 

63 ] 

64 

65 

66class ept_entry_t(NDRPacket): 

67 ALIGNMENT = (4, 8) 

68 fields_desc = [ 

69 NDRPacketField("object", UUID(), UUID), 

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

71 NDRVarStrLenField("annotation", ""), 

72 ] 

73 

74 

75class ept_lookup_Request(NDRPacket): 

76 fields_desc = [ 

77 NDRIntField("inquiry_type", 0), 

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

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

80 NDRIntField("vers_option", 0), 

81 NDRPacketField("entry_handle", NDRContextHandle(), NDRContextHandle), 

82 NDRIntField("max_ents", 0), 

83 ] 

84 

85 

86class ept_lookup_Response(NDRPacket): 

87 fields_desc = [ 

88 NDRPacketField("entry_handle", NDRContextHandle(), NDRContextHandle), 

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

90 NDRConfVarPacketListField( 

91 "entries", 

92 [], 

93 ept_entry_t, 

94 size_is=lambda pkt: pkt.max_ents, 

95 length_is=lambda pkt: pkt.num_ents, 

96 ), 

97 NDRIntField("status", 0), 

98 ] 

99 

100 

101class ept_map_Request(NDRPacket): 

102 fields_desc = [ 

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

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

105 NDRPacketField("entry_handle", NDRContextHandle(), NDRContextHandle), 

106 NDRIntField("max_towers", 0), 

107 ] 

108 

109 

110class ept_map_Response(NDRPacket): 

111 fields_desc = [ 

112 NDRPacketField("entry_handle", NDRContextHandle(), NDRContextHandle), 

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

114 NDRConfVarPacketListField( 

115 "ITowers", 

116 [], 

117 twr_p_t, 

118 size_is=lambda pkt: pkt.max_towers, 

119 length_is=lambda pkt: pkt.num_towers, 

120 ptr_pack=True, 

121 ), 

122 NDRIntField("status", 0), 

123 ] 

124 

125 

126EPT_OPNUMS = { 

127 2: DceRpcOp(ept_lookup_Request, ept_lookup_Response), 

128 3: DceRpcOp(ept_map_Request, ept_map_Response), 

129} 

130register_dcerpc_interface( 

131 name="ept", 

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

133 version="3.0", 

134 opnums=EPT_OPNUMS, 

135)