xcz.kr의 10번째 문제는 Frozen Monitor이다. 문제 화면에는 아래와 같은 사진이 있다.
처음에는 스테가노그래피 문제인가 싶어서 Stegsolve도 써 보고 했지만 별 다른 소득을 얻지 못했다.
보다가 가운데의 빨간 부분이 신경 쓰여서 확대해서 살펴보면 여러 색들이 일정한 픽셀에 맞춰 나열되어 있는 것을 볼 수 있다. 이 색 하나하나를 그림판의 스포이트 기능을 사용해 추출했다.
이런 방식으로 색을 뽑다보니 R값에 따라 색이 달라지고, G, B 값은 0 임을 확인할 수 있었다. 이렇게 뽑힌 R 값을 순서대로 나열하면 113, 145, 171, 40, 151, 163, 40, 143, 157, 154, 60, 122, 103, 60, 114, 50, 51, 162다.
숫자와 관련된 플래그는 아닌 것 같고, 숫자를 문자로 바꾸는 것과 관련해 생각해 본 것이 아스키코드였다.
이를 일일이 대응해도 되지만 구하기 귀찮은 관계로 코드를 아래와 같이 짜 줬다.
1
2
3
4
5
6
7
8
|
#include <stdio.h>
#include <string.h>
int main() {
char s[50] = { 0113, 0145, 0171, 040, 0151, 0163, 040, 0143, 0157, 0154, 060, 0122, 0103, 060, 0114, 050, 051, 0162 };
for (int i = 0; i < strlen(s); i++)
printf("%c", s[i]);
}
|
이걸 실행시키면 인증키가 뜨고, 인증하면 된다.
[xcz.kr #12] Steganography - 200 points (0) | 2021.02.17 |
---|---|
[xcz.kr #29] NemoNemo - 100 points (0) | 2021.02.16 |
[xcz.kr #20] Bonus Problem! - 50 points (0) | 2021.02.16 |
[xcz.kr #2] Listen Carefully! - 100 points (0) | 2021.01.21 |
[xcz.kr #1] End Of Image - 100 points (0) | 2021.01.19 |
댓글 영역