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}'