Binary Policies

This is a capture of the network payload of a full delivery of policies from the Device Control server persisted in a file. For optimization of delta delivery, the server packages groups of objects in chunks and compress them using G-Zip. A signature of the whole list of chunks is added at the end of the payload. The policy file doesn't contain the initial 4 bytes containing the size of all chunks.

FILE

Offset

Length

Type

Name

Description

0

4

unsigned int

chunks size

size of all chunks (3 next lines, without signature)

4

8

unsigned int

chunk size

size of this chunk

8

var1

HEADER

header

header structure of an LES policy file (.dat)

8+var1

var2

buffer

payload

group of METADATA (serialized / gzipped)

total-256

256

buffer

signature

RSA signature with 2048 bits keys

HEADER

Offset

Length

Type

Name

Description

0

1

unsigned char

opcode

opReply = 200

1

1

unsigned char

reserved

must be set to zero

2

1

unsigned char

nQ

number of reQuest watermarks

3

1

unsigned char

nR

number of Response watermarks

4

4

unsigned int

flags

flgGzipped = 1

8

8

unsigned int 64

timestamp

FILETIME stored on an unsigned int 64

16

24*(nQ+nR)

WATERMARK

watermark

identify source and incremental number

WATERMARK

Offset

Length

Type

Name

Description

0

16

guid

srvid

policy source unique identifier

16

8

unsigned int 64

usn

incremented version number

METADATA

Offset

Length

Type

Name

Description

0

4

unsigned int

size

metadata blob size

4

16

guid

attr

identifies the class unique identifier

20

16

guid

oid

identifies the instance unique identifier

36

size - 32

buffer

n/a

depends on the class instance identifier

METADATA - Device

Offset

Length

Type

Name

Description

0

4

unsigned int

size

metadata blob size

4

16

guid

attr

{0xE24EB313, 0x0718, 0x4D27, 0xB2, 0x1A, 0xC8, 0xF5, 0x26, 0x6B, 0xEE, 0x99}

20

16

guid

oid

identifies the instance unique identifier

36

4

unsigned int

devid

Device identity, model and instance in (30000, 60000) range

40

4

unsigned int

classid

Device class identity (removable, cd, floppy, and so on)

44

4+2*len(name)

unsigned int + wchar_t[]

name

Display name

48+…

4

unsigned int

enable

0: disabled, 1: enabled, 2: unmanaged (?)

52+…

4

unsigned int

capabilities

Capability flags

56+…

4

unsigned int

parent

Device parent identity

METADATA - Device Identity

Offset

Length

Type

Name

Description

0

4

unsigned int

size

metadata blob size

4

16

guid

attr

{0x00F9524A, 0xA7FB, 0x414F, 0x89, 0xCF, 0xF9, 0x7F, 0x63, 0x52, 0x8B, 0x03}

20

16

guid

oid

identifies the instance unique identifier

36

4

unsigned int

enforcer

 

40

4

unsigned int

detection

 

44

16

guid

iface

 

60

16

guid

class

 

76

4

unsigned int

bus

 

80

4

unsigned int

checkdev

 

84

4

unsigned int

chars

 

88

4

unsigned int

exclchars

 

92

4

unsigned int

nttype

 

96

4

unsigned int

xnttype

 

100

4+2*len(driver)

unsigned int + wchar_t[]

driver

 

104+…

4+2*len(device)

unsigned int + wchar_t[]

device

 

108+…

4+2*len(hwid)

unsigned int + wchar_t[]

hwid

 

112+…

4

unsigned int

devid

References Device::devid

METADATA - Workstation Group

Offset

Length

Type

Name

Description

0

4

unsigned int

size

metadata blob size

4

16

guid

attr

{0x205D2690, 0x9544, 0x414E, 0xAF, 0xB4, 0x92, 0xE5, 0x7B, 0xC3, 0xFB, 0x8C}

20

16

guid

oid

identifies the instance unique identifier

36

4

unsigned int

grpid

Workstation group identifier

40

4+2*len(wksname)

unsigned int + wchar_t[]

wksname

Workstation name

METADATA - Device Permission (u2dev)

Offset

Length

Type

Name

Description

0

4

unsigned int

size

metadata blob size

4

16

guid

attr

{0xB7CF2629, 0xB175, 0x4B74, 0xBB, 0x47, 0x70, 0x98, 0xD3, 0x3B, 0xC0, 0xFD}

20

16

guid

oid

identifies the instance unique identifier

36

4

unsigned int

userid

User identifier

40

80

unsigned char[80]

sid

