버퍼 오버플로우(2)
-
Simple_Overflow_ver_2 풀이
이번 문제는 여태까지 풀었던 Buffer Overflow문제들보다 소스코드가 조금 복잡해 보입니다. 우선 문제 파일을 실행시켜보겠습니다. 코드랑 같이 보면서 설명하도록 하겠습니다. 우선 do-while 반복문을 사용하는데, do의 첫 부분에서 88-14=74(10진수로 116) 크기의 char형 배열 s를 \n(줄 바꿈 이스케이프 시퀸스)이 나오기 전까지 입력받습니다. 그리고 for문으로 들어가는데, size_t 형식의 변수 v3에다가 int형 변수 i를 대입합니다. 저는 여기서 size_t라는 타입을 처음 봐서 구글에 서칭을 조금 해봤습니다. size_t는 해당 시스템에서 어떤 객체나 값이 포함할 수 있는 최대 크기의 데이터를 표현하는 타입으로 반드시 unsigned 형으로 나타낸다. 나무위키에 siz..
2021.07.14 -
basic_exploitation_001 풀이
#include #include #include #include void alarm_handler() { puts("TIME OUT"); exit(-1); } void initialize() { setvbuf(stdin, NULL, _IONBF, 0); setvbuf(stdout, NULL, _IONBF, 0); signal(SIGALRM, alarm_handler); alarm(30); } void read_flag() { system("cat /flag"); } int main(int argc, char *argv[]) { char buf[0x80]; initialize(); gets(buf); return 0; } 이 코드는 basic_exploitation_001.c 파일에 들어있는 소스코드입니다..
2021.07.10