You are correct. The server was not expecting a HelloPacket from the client..for it to send a WHORU packet. Just a connection would be sufficient.
As you suggested , I ran my program without the first Hello Packet and i got a SUCCESS message from the server..
Message received from the server is WHORU:9832481028
constructing the Identification packet to be sent to server...
The first part of response is WHORU
The second part of response is 9832481028
Identification packet that will be sent to the server is IAM:9832481028:email@example.com:at
Message received from the server is SUCCESS:743204
However, I am doubtful as to what needs to be done further more with the dump that the server will send me..
The protocol at http://challenge.airtime.com:2324/instructions
goes as follows:
"Once the server sends the success packet, it will begin sending the entire satellite dump over the socket.
In order to help understand the transmission, we have stolen an excerpt of a secret document that may help.
Each packet has the following structure:
0 4 8 12
|SEQ|CHK|LEN|…LEN bytes of raw Linear PCM |
The 32-bit checksum is calculated by XOR'ing each 32-bit chunk of
the 4 byte big-endian sequence number(SEQ) and data. If LEN is
not a multiple of 4, the byte 0xAB shall be used in place of the
missing bytes only for the purpose of calculating the checksum.
Hint: Next steps will become apparent once you are able to understand the transmission. Hint: Some interesting websites that may be useful for your mission are FFmpeg and Audacity "
I am not sure in what format the dump would be coming in..I tried to get that into String with the below code snippet
and all i can see in my Line variable are special characters . I have attached a snapshot of what dump I received from the server in file ServerDumpAsString.jpeg
Some people who have taken this puzzle (https://github.com/devmach/airtime-challenge
) are collecting the dump as a .raw file and they suggest using a third party tool to decode the message... Also some of their code in java script shows that they are trying to parse the entire dump ? I am not sure the protocol actually suggests parsing the dump and then decoding it...not sure if i am understanding the further steps correctly
Also, i dont understand how we would be able to parse the dump when everything is in special characters...
Requesting your expertise and kind guidance to help me understand further steps...