User SID

120

4

unsigned int

devid

References Device::devid

124

4

unsigned int

rights

Right flags

128

4

unsigned int

sectype

Type flags

132

16

guid

task

References Task::oid

148

4

unsigned int

groupid

References Workstation Group::grpid

152

4+2*len(wksname)

unsigned int + wchar_t[]

wksname

Workstation name

METADATA - Task

Offset

Length

Type

Name

Description

0

4

unsigned int

size

metadata blob size

4

16

guid

attr

{0xBC4F851C, 0x3877, 0x4300, 0xB1, 0x64, 0x64, 0x04, 0x14, 0xAE, 0xC7, 0x7B}

20

16

guid

oid

identifies the instance unique identifier

36

8

unsigned int 64

begindt

Beginning of the task

44

8

unsigned int 64

enddt

Expired date

52

8

unsigned int 64

begintm

Time (0h0m0c..23h59m59c) when rights applied in the day

60

8

unsigned int 64

endtm

Time (0h0m0c..23h59m59c) when rights removed in the day

68

4

unsigned int

weekday

Week day flags: Su: 1, Mn: 2, Tu: 4, We: 8, Th: 16, Fr: 32, Sa: 64

METADATA - Settings

Offset

Length

Type

Name

Description

0

4

unsigned int

size

metadata blob size

4

16

guid

attr

{0xBA6BA2AD, 0x91A4, 0x4AA1, 0xBD, 0xE1, 0x44, 0x5D, 0xBB, 0xB0, 0x5F, 0xD0}

20

16

guid

oid

identifies the instance unique identifier

36

4+2*len(section)

unsigned int + wchar_t[]

section

Section name

40+…

4+2*len(label)

unsigned int + wchar_t[]

label

Label

44+…

4+2*len(data)

unsigned int + wchar_t[]

data

Value

METADATA - Medium (cds)

Offset

Length

Type

Name

Description

0

4

unsigned int

size

metadata blob size

4

16

guid

attr

{0x64417E50, 0xDD02, 0x4D2A, 0x86, 0x9F, 0xEC, 0x9B, 0xA9, 0xDF, 0x68, 0x07}

20

16

guid

oid

identifies the instance unique identifier

36

4

unsigned int

protection

Type of medium: 300: Optical, 301: Encrypted

40

4+2*len(label)

unsigned int + wchar_t[]

label

Label

44+…

4+2*len(data)

unsigned int + wchar_t[]

description

Value

48+…

20

unsigned char[20]

hash

Hash, identifies the instance (either optical or encrypted)

68+…

4

unsigned int

ciphertype

Encryption method: 0: none, 1: aes256ctr, 2: aes256cfb

METADATA - Medium Permission (u2cd)

Offset

Length

Type

Name

Description

0

4

unsigned int

size

metadata blob size

4

16

guid

attr

{0x4D1A9AD7, 0x7339, 0x409A, 0x95, 0x97, 0x3D, 0xAF, 0xE1, 0x79, 0x58, 0xEA}

20

16

guid

oid

identifies the instance unique identifier

36

80

unsigned char[80]

user

User SID

116

16

guid

medium

References Medium::oid

132

4

unsigned int

rights

Access rights, 3: read & write

METADATA - Medium Keys

Offset

Length

Type

Name

Description

0

4

unsigned int

size

metadata blob size

4

16

guid

attr

{0xF8CA6D0E, 0x0637, 0x4432, 0xB0, 0x70, 0xD3, 0xE7, 0x4F, 0x39, 0xFE, 0x47}

20

16

guid

oid

identifies the instance unique identifier

36

20

unsigned char[20]

thumbprint

Digital certificate thumbprint

56

4

unsigned int

ciphertype

Encryption method: 0: none, 1: aes256ctr, 2: aes256cfb

60

16

guid

medium

References Medium::oid

76

4+size(encryptedkey)

unsigned char[]

encryptedkey

Encrypted Medium Key

METADATA - Workstation Option

Offset

Length

Type

Name

Description

0

4

unsigned int

size

metadata blob size

4

16

guid

attr

{0x08079004, 0x2348, 0x4D2B, 0x89, 0x6D, 0xBB, 0xAE, 0x44, 0x70, 0xA0, 0x3D}

20

16

guid

oid

identifies the instance unique identifier

36

4

unsigned int

optid

Option identifier

40

4+2*len(value)

unsigned int + wchar_t[]

value

Option value

44+…

4+2*len(wksname)

unsigned int + wchar_t[]

wksname

Workstation name

METADATA - Global Workstation Option

