처음 실행했을때 깜짝 놀랐다.
일단 PEiD로 봤을때는 딱히 이상한 점은 없었는데,
IDA로 까보니 뭔가 안티디버깅 함수들이 있었다.
의미 없었지만.
(음? 누구시라구요?)
(히익 Egoist?!)
All alone with you 의 앨범 표지였던가 했던것 같다.
어쨌든 이런 창 하나 띄워주고, 입력도 안받는다.
어디서 입력해야되는지도 모르겠고 그냥 분석하기로 했는데...
IDA로 까니까 이렇게 특정 문자열과 비교하는 부분이 있다.
간단하게 XOR, 뺄셈 후 비교하기만 하는 부분이므로
간단하게 역연산 해주면 풀린다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | string = 'C;@R' enc = [] dec = "" for i in string: enc.append(ord(i)) for i in range(1, 6): enc[0] = enc[0] ^ 3 enc[0] = enc[0] + i for i in range(1, 5): enc[1] = enc[1] ^ 4 enc[1] = enc[1] + i for i in range(1, 4): enc[2] = enc[2] ^ 5 enc[2] = enc[2] + i for i in range(1, 3): enc[3] = enc[3] ^ 6 enc[3] = enc[3] + i for i in enc: dec += chr(i) print "Decrypted : " + dec | cs |
'CTF > 지난 대회' 카테고리의 다른 글
Codegate Junior 2014 Prequal - nuclear (with pwntools) (0) | 2016.03.02 |
---|---|
Plaid CTF 2013 - ropasaurusrex (with pwntools) (0) | 2016.02.29 |
SecuInside 2013 - reader (0) | 2016.01.13 |
SecuInside 2013 - givemeshell (0) | 2016.01.13 |
Codegate Junior 2015 Prequal - systemshock (0) | 2015.12.05 |