본문 바로가기
Wargame/HackCTF

Keygen

by Anatis 2021. 3. 21.

 

1. 풀이

nc로 연결하면 키 입력이라고 뜨고 입력하면 아무 반응이 없다. 

 

메인 함수 부분을 보면 check_key 함수가 있는데 여기서 키를 검사하는거 같고 키가 일치하면 flag를 출력해준다. check_key 함수를 확인해 보자.

 

check_key 함수를 보면 encoding 함수가 보이고 strcmp에서 "OO]oUU2U<sU2UsUsK" 문자열과 비교를한다. 즉 이 문자열과 일치하면 flag 값을 읽을 수 있다.

 

encoding 함수를 보면 이 함수에서 입력받은 문자열을 encoding하고 check_key 함수에서 본 문자열과 비교를한다. 그렇다면 위 문자열 그대로 decoding 하는 코드를 짜면 될 것 이다.

 

j의 범위를 33, 126까지 한거는 우리가 입력할 수 있는 값만 범위로 지정해줬다.

 

key 값이 나왔다. 이제 키를 입력을하면 되는데 우리가 입력을할때 fgets를 통해 입력을 받았다. fgets 특성상 '\n'인 개행문자 까지 읽는다 그렇기 때문에 key를 입력할때 & 하나를 빼주고 key를 입력하면 된다.

 

'Wargame > HackCTF' 카테고리의 다른 글

Pwning  (0) 2021.03.23
Gift  (0) 2021.03.23
Look at Me  (0) 2021.03.21
Random Key  (0) 2021.03.21
Strncmp  (0) 2021.03.19

댓글