SpacesSummit2018
MattijsMeiboom
Engineer
Customer
Returns
HOW WE CREATED THE MOST RIDICULOUSLY OVER-ENGINEERED PIECE OFHOW WE CREATED THE MOST RIDICULOUSLY OVER-ENGINEERED PIECE OF
SOFTWARE FOR DRAFTING A COLD BEERSOFTWARE FOR DRAFTING A COLD BEER
 
What did we build?What did we build?
Interfacing with the hardwareInterfacing with the hardware
Reverse engineering the protocolReverse engineering the protocol
30 33 35 35 33 32 32 0D 57 36
6C 07 6C 07 6C 07 6C 07 6C 07
6C 07 07 00 00 00 0B 00 0C 00
00 00 00 00 00 00 00 00 00 00
00 00 0D 0B 41 54 2B 55 43 41
53 54 42 3A 32 32 2C 30 30 30
44 36 46 30 30 30 30 33 35 35
33 32 32 0D 57 37 0D 0B 0A 0A
14 14 0A 0A CB 64 C8 CA 0A 0A
00 00 14 00 00 00 00 00 00 00
30 00 00 28 0A 14 04 2C 0D 0B
41 54 2B 55 43 41 53 54 42 3A
Reverse engineering the protocolReverse engineering the protocol
30 33 35 35 33 32 32 0D 57 36
6C 07 6C 07 6C 07 6C 07 6C 07
6C 07 07 00 00 00 0B 00 0C 00
00 00 00 00 00 00 00 00 00 00
00 00 0D 0B 41 54 2B 55 43 41
53 54 42 3A 32 32 2C 30 30 30
44 36 46 30 30 30 30 33 35 35
33 32 32 0D 57 37 0D 0B 0A 0A
14 14 0A 0A CB 64 C8 CA 0A 0A
00 00 14 00 00 00 00 00 00 00
30 00 00 28 0A 14 04 2C 0D 0B
41 54 2B 55 43 41 53 54 42 3A
0355322
W6llllll
���� �������������
AT+UCASTB:22,000D6F0000355322
W7
ËdÈÊ
���������0��(
,AT+UCASTB:
Documentation to the rescueDocumentation to the rescue
Back to our trafficBack to our traffic
30 33 35 35 33 32 32 0D 57 36
6C 07 6C 07 6C 07 6C 07 6C 07
6C 07 07 00 00 00 0B 00 0C 00
00 00 00 00 00 00 00 00 00 00
00 00 0D 0B 41 54 2B 55 43 41
53 54 42 3A 32 32 2C 30 30 30
44 36 46 30 30 30 30 33 35 35
33 32 32 0D 57 37 0D 0B 0A 0A
14 14 0A 0A CB 64 C8 CA 0A 0A
00 00 14 00 00 00 00 00 00 00
30 00 00 28 0A 14 04 2C 0D 0B
41 54 2B 55 43 41 53 54 42 3A
0355322
W6llllll
���� �������������
AT+UCASTB:22,000D6F0000355322
W7
ËdÈÊ
���������0��(
,AT+UCASTB:
Back to our trafficBack to our traffic
30 33 35 35 33 32 32 0D 57 36
6C 07 6C 07 6C 07 6C 07 6C 07
6C 07 07 00 00 00 0B 00 0C 00
00 00 00 00 00 00 00 00 00 00
00 00 0D 0B 41 54 2B 55 43 41
53 54 42 3A 32 32 2C 30 30 30
44 36 46 30 30 30 30 33 35 35
33 32 32 0D 57 37 0D 0B 0A 0A
14 14 0A 0A CB 64 C8 CA 0A 0A
00 00 14 00 00 00 00 00 00 00
30 00 00 28 0A 14 04 2C 0D 0B
41 54 2B 55 43 41 53 54 42 3A
30 33 35 35 33 32 32 0D 57 36
6C 07 6C 07 6C 07 6C 07 6C 07
6C 07 07 00 00 00 0B 00 0C 00
00 00 00 00 00 00 00 00 00 00
00 00 0D 0B 41 54 2B 55 43 41
53 54 42 3A 32 32 2C 30 30 30
44 36 46 30 30 30 30 33 35 35
33 32 32 0D 57 37 0D 0B 0A 0A
14 14 0A 0A CB 64 C8 CA 0A 0A
00 00 14 00 00 00 00 00 00 00
30 00 00 28 0A 14 04 2C 0D 0B
41 54 2B 55 43 41 53 54 42 3A
Back to our trafficBack to our traffic
30 33 35 35 33 32 32 0D 57 36
6C 07 6C 07 6C 07 6C 07 6C 07
6C 07 07 00 00 00 0B 00 0C 00
00 00 00 00 00 00 00 00 00 00
00 00 0D 0B 41 54 2B 55 43 41
53 54 42 3A 32 32 2C 30 30 30
44 36 46 30 30 30 30 33 35 35
33 32 32 0D 57 37 0D 0B 0A 0A
14 14 0A 0A CB 64 C8 CA 0A 0A
00 00 14 00 00 00 00 00 00 00
30 00 00 28 0A 14 04 2C 0D 0B
41 54 2B 55 43 41 53 54 42 3A
30 33 35 35 33 32 32 0D 57 36
6C 07 6C 07 6C 07 6C 07 6C 07
6C 07 07 00 00 00 0B 00 0C 00
00 00 00 00 00 00 00 00 00 00
00 00 CR VT A T + U C A
S T B : 2 2 , 30 30 30
44 36 46 30 30 30 30 33 35 35
33 32 32 0D 57 37 0D 0B 0A 0A
14 14 0A 0A CB 64 C8 CA 0A 0A
00 00 14 00 00 00 00 00 00 00
30 00 00 28 0A 14 04 2C 0D 0B
41 54 2B 55 43 41 53 54 42 3A
Back to our trafficBack to our traffic
30 33 35 35 33 32 32 0D 57 36
6C 07 6C 07 6C 07 6C 07 6C 07
6C 07 07 00 00 00 0B 00 0C 00
00 00 00 00 00 00 00 00 00 00
00 00 0D 0B 41 54 2B 55 43 41
53 54 42 3A 32 32 2C 30 30 30
44 36 46 30 30 30 30 33 35 35
33 32 32 0D 57 37 0D 0B 0A 0A
14 14 0A 0A CB 64 C8 CA 0A 0A
00 00 14 00 00 00 00 00 00 00
30 00 00 28 0A 14 04 2C 0D 0B
41 54 2B 55 43 41 53 54 42 3A
30 33 35 35 33 32 32 0D 57 36
6C 07 6C 07 6C 07 6C 07 6C 07
6C 07 07 00 00 00 0B 00 0C 00
00 00 00 00 00 00 00 00 00 00
00 00 CR VT A T + U C A
S T B : 2 2 , 30 30 30
44 36 46 30 30 30 30 33 35 35
33 32 32 0D 57 37 0D 0B 0A 0A
14 14 0A 0A CB 64 C8 CA 0A 0A
00 00 14 00 00 00 00 00 00 00
30 00 00 28 0A 14 04 2C CR VT
A T + U C A S T B :
Back to our trafficBack to our traffic
30 33 35 35 33 32 32 0D 57 36
6C 07 6C 07 6C 07 6C 07 6C 07
6C 07 07 00 00 00 0B 00 0C 00
00 00 00 00 00 00 00 00 00 00
00 00 0D 0B 41 54 2B 55 43 41
53 54 42 3A 32 32 2C 30 30 30
44 36 46 30 30 30 30 33 35 35
33 32 32 0D 57 37 0D 0B 0A 0A
14 14 0A 0A CB 64 C8 CA 0A 0A
00 00 14 00 00 00 00 00 00 00
30 00 00 28 0A 14 04 2C 0D 0B
41 54 2B 55 43 41 53 54 42 3A
30 33 35 35 33 32 32 0D 57 36
6C 07 6C 07 6C 07 6C 07 6C 07
6C 07 07 00 00 00 0B 00 0C 00
00 00 00 00 00 00 00 00 00 00
00 00 CR VT A T + U C A
S T B : 2 2 , 30 30 30
44 36 46 30 30 30 30 33 35 35
33 32 32 0D 57 37 0D 0B 0A 0A
14 14 0A 0A CB 64 C8 CA 0A 0A
00 00 14 00 00 00 00 00 00 00
30 00 00 28 0A 14 04 2C CR VT
A T + U C A S T B :
Breaking it downBreaking it down
41 54 2B 55 43 41 53 54 42 3A 3
30 30 30 44 36 46 30 30 30 30 3
0D
57
37
0D 0B 0A 0A 14 14 0A 0A CB 64 C
0D
 
 
 
 
 
<AT+COMMAND>:<SIZE>,
<Address>
<Separator>
<R/W>
<Block>
<Data>
<CR>
 
 
 
 
 
 
What did we build?What did we build?
Zigbee / AT
Serial communication
Delphi
Android
GCM
jQuery
CSS Transforms
Resilience (“What do you
mean, no beer?”)
Usability
APIs
HTTPS/SSL
RDP
Things we learned aboutThings we learned about
SpacesSummit2018 ?

Software for drafting a cold beer

  • 1.
    SpacesSummit2018 MattijsMeiboom Engineer Customer Returns HOW WE CREATEDTHE MOST RIDICULOUSLY OVER-ENGINEERED PIECE OFHOW WE CREATED THE MOST RIDICULOUSLY OVER-ENGINEERED PIECE OF SOFTWARE FOR DRAFTING A COLD BEERSOFTWARE FOR DRAFTING A COLD BEER
  • 5.
      What did webuild?What did we build?
  • 6.
    Interfacing with thehardwareInterfacing with the hardware
  • 7.
    Reverse engineering theprotocolReverse engineering the protocol 30 33 35 35 33 32 32 0D 57 36 6C 07 6C 07 6C 07 6C 07 6C 07 6C 07 07 00 00 00 0B 00 0C 00 00 00 00 00 00 00 00 00 00 00 00 00 0D 0B 41 54 2B 55 43 41 53 54 42 3A 32 32 2C 30 30 30 44 36 46 30 30 30 30 33 35 35 33 32 32 0D 57 37 0D 0B 0A 0A 14 14 0A 0A CB 64 C8 CA 0A 0A 00 00 14 00 00 00 00 00 00 00 30 00 00 28 0A 14 04 2C 0D 0B 41 54 2B 55 43 41 53 54 42 3A
  • 8.
    Reverse engineering theprotocolReverse engineering the protocol 30 33 35 35 33 32 32 0D 57 36 6C 07 6C 07 6C 07 6C 07 6C 07 6C 07 07 00 00 00 0B 00 0C 00 00 00 00 00 00 00 00 00 00 00 00 00 0D 0B 41 54 2B 55 43 41 53 54 42 3A 32 32 2C 30 30 30 44 36 46 30 30 30 30 33 35 35 33 32 32 0D 57 37 0D 0B 0A 0A 14 14 0A 0A CB 64 C8 CA 0A 0A 00 00 14 00 00 00 00 00 00 00 30 00 00 28 0A 14 04 2C 0D 0B 41 54 2B 55 43 41 53 54 42 3A 0355322 W6llllll ���� ������������� AT+UCASTB:22,000D6F0000355322 W7 ËdÈÊ ���������0��( ,AT+UCASTB:
  • 9.
    Documentation to therescueDocumentation to the rescue
  • 10.
    Back to ourtrafficBack to our traffic 30 33 35 35 33 32 32 0D 57 36 6C 07 6C 07 6C 07 6C 07 6C 07 6C 07 07 00 00 00 0B 00 0C 00 00 00 00 00 00 00 00 00 00 00 00 00 0D 0B 41 54 2B 55 43 41 53 54 42 3A 32 32 2C 30 30 30 44 36 46 30 30 30 30 33 35 35 33 32 32 0D 57 37 0D 0B 0A 0A 14 14 0A 0A CB 64 C8 CA 0A 0A 00 00 14 00 00 00 00 00 00 00 30 00 00 28 0A 14 04 2C 0D 0B 41 54 2B 55 43 41 53 54 42 3A 0355322 W6llllll ���� ������������� AT+UCASTB:22,000D6F0000355322 W7 ËdÈÊ ���������0��( ,AT+UCASTB:
  • 11.
    Back to ourtrafficBack to our traffic 30 33 35 35 33 32 32 0D 57 36 6C 07 6C 07 6C 07 6C 07 6C 07 6C 07 07 00 00 00 0B 00 0C 00 00 00 00 00 00 00 00 00 00 00 00 00 0D 0B 41 54 2B 55 43 41 53 54 42 3A 32 32 2C 30 30 30 44 36 46 30 30 30 30 33 35 35 33 32 32 0D 57 37 0D 0B 0A 0A 14 14 0A 0A CB 64 C8 CA 0A 0A 00 00 14 00 00 00 00 00 00 00 30 00 00 28 0A 14 04 2C 0D 0B 41 54 2B 55 43 41 53 54 42 3A 30 33 35 35 33 32 32 0D 57 36 6C 07 6C 07 6C 07 6C 07 6C 07 6C 07 07 00 00 00 0B 00 0C 00 00 00 00 00 00 00 00 00 00 00 00 00 0D 0B 41 54 2B 55 43 41 53 54 42 3A 32 32 2C 30 30 30 44 36 46 30 30 30 30 33 35 35 33 32 32 0D 57 37 0D 0B 0A 0A 14 14 0A 0A CB 64 C8 CA 0A 0A 00 00 14 00 00 00 00 00 00 00 30 00 00 28 0A 14 04 2C 0D 0B 41 54 2B 55 43 41 53 54 42 3A
  • 12.
    Back to ourtrafficBack to our traffic 30 33 35 35 33 32 32 0D 57 36 6C 07 6C 07 6C 07 6C 07 6C 07 6C 07 07 00 00 00 0B 00 0C 00 00 00 00 00 00 00 00 00 00 00 00 00 0D 0B 41 54 2B 55 43 41 53 54 42 3A 32 32 2C 30 30 30 44 36 46 30 30 30 30 33 35 35 33 32 32 0D 57 37 0D 0B 0A 0A 14 14 0A 0A CB 64 C8 CA 0A 0A 00 00 14 00 00 00 00 00 00 00 30 00 00 28 0A 14 04 2C 0D 0B 41 54 2B 55 43 41 53 54 42 3A 30 33 35 35 33 32 32 0D 57 36 6C 07 6C 07 6C 07 6C 07 6C 07 6C 07 07 00 00 00 0B 00 0C 00 00 00 00 00 00 00 00 00 00 00 00 00 CR VT A T + U C A S T B : 2 2 , 30 30 30 44 36 46 30 30 30 30 33 35 35 33 32 32 0D 57 37 0D 0B 0A 0A 14 14 0A 0A CB 64 C8 CA 0A 0A 00 00 14 00 00 00 00 00 00 00 30 00 00 28 0A 14 04 2C 0D 0B 41 54 2B 55 43 41 53 54 42 3A
  • 13.
    Back to ourtrafficBack to our traffic 30 33 35 35 33 32 32 0D 57 36 6C 07 6C 07 6C 07 6C 07 6C 07 6C 07 07 00 00 00 0B 00 0C 00 00 00 00 00 00 00 00 00 00 00 00 00 0D 0B 41 54 2B 55 43 41 53 54 42 3A 32 32 2C 30 30 30 44 36 46 30 30 30 30 33 35 35 33 32 32 0D 57 37 0D 0B 0A 0A 14 14 0A 0A CB 64 C8 CA 0A 0A 00 00 14 00 00 00 00 00 00 00 30 00 00 28 0A 14 04 2C 0D 0B 41 54 2B 55 43 41 53 54 42 3A 30 33 35 35 33 32 32 0D 57 36 6C 07 6C 07 6C 07 6C 07 6C 07 6C 07 07 00 00 00 0B 00 0C 00 00 00 00 00 00 00 00 00 00 00 00 00 CR VT A T + U C A S T B : 2 2 , 30 30 30 44 36 46 30 30 30 30 33 35 35 33 32 32 0D 57 37 0D 0B 0A 0A 14 14 0A 0A CB 64 C8 CA 0A 0A 00 00 14 00 00 00 00 00 00 00 30 00 00 28 0A 14 04 2C CR VT A T + U C A S T B :
  • 14.
    Back to ourtrafficBack to our traffic 30 33 35 35 33 32 32 0D 57 36 6C 07 6C 07 6C 07 6C 07 6C 07 6C 07 07 00 00 00 0B 00 0C 00 00 00 00 00 00 00 00 00 00 00 00 00 0D 0B 41 54 2B 55 43 41 53 54 42 3A 32 32 2C 30 30 30 44 36 46 30 30 30 30 33 35 35 33 32 32 0D 57 37 0D 0B 0A 0A 14 14 0A 0A CB 64 C8 CA 0A 0A 00 00 14 00 00 00 00 00 00 00 30 00 00 28 0A 14 04 2C 0D 0B 41 54 2B 55 43 41 53 54 42 3A 30 33 35 35 33 32 32 0D 57 36 6C 07 6C 07 6C 07 6C 07 6C 07 6C 07 07 00 00 00 0B 00 0C 00 00 00 00 00 00 00 00 00 00 00 00 00 CR VT A T + U C A S T B : 2 2 , 30 30 30 44 36 46 30 30 30 30 33 35 35 33 32 32 0D 57 37 0D 0B 0A 0A 14 14 0A 0A CB 64 C8 CA 0A 0A 00 00 14 00 00 00 00 00 00 00 30 00 00 28 0A 14 04 2C CR VT A T + U C A S T B :
  • 15.
    Breaking it downBreakingit down 41 54 2B 55 43 41 53 54 42 3A 3 30 30 30 44 36 46 30 30 30 30 3 0D 57 37 0D 0B 0A 0A 14 14 0A 0A CB 64 C 0D           <AT+COMMAND>:<SIZE>, <Address> <Separator> <R/W> <Block> <Data> <CR>          
  • 16.
      What did webuild?What did we build?
  • 17.
    Zigbee / AT Serialcommunication Delphi Android GCM jQuery CSS Transforms Resilience (“What do you mean, no beer?”) Usability APIs HTTPS/SSL RDP Things we learned aboutThings we learned about
  • 18.