BINL protocol explained (original) (raw)
BINL Protocol Specifications
Client packet starts with: 0x81 Server packet starts with: 0x82
Note: int32, short16 and unicode strings are Little Endian
NCQ - Network Card Query (issued by the client)
00000000 81 4e 43 51 30 00 00 00 02 00 00 00 00 00 00 00 |.NCQ0...........| 00000010 00 0c 29 15 c4 17 00 00 00 00 00 00 00 00 00 00 |..).............| 00000020 02 00 00 00 22 10 00 20 02 00 00 10 88 00 00 00 |....".. ........| 00000030 22 10 00 20 16 00 5c 5c 41 74 74 69 6c 61 5c 52 |".. ..\Attila\R| 00000040 65 6d 49 6e 73 74 5c 77 69 6e 70 65 00 00 |emInst\winpe.. |
NCQ Structure
Name | Offset | Bytes | CType | Sample | Description |
---|---|---|---|---|---|
tag | 0x00 | 4 | char[4] | \x81NCQ | |
len | 0x04 | 4 | int32 | 0x30 | Size of the packet excluding tag and len |
u1 | 0x08 | 4 | int32 | 0x2 | |
u2 | 0x0c | 4 | int32 | 0x0 | |
mac | 0x10 | 6 | byte[6] | 00:0c:29:15:c4:17 | Mac Address |
pad | 0x16 | 2 | byte[2] | 00:00 | Padding |
u3 | 0x18 | 4 | int32 | 0x0 | |
u4 | 0x1c | 4 | int32 | 0x0 | |
u5 | 0x20 | 4 | int32 | 0x2 | |
vid | 0x24 | 2 | short16 | 0x1022 | Vendor id 0x1022 is AMD |
pid | 0x26 | 2 | short16 | 0x2000 | Product id 0x2000 is AMD pcnet vmware card |
rev_u1 | 0x28 | 1 | byte | 0x2 | |
rev_u2 | 0x29 | 1 | byte | 0x0 | |
rev_u3 | 0x2a | 1 | byte | 0x0 | |
rev | 0x2b | 1 | byte | 0x10 | |
rev2 | 0x2c | 4 | int32 | 0x88 | |
subsys | 0x30 | 4 | int32 | 0x20001022 | Device Subsystem |
lenp | 0x34 | 2 | short16 | 0x16 | Installation path len including trailing \x00 |
path | 0x36 | (23) | char | \\Attila\RemInst\winpe | Installation path |
eop | 0x4d | 1 | byte | 0x0 | End of packet - always 0x0 |
NCR - Network Card Reply (reply from server)
00000000 82 4e 43 52 c4 00 00 00 00 00 00 00 02 00 00 00 |.NCR............| 00000010 24 00 00 00 50 00 00 00 6a 00 00 00 56 00 00 00 |$...P...j...V...| 00000020 76 00 00 00 50 00 43 00 49 00 5c 00 56 00 45 00 |v...P.C.I..V.E.| 00000030 4e 00 5f 00 31 00 30 00 32 00 32 00 26 00 44 00 |N..1.0.2.2.&.D.| 00000040 45 00 56 00 5f 00 32 00 30 00 30 00 30 00 00 00 |E.V..2.0.0.0...| 00000050 70 00 63 00 6e 00 74 00 70 00 63 00 69 00 35 00 |p.c.n.t.p.c.i.5.| 00000060 2e 00 73 00 79 00 73 00 00 00 50 00 43 00 6e 00 |..s.y.s...P.C.n.| 00000070 65 00 74 00 00 00 44 65 73 63 72 69 70 74 69 6f |e.t...Descriptio| 00000080 6e 00 32 00 53 63 68 65 64 61 20 45 74 68 65 72 |n.2.Scheda Ether| 00000090 6e 65 74 20 50 43 49 20 41 4d 44 20 50 43 4e 45 |net PCI AMD PCNE| 000000a0 54 20 46 61 6d 69 6c 79 00 43 68 61 72 61 63 74 |T Family.Charact| 000000b0 65 72 69 73 74 69 63 73 00 31 00 31 33 32 00 42 |eristics.1.132.B| 000000c0 75 73 54 79 70 65 00 31 00 35 00 00 00 00 |usType.1.5.... |
NCR Structure
Name | Offset | Bytes | CType | Sample | Description |
---|---|---|---|---|---|
tag | 0x00 | 4 | char[4] | \x82NCR | |
len | 0x04 | 4 | int32 | 0xc4 | Size of the packet excluding tag and len |
res | 0x08 | 4 | int32 | 0x0 | Result code 0x0: Ok - 0xc000000d: Not Found |
type | 0x0c | 4 | int32 | 0x2 | Type |
boff | 0x10 | 4 | int32 | 0x24 | Base offset |
doff | 0x14 | 4 | int32 | 0x50 | Driver name offset |
soff | 0x18 | 4 | int32 | 0x6a | Service name offset |
plen | 0x1c | 4 | int32 | 0x56 | Parameters list length in chars |
poff | 0x20 | 4 | int32 | 0x76 | Parameters list offset |
dev | 0x24 | (1) | |||
sep1 | 0x25 | 1 | byte | 0x0 | Separator |
drv | 0x26 | (25) | char | pcntpci5.sys | Unicode Driver name |
sep2 | 0x3f | 1 | byte | 0x0 | Separator |
srv | 0x40 | (11) | char | PCnet | Unicode Service Name |
sep3 | 0x4b | 1 | byte | 0x0 | Separator |
params | 0x4c | (2) | char | - | Parameters: variable structure |
RQU - File request
00000000 81 52 51 55 22 00 00 00 02 00 00 00 01 00 01 00 |.RQU"...........| 00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 00000020 00 00 00 00 4c 4f 47 49 4e 0a |....LOGIN. |
RQU Structure
Name | Offset | Bytes | CType | Sample | Description |
---|---|---|---|---|---|
tag | 0x00 | 4 | char[4] | \x81RQU | |
len | 0x04 | 4 | int32 | 0x22 | Size of the packet excluding tag and len |
u1 | 0x08 | 28 | char[28] | Binary Data | Unknown binary data sent back in reply |
file | 0x24 | (8) | char | LOGIN\n | Requested filename without .osc ext |
RSU - File reply
00000000 82 52 53 55 a5 03 00 00 02 00 00 00 01 00 01 00 |.RSU............| 00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 00000020 00 00 00 00 3c 4f 53 43 4d 4c 3e 0a 3c 54 49 54 |.....<TIT| 00000030 4c 45 3e 20 20 43 6c 69 65 6e 74 20 49 6e 73 74 |LE> Client Inst| 00000040 61 6c 6c 61 74 69 6f 6e 20 57 69 7a 61 72 64 20 |allation Wizard | 00000050 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | ... 00000380 42 4f 44 59 3e 0a 3c 2f 4f 53 43 4d 4c 3e 0a 00 |BODY>...|
RSU Structure
Name | Offset | Bytes | CType | Sample | Description |
---|---|---|---|---|---|
tag | 0x00 | 4 | char[4] | \x82RSU | |
len | 0x04 | 4 | int32 | 0x3a5 | Size of the packet excluding tag and len |
u1 | 0x08 | 28 | char[28] | Binary Data | Unknown binary data sent back in reply |
data | 0x24 | (6) | char | ..... | File data |
eop | 0x2a | 1 | byte | 0x0 | End of packet - always 0x0 |