- 문제
Reversing (100 pts)
"It's a keygen problem"
(This is the original binary, it is 100% superseded by the new one and there is no reason you should look at it, but it is here for posterity. )
clifford_fb9d383f537c803a82b5040e801785e0.elf
프로그램을 분석하면 다음과 같은 조건을 확인할 수 있다.
1) 첫 번째 입력 값은 2~10까지 입력해야 한다.
2) 입력 값이 2~10인 경우에 따라 입력해야될 개수가 달라진다.
입력 값 개수 수식 : (n+n)*3 - (n*3) + 1
처음 입력 값이 2인 경우 : (2+2)*3 - (2*3) + 1 = 7
처음 입력 값이 3인 경우 : (3+3)*3 - (3*3) + 1 = 19
....
3) 입력한 값들은 다음과 같은 형태로 동적할당된 메모리에 입력된다.
초기 입력: 2, 입력 값: 1 2 3 4 5 6 7
1 2
3 4 5
0 6 7
초기 입력: 3. 입력 값: 1 1 1 2 2 2 2 3 3 3 3 3 4 4 4 4 5 5 5
1 1 1
2 2 2 2
3 3 3 3 3
0 4 4 4 4
0 0 5 5 5
4) 들어가는 숫자 값은 초기 입력된 숫자의 입력 값 개수보다 큰 값이 들어가면 안된다.
초기 입력: 2, 입력 개수: 7 -> 7보다 큰 숫자를 입력하면 실패
5) 1번째 열의 합계(sum)을 구한다.
5-1) 각 열의 합이 합계와 같아야 한다.
5-2) 각 행의 합이 합계와 같아야 한다.
........
6) 1번째 열의 1번째 값과 2번째 열의 1번째 값의 합이 0x14가 아니면 실패
7) 1번째 열의ㅣ 1번째 값이 9가 아니면 실패
무슨 자료구조 같은데 잘 판단이 안서서 소스로 구현했다.
뭔지 모르겠다. 자료구조 같은데 -_-;; Ruina에게 Help를 외쳤더니 검색 신공 이 후 찾은 진의 이름이 선분형 육각진이란다. 다음 링크를 참조
Link : http://dairyong.com.ne.kr/hexagon6.htm
다음과 같은 파일로 입력하여 키를 구했다.
Your flag is: too_bad_this_took_20_years_to_find!!
'CTF > Hacking Defense Contest' 카테고리의 다른 글
[Plaid CTF 2015] Forensic - PNG Uncorrupt (0) | 2015.04.21 |
---|---|
[Plaid CTF 2015] Crypto - Curious (0) | 2015.04.21 |
[Plaid CTF 2015] Misc - Sawed (0) | 2015.04.21 |
[Plaid CTF 2015] Forensic - Unknow (0) | 2015.04.21 |
[Plaid CTF 2015] CTF 종료.. (0) | 2015.04.21 |