728x90
picoCTF 접속 링크 - https://picoctf.org/
picoCTF - CMU Cybersecurity Competition
picoCTF is a free computer security education program with original content built on a capture-the-flag framework created by security and privacy experts at Carnegie Mellon University.
picoctf.org
picoCTF 2019 [ Based ]

진법 변환 문제인 것 같다.
우선 주어진 주소로 접속해보자.

45초 안에 2진수를 ASCII로 변환해야 한다.
해결하기 위해 진법 변환 프로그램을 만들어보자.
#include <stdio.h>
#include <string.h>
int main()
{
char binary[100];
int increase, exponentiation, decimal, length;
while (1)
{
exponentiation = 1, decimal = 0;
printf("2진수 입력 : ");
scanf_s("%s", binary, 100);
if (strcmp(binary, "2") == 0)
break;
length = strlen(binary);
if (length > 31)
{
printf("31문자 이내로 입력해주세요.\n");
}
for (increase = 0; increase < length; increase++)
{
if (binary[increase] != '0' && binary[increase] != '1')
{
printf("Error");
return 0;
}
}
for (increase = 0; increase < length; increase++)
{
if (increase == 0)
exponentiation = 1;
else
exponentiation = 2 * exponentiation; // 2의 제곱
decimal += (binary[length - increase - 1] - '0') * exponentiation;
// 1111 -> 1*1 + 1*2 + 1*4 + 1*8 = 15
}
printf("10진수: %d\n", decimal);
printf("ASCII : %c\n", decimal);
}
return 0;
}
사용해서 풀었더니 이번엔 45초 안에 8진수를 ASCII로 변환해야 한다.

해결하기 위해 진법 변환 프로그램을 만들어보자.
728x90