Rating:

# Industrial Network 2 writeup
# Our problem in short:

Master req. = 09 0F 00 00 00 05 01 1F 2F 38
- Change slave id to 04
- Set first output to high (1) and remaining to low (0)
- The answer is not in the regular flag format (Uppercase hex with space delimeter between bytes)

# Let's begin!

So first of all I used https://www.modbustools.com/modbus.html
as a reference for protocol format

Format tells us important info about frame:

09 - **Slave id**

0F - **Write multiple coils function**

00 00 - **Offset of first slave**

00 05 - **How many coils we wanna write**

01 - **Size of our data**

1F - **0 0 0 1 1 1 1 1 in binary which means all coils we wanted to write are set to high**

2F 38 - **CRC checksum**

Problem tells us to change slave id to 04 so:

**09** -> **04**

And first output to high (1) and remaining to low (0) so:

**1F [0 0 0 1 1 1 1 1]** -> **01 [0 0 0 0 0 0 0 1]**

And recalculated crc like this:

**2F 38** -> **6E A9**

So finally we have this request:

04 - **Slave id**

0F - **Write multiple coils function**

00 00 - **Offset of first slave**

00 05 - **How many coils we wanna write**

01 - **Size of our data**

01 - **0 0 0 0 0 0 0 1 setting first output to high and rest to low**

6E A9 - **crc**

Submit `04 0F 00 00 00 05 01 01 6E A9` and get your points now!