Reverse Polarity
1 minuto de lectura
Se nos proporciona esta ristra de bits de un disco duro:
10000110101010001000110011011000110010101100001011100100110111001111011010000100110100101110100010111110100011001101100011010010111000001110000011010010110111001111101
Necesitamos representarlo en forma de caracteres legibles. Primero, podemos utilizar Python para expresar el chorros de bits como un número en hexadecimal:
$ python3 -q
>>> hex(0b10000110101010001000110011011000110010101100001011100100110111001111011010000100110100101110100010111110100011001101100011010010111000001110000011010010110111001111101)
'0x4354466c6561726e7b4269745f466c697070696e7d'
Nótese que hay que añadir 0b para que Python interprete el número con base binaria.
Mirando los dígitos en hexadecimal, podemos prever que serán caracteres ASCII (por ejemplo, 0x43 es C, 0x54 es T y 0x46 es F).
Para decodificar estos bytes desde números en hexadecimal, podemos utilizar binascii.unhexlify (quitando el prefijo 0x):
>>> bytes.fromhex('4354466c6561726e7b4269745f466c697070696e7d')
b'CTFlearn{Bit_Flippin}'