@googuns_lulz was inspired by other @googuns_ Twitter bots.

Some parts of its messages are random, but some are defined.

Message Parser

Copy and paste a tweet:

v1.1 Format

64 bytes (91.4% of all 70 bytes) contain information (are not red/green in the table). v1.1 was released on Friday, March 19, 2017 at 7:48 PM MST.

All valid messages in v1.1 or v1 Format are guaranteed to be invalid in the other. Compared to v1, v1.1 has less redundancy.

Offset Length Description Entered
0x00 0 0x8 8 64-bit UNIX timestamp ^ data[9:17] ^ data[32:40]
0x08 8 0x1 1 ~hash1[0]
0x09 9 0x1 1 hash0[1]
0x0A 10 0x34 52 undefined
0x3E 62 0x1 1 version (0x01)
0x3F 63 0x4 4 undefined
0x43 67 0x3 3 zero (0x000000)
Derived Value
UNIX timestamp
hash0 = sha256(data[10:])
hash1 = sha1(data[:8])

v1 Format

24 bytes (34.3% of all 70 bytes) contain information. v1 was released on Sunday, October 09, 2016 at 11:36 AM MDT.

Offset Length Description Entered
0x00 0 0x8 8 transformed 64-bit timestamp*
0x08 8 0xC 10 hash1[:10]
0x12 18 0xC 10 hash1[:10] xor (A+B+C)**
0x1C 28 0x2 2 undefined
0x1E 30 0x20 32 hash2
0x3E 62 0x1 1 version (0x01)
0x3F 63 0x4 4 undefined
0x43 67 0x3 3 zero (0x000000)
Derived Value
hash1 = sha1(data[:8])
hash2 = sha256(data[:30] + data[62:])
A + B + C
UNIX timestamp
* transformed 64-bit timestamp = (([UNIX timestamp] <<< A) ^ B ^ 0x420B16B00B5F1337) >>> C
 A: 1 random byte
 B: 8 random bytes
 C: 1 random byte

 constant explanation:
  42 - reference to The Hitchhiker's Guide to the Galaxy by Douglas Adams
  0 - first separator
  0xB16B00B5 - reference to Microsoft and Linux
  F - last separator
  1337 - exercise for the reader
** originally supposed to be `hash1[10:] xor (A+B+C)`

Notation
All fields are big endian.
<<< = rol and >>> = ror (bitwise rotations).
^ = bitwise XOR (exclusive OR).
~ = bitwise negation.
+ = concatenation.
data[a:b] = slice from data[a] to data[b-1], with a=0 and b=data.length by default; empty slice if a=b.