31번째 문제 가보자구!
앗 무서운 그 이름 pwntools...
분명 저번에 우분투 설정 문제 이슈로 아마 pwntools 설치가 안됐던걸로 기억나는데...
하...
(먼산)
일단 문제 코드를 보자
// Name: chall.c
// Compile Option: gcc chall.c -o chall -fno-stack-protector
#include <stdio.h>
#include <signal.h>
#include <stdlib.h>
#include <fcntl.h>
#include <unistd.h>
#include <time.h>
#define FLAG_SIZE 0x45
void alarm_handler() {
puts("TIME OUT");
exit(1);
}
void initialize() {
setvbuf(stdin, NULL, _IONBF, 0);
setvbuf(stdout, NULL, _IONBF, 0);
signal(SIGALRM, alarm_handler);
}
int main(void) {
int fd;
char *flag;
initialize();
srand(time(NULL));
flag = (char *)malloc(FLAG_SIZE);
fd = open("./flag", O_RDONLY);
read(fd, flag, FLAG_SIZE);
close(fd);
int num1 = 0;
int num2 = 0;
int inpt = 0;
for (int i = 0; i < 50; i++){
alarm(1);
num1 = rand() % 10000;
num2 = rand() % 10000;
printf("%d+%d=?\n", num1, num2);
scanf("%d", &inpt);
if(inpt != num1 + num2){
printf("Wrong...\n");
return 0;
}
}
puts("Nice!");
puts(flag);
return 0;
}
문제 설명에 쓰여져 있는대로 랜덤 값을 생성하여 일치하는지 확인하는 프로그램이다.
아니 선생님 1초만에 저걸 어떻게 풀어욧...
문제를 풀 프로그램을 만들어야한다.
https://eliez3r.github.io/write-up/2024/04/21/writeup-dreamhack-addition_quiz.html
여기 블로그 글을 보면 문제 풀이 코드를 짜놓으셨는데
난
pwntools..
설치부터 막혔다...
젠장..
이거 우분투 설정방법 살려줘ㅓㅓㅓㅓㅓ
2024-10-22 드디오 풀었다!!!!!캬ㅑ!!!
망할 들여쓰기 때문에 20분은 날려먹은 것 같다..하핳 하하하! 풀었다고!!
들여쓰기는 tap...영원히 잊지못할 것 같다..후..
https://yun-2.tistory.com/m/entry/CTFSeason5Round2addition-quiz
코드는 이 분 블로그를 참고했다
1) from pwn import *: pwn 라이브러리를 임포트. 바이너리 익스플로이테이션과 리버스 엔지니어링을 위한 도구 제공.
2) conn = remote(['address'], [port number]): 원격 서버에 연결. 'address'와 'port number'는 실제 서버의 주소와 포트 번호.
3) question = conn.revline().decode().strip(): 서버로부터 한 줄 수신하고, 이를 디코드하여 문자열로 변환, 양 끝의 공백을 제거.
4) num_str, _ = question.split("="): 수신한 문자열을 '=' 기호를 기준으로 분리, 분리한 첫 번째 부분을 num_str에 저장.
5) num1, num2 = map(int, num_str.split('+')): num_str을 '+' 기호를 기준으로 분리, 분리한 각 부분을 정수로 변환, 이를 num1과 num2에 저장.
6) conn.sendline(str(num1 + num2)): num1과 num2를 더한 결과를 문자열로 변환, 이를 서버에 전송.
7) print(conn.revall().decode()): 서버로부터 수신한 모든 데이터를 디코드하여 출력.
출처:https://yun-2.tistory.com/m/entry/CTFSeason5Round2addition-quiz
'Dreamhack > Dreamhack Wargame (Challenge)' 카테고리의 다른 글
[33] IT 비전공자 [dreamhack]Path Finder문제 풀기 (3) | 2024.10.12 |
---|---|
[32] IT 비전공자 [dreamhack] whatsdifferent문제 풀기 (4) | 2024.10.11 |
[30] IT 비전공자 [dreamhack]file-special-bit문제 풀기 (5) | 2024.10.09 |
[29] IT 비전공자 [dreamhack] littlevsbig (misc)문제 풀기 (8) | 2024.10.08 |
[28] IT 비전공자 [dreamhack] bof문제 풀기 (2) | 2024.10.07 |