그냥 역으로 테이블 하나 구성하면 된다.
#!/usr/bin/python
from struct import unpack,pack
table = [48, 27, 50, 8, 47, 73, 12, 4, 66, 0, 14, 77, 56, 26, 63, 67, 17, 11, 68, 22, 72, 69, 60, 64, 74, 58, 54, 42, 65, 32, 33, 40, 39, 37, 51, 59, 24, 35, 38, 61, 21, 31, 57, 20, 76, 13, 10, 43, 9, 78, 46, 44, 45, 49, 3, 75, 23, 2, 19, 25, 28, 41, 29, 6, 30, 53, 70, 7, 16, 18, 34, 1, 62, 52, 5, 55, 36, 79, 71, 15]
vtable = {}
for i in range(len(table)):
vtable[table[i]] = i
lt = len(table)
f = open("./ENCRYPTED","r")
f2 = open("./ORIGINAL","w")
d = f.read()
f.close()
a = ""
result = ""
for i in range(0,len(d),lt):
a = d[i:i+lt]
for j in range(0,lt):
result += a[vtable[j]]
f2.write(result)
f2.close()
빨간색이 수정한부분이다.
ENCRYPTED를 읽어서 ORIGINAL을 쓰는 형식으로 바꿨다.
mp3가 나오는데 제목이 키값이다.
'writeup > 해킹캠프CTF 2014' 카테고리의 다른 글
2014 동계 해킴캠프 미니 CTF - 출제 실패한 문제 (0) | 2014.02.19 |
---|---|
2014 동계 해킹캠프 미니 CTF SleepSleepSleep 문제 풀이 (2) | 2014.02.19 |
2014 동계 해킹캠프 미니 CTF WinRev 풀이 (0) | 2014.02.19 |
2014 동계 해킹캠프 미니 CTF Optimize 풀이(python) (0) | 2014.02.19 |