Reverseit Binary 100pts Seccon CTF
Di Challange Ini kita di berikan file binary , kalau di teliti file itu mengandung signature yang di kenal sebagai jpeg image
$ file Reverseit Reverseit: data $ hexdump -C Reverseit 00000000 9d ff 70 0d b6 da fc 93 72 63 28 22 22 bd d2 18 |..p.....rc(""...| ... 000013b0 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 |................| * 00001ba0 02 02 02 02 02 02 02 02 02 02 02 02 02 e3 16 47 |...............G| ... 00001e00 84 00 84 00 10 10 10 00 64 94 64 a4 01 00 0e ff |........d.d.....| 00001e10 8d ff
Kita Gunakan script python untuk reverse keseluruhan dari file Reverseit
import sys def swap_nibbles(byte): return ((byte<<4) | (byte>>4)) & 0xff i=open(sys.argv[1], 'rb') o=open(sys.argv[1] + '.rev', 'wb') o.write(''.join(map(chr, map(swap_nibbles, map(ord, i.read()[::-1]))))) i.close() o.close()
$ python rev_bytes.py Reverseit $ file Reverseit.rev Reverseit.rev: JPEG image data, JFIF standard 1.01 $ hexdump -C Reverseit.rev 00000000 ff d8 ff e0 00 10 4a 46 49 46 00 01 01 01 00 48 |......JFIF.....H| ...Hasilnya Reveseit.rev adalah JPEG Seperti Ini , Masih terbalik tulisannya
import sys from PIL import Image i = Image.open(sys.argv[1]) o = Image.new(i.mode, i.size) idata, odata = i.load(), o.load() for y in range(i.size[1]): for x in range(i.size[]): odata[x, y] = idata[i.size[]-x-1, y] o.save(sys.argv[1] + '.jpg')
$ python revh_image.py Reverseit.rev
dan kita mendapatkan gambar yang normal bertulisan SECCON{6in_tex7}
:
dari coding ruby di atas , dengan command ini kamu juga bisa melakukan reverse :
$ hexdump -ve '1/1 "%.2x"' Reverseit | rev | xxd -r -p > Reverseit.rev $ convert -flop Reverseit.rev Reverseit.rev.jpg