# Raw2Hex

#### Writeup by hgarrereyn

• Reverse Engineering
• 20 points
• Description: This program just prints a flag in raw form. All we need to do is convert the output to hex and we have it! CLI yourself to /problems/963285fb64e4c5f7a31b5a601c704f99 and turn that Raw2Hex!

# Solution

In this directory, we find a binary raw2hex that prints out the raw flag:

$./raw2hex The flag is:??~Y?މJ?B>?  We need to convert this output to it's hexadecimal representation and submit that as the flag. We can solve this with another python one-liner: $ ./raw2hex | python -c "a = raw_input(); print(''.join([hex(ord(x))[2:] for x in a[12:]]))"
e519e7aa7e593fde891bd24aaa423ea4


# Building the python one-liner

a = raw_input() # gets the output of raw2hex
a[12:]    # the output without the leading 'The flag is:'
[ord(x) for x in a[12:]] # creates a list of the integer values for each character in the flag
[hex(ord(x))[2:] for x in a[12:]] # convert those integers to hex values and strip off '0x'
''.join([hex(ord(x))[2:] for x in a[12:]]) # turn the list back into a string with no gaps
print(''.join([hex(ord(x))[2:] for x in a[12:]])) # Print it out


Flag: e519e7aa7e593fde891bd24aaa423ea4