본문 바로가기

CTF

YISF 2017 write up

2017 청소년 정보보호 페스티벌 예선 대회 풀이 보고서 

YISF 2017 write up


제15회 순천향대학교 청소년 정보보호 페스티벌.pdf


+ Reversing 100


https://github.com/Gyeongje/CTF/tree/master/YISF%202017/Reversing100


그 당시에 정신이 없어서 못풀었던 리버싱 문제 풀이입니다. 

실행파일을 간단히 설명하자면 같은 디렉토리 공간안에 "encoder" 이름의 파일이 아닌 

다른 파일의 파일텍스트를 41크기만큼 긁어옵니다.



(원래 파일텍스트 데이터를 긁어온 변수는 s지만 flag로 추측이 되서 이름을 s에서 flag로 바꿔주었습니다.)

후에 flag배열과 앞뒤에 붙어있는 더미문자열을 연산시키는데 

연산의 핵심은 

*v18 ^= *v19 

*v19 = v2 - 10

 xor과 -10 입니다 


이부분만 역연산 해준후에 flag 값을 옮겼던 v23 배열만 따로 추출하면 플래그가 나옵니다.


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
dest = [[60,34,4,58,7,35,89,60,11,27,34,30,56,25,118,30,31,53,42,
        13,52,40,34,122,6,43,20,101,54,14,16,88,35,29,22,36,95,
        16,22,1],[107,62,10,23,14,76,115,52,40,108,77,22,40,7,13,
        97,14,49,57,32,51,61,88,55,79,31,24,32,62,53,93,66,23,49,
        32,124,14,24,74,43],[72,112,52,106,71,84,113,115,110,85,57,
        77,114,99,102,66,103,69,116,54,73,120,121,51,122,65,67,53,
        117,81,89,119,50,70,90,78,100,68,101,56],[115,23,74,87,41,104,
        61,85,40,95,85,111,106,95,98,23,88,87,102,55,57,85,105,95,
        26,111,39,87,100,42,85,72,107,38,111,113,60,73,63,79],[69,66,
        76,99,73,69,66,76,99,73,69,66,76,99,73,69,66,76,99,73,69,66,
        76,99,73,69,66,76,99,73,69,66,76,99,73,69,66,76,99,73]]
 
flag = ""
 
for i in range(2):
    for j in range(40):
        dest[4-i][39-j]+=10
        dest[i][j]^=dest[4-i][39-i]
 
dest[3].reverse()
 
for i in dest[3]:
    flag += chr(i)
 
print flag
 
cs


Flag is YISF{y0uR_4na1y$is_CApab!lity_i2_Gr3aT!}

'CTF' 카테고리의 다른 글

제 12회 정보보호올림피아드 예선풀이  (2) 2017.10.30
ASIS CTF Final 2017 Write up (ABC Reversing challenge)  (0) 2017.09.19
YISF 2017 본선 풀이(x)  (0) 2017.09.18
DIMICTF 2017 write up  (0) 2017.07.16
[CODEAGATE 2017] Junior write up  (2) 2017.02.15