FireEye FLARE CTF 2017 : PEWPEWBOAT Challenge 5
The challenge is about selecting correct coordinates on to the map and advancing to the next stage to get flag. As we advance to next stage, the game print some metadata. After debugging the binary, the logic to calculate co-ordinate can be rewritten. Below is the python implementation of calculating co-ordinate and decrypting metadata for each stage. import binascii key = 0x3B1EE5F6B3D99FF7 #initial key to decrypt metadata. offset = 0x50E0 #offset of metadata in binary f = open('pewpewboat.exe','rb') for i in range(0,11): stage = i v = ((i << 3) + i) << 6 f.seek(offset + v) mask = '0x' temp = '0x' res = [] metadata = [] for i in range(0,0x240): key = ((key * 0x41c64e6d) +...