@@ -1550,21 +1550,21 @@ class SECURITY_DESCRIPTOR(_NTLMPayloadPacket):
15501550 "SELF_RELATIVE" ,
15511551 ],
15521552 ),
1553- LEIntField ("OwnerSidOffset" , 0 ),
1554- LEIntField ("GroupSidOffset" , 0 ),
1555- LEIntField ("SACLOffset" , 0 ),
1556- LEIntField ("DACLOffset" , 0 ),
1553+ LEIntField ("OwnerSidOffset" , None ),
1554+ LEIntField ("GroupSidOffset" , None ),
1555+ LEIntField ("SACLOffset" , None ),
1556+ LEIntField ("DACLOffset" , None ),
15571557 _NTLMPayloadField (
15581558 "Data" ,
15591559 OFFSET ,
15601560 [
15611561 ConditionalField (
15621562 PacketField ("OwnerSid" , WINNT_SID (), WINNT_SID ),
1563- lambda pkt : pkt .OwnerSidOffset ,
1563+ lambda pkt : pkt .OwnerSidOffset != 0 ,
15641564 ),
15651565 ConditionalField (
15661566 PacketField ("GroupSid" , WINNT_SID (), WINNT_SID ),
1567- lambda pkt : pkt .GroupSidOffset ,
1567+ lambda pkt : pkt .GroupSidOffset != 0 ,
15681568 ),
15691569 ConditionalField (
15701570 PacketField ("SACL" , WINNT_ACL (), WINNT_ACL ),
@@ -1579,6 +1579,26 @@ class SECURITY_DESCRIPTOR(_NTLMPayloadPacket):
15791579 ),
15801580 ]
15811581
1582+ def post_build (self , pkt , pay ):
1583+ # type: (bytes, bytes) -> bytes
1584+ return (
1585+ _NTLM_post_build (
1586+ self ,
1587+ pkt ,
1588+ self .OFFSET ,
1589+ {
1590+ "OwnerSid" : 4 ,
1591+ "GroupSid" : 8 ,
1592+ "SACL" : 12 ,
1593+ "DACL" : 16 ,
1594+ },
1595+ config = [
1596+ ("Offset" , _NTLM_ENUM .OFFSET ),
1597+ ]
1598+ )
1599+ + pay
1600+ )
1601+
15821602
15831603# [MS-FSCC] 2.4.2 FileAllInformation
15841604
0 commit comments