WARGAME (27) 썸네일형 리스트형 SHCH CTF - BOF3 BOF3번 문제당 바이너리를 다운 받아 실행 시켜보자 이번 문제도 문자열을 입력 받는당 그냥 아무 문자나 넣어보자 이번에도 지난번과 비슷하게 "Your IQ is .... " 머시기 하며 출력이 된당 그럼 이번에도 IDA로 분석을 해보자! 이번에도 거의 비슷하게 v4변수만 덮어주면 된당 이전과 마찬가지로 buf가 ebp-0x50( 80 ) 만큼 할당이 되어있고 v4변수는 ebp-0x10( 16 )위치에 할당되어 있다. 즉 0x50 - 0x10 64개 만큼 buf를 채우고 저 if 문에 참이 되게 값을 넣어주면 된당 그러나 이전 문제와 마찬가지로 int형 4 byte씩 넣어주어야 하기 때문에 16진수로 변환해 리틀 엔디안 방식으로 넣어주면 된다. 저 11332302 를 16진수로 변환해 주면 "0xACEA.. SMCH CTF - BOF2 (EZ) BOF 2번 문제당 바이너리를 함 받아서 실행시켜 보장 1번과 비슷하게 입력을 받는당 입력으로 A를 여러개 넣어보자 흠 입력을 받아 보니 "Hi aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa! Your IQ is 0x00000000!" 라는 문자열이 출력되는 것을 보아 내가 입력 받은 값을 그대로 출력해 주는 같다. 그럼 이쯤에서 IDA로 분석을 해보자. 이전 문제랑 상당히 비슷한 거 같다. 버퍼를 ebp에서 0x54(84) 만큼 esp를 빼 할당하고 그중에서 문자열을 입력받는 부분은 총 64바이트임을 알 수 있다. 그리고 if에서 v4와 4277061을 비교 해서 같으면 flag를 얻을 수 있음을 확인 할 수 있는데, 우리가 입력을 줄.. SMCH CTF - BOF1 (EZ) 우선 문제를 보면 왠지 제목이랑 설명부터 BOF 문제인거 같다 바이너리를 받고 file 명령어로 바이너리의 정보를 봐 보장 이 바이너리는 32bit ELF 형식의 바이너리임을 알 수 있다. 자, 그럼 이제 리눅스 환경에서 실행되는 바이너리임을 확인했으니깐 직접 실행을 시켜 보자 흠 입력을 받아보니 이상한 문자랑 함께 "Your IQ is 0x00000000!"이라는 문자열이 출력되는 것을 볼 수 있다 그럼 이제 본격적으로 IDA로 분석을 해보자 IDA hex ray로 main 함수를 까 보았다. 코드를 분석해보자면 printf와 puts함수로 문자열 3개를 출력하는 것을 확인할 수 있다 그다음 read 함수로 buf에 최대 0x44개(68개) 만큼 입력을 받을 수 있는 것을 확인할 있고, 다음으로 v4변.. 이전 1 2 3 4 다음