Offset

Length

Type

Name

Description

0

4

unsigned int

size

metadata blob size

4

16

guid

attr

{0xAE7C130B, 0x125B, 0x4421, 0x9C, 0xD5, 0x1E, 0x73, 0x09, 0x40, 0x53, 0xCA}

20

16

guid

oid

identifies the instance unique identifier

36

4

unsigned int

optid

Option identifier

40

4+2*len(value)

unsigned int + wchar_t[]

value

Option value

METADATA - User Option

Offset

Length

Type

Name

Description

0

4

unsigned int

size

metadata blob size

4

16

guid

attr

{0x637E35AC, 0x0C78, 0x4DBD, 0xBE, 0x97, 0x91, 0x35, 0x22, 0x1A, 0x0E, 0xE2}

20

16

guid

oid

identifies the instance unique identifier

36

4

unsigned int

optid

Option identifier

40

4+2*len(value)

unsigned int + wchar_t[]

value

Option value

44+…

80

unsigned char[80]

sid

User sid

124+…

4

unsigned int

isgroup

Type: 0: user, 1: user group

METADATA - Global User Option

Offset

Length

Type

Name

Description

0

4

unsigned int

size

metadata blob size

4

16

guid

attr

{0x13E6A008, 0xDCA7, 0x4240, 0xA4, 0x09, 0x66, 0x54, 0x3C, 0x75, 0x86, 0x31}

20

16

guid

oid

identifies the instance unique identifier

36

4

unsigned int

optid

Option identifier

40

4+2*len(value)

unsigned int + wchar_t[]

value

Option value

METADATA - File

Offset

Length

Type

Name

Description

0

4

unsigned int

size

metadata blob size

4

16

guid

att

{0x2B224442, 0x6CBD, 0x416C, 0xA0, 0xBB, 0x0A, 0xBD, 0x46, 0xC8, 0x9E, 0x55}

20

16

guid

oid

identifies the instance unique identifier

36

4

unsigned int

isgroup

Type: 0: exe, 1: group, 2: script

40

20

unsigned char[20]

hash

SHA1 of the file or file group

METADATA - File Group

Offset

Length

Type

Name

Description

0

4

unsigned int

size

metadata blob size

4

16

guid

attr

{0x29716BAF, 0xCBC5, 0x4892, 0x80, 0x9F, 0x14, 0xA4, 0x07, 0x55, 0x0E, 0x7C}

20

16

guid

oid

identifies the instance unique identifier

36

16

guid

parent

References File Group::oid

52

16

guid

member

References File::oid

METADATA - File GroupPermission

Offset

Length

Type

Name

Description

0

4

unsigned int

size

metadata blob size

4

16

guid

attr

{0x29716BAF, 0xCBC5, 0x4892, 0x80, 0x9F, 0x14, 0xA4, 0x07, 0x55, 0x0E, 0x7C}

20

16

guid

oid

identifies the instance unique identifier

36

80

unsigned char[80]

sid

User sid

116

16

guid

filegrp

References File Group::oid

METADATA - Rule Object

Offset

Length

Type

Name

Description

0

4

unsigned int

size

metadata blob size

4

16

guid

attr

{0x4bbc7e1d, 0x284e, 0x4043, { 0x9d, 0x28, 0xfc, 0x7a, 0xbf, 0x63, 0x1f, 0x7d}

20

16

guid

oid

identifies the instance unique identifier

36

 

 

 

METADATA - Rule Target List

Offset

Length

Type

Name

Description

0

4

unsigned int

size

metadata blob size

4

16

guid

attr

{0x691907b, 0x3332, 0x4948, { 0x85, 0x3f, 0x50, 0x13, 0xe0, 0x2e, 0x54, 0x81}

20

16

guid

oid

identifies the instance unique identifier

36

 

 

 

METADATA - Rule Element

Offset

Length

Type

Name

Description

0

4

unsigned int

size

metadata blob size

4

16

guid

attr

{0x56116250, 0x489, 0x4680, { 0x80, 0xcb, 0x3a, 0xeb, 0x6e, 0xdd, 0x5b, 0x71}

20

16

guid

oid

identifies the instance unique identifier

36

 

 

 

METADATA - Rules

Offset

Length

Type

Name

Description

0

4

unsigned int

size

metadata blob size

4

16

guid

attr

{0x2f625790, 0x4493, 0x487a, { 0x9e, 0x4, 0xe1, 0xf4, 0x4, 0x84, 0xbf, 0x2d}

20

16

guid

oid

identifies the instance unique identifier

36