WARGAME (27) 썸네일형 리스트형 Reversing Warmup 1 [ Reversing ] 문제는 다음과 같다. 다음과 같이 run이라는 바이너리 하나를 준다. 그런 다음 리눅스 환경에서 실행시켜보면 그냥 flag를 준다. FLAG : picoCTF{welc0m3_t0_r3VeRs1nG} Resources - Points [ General Skills ] 문제는 다음과 같다. 그냥 저 링크로 들어가 보면 요렇게 flag를 준다. FLAG : picoCTF{xiexie_ni_lai_zheli} Forensics Warmup 2 [Forensics] 이번 문제는 PNG 파일을 다운받게 되어있다. 파일을 다운 받아 보면 이번에도 그냥 flag를 준다. FLAG : picoCTF{extensions_are_a_lie} Forensics Warmup 1 [Forensics] 문제는 다음과 같다, 그냥 저 파일을 다운 받고 압축을 풀어보면 그냥 요렇게 flag를 확인 할 수 있다. FLAG : picoCTF{welcome_to_forensics} SMCH CTF - BOF_ret 이번 문제는 BOF_ret라는 문제당 바이너리를 다운로드하여 실행시켜 보면, 다음과 같이 "By the way, what is your name?"이라는 문자열과 함께 입력을 주게 된다 입력을 한 줄 주면, 요럿게 "No flag... So sad (T.T)"라는 문자열이 뜨면서 프로그램이 종료된다. IDA로 메인 함수를 분석해보자. 메인 함수의 구조는 무척이나 간단했당 우리가 처음 입력 전에 보았던 문자열 3개를 출력한 뒤 greeting이라는 함수를 호출한다. greeting 함수의 구조를 봐 보면, read함수로 buf에다가 입력받은 문자열을 출력해주고 no_flag라는 함수를 호출한다. 이름에서부터 flag를 안 주게 생긴 함수지만 한번 분석을 해보면, 역시낰,, ㅋㅋㅋ 당연히 flag를 주지 않.. SMCH CTF - Calc 문제는 다음과 같다. 이번에도 바이너리 대신 소스 코드를 다운 받도록 되어 있당 코드를 다운 받아 보면, calc.c라는 이름의 C언어 소스 코드 파일을 받을 수 있다. calc.c 소스코드의 내용은 다음과 같당 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 #include #include #include #in.. SMCH CTF - Rock Paper scissors(EZ) 이번 문제는 바이너리가 아닌 무슨 소스코드를 다운받는거 같다. 한번 코드를 다운 받아 보면, 요런 C언어 소스코드가 다운 받아짐을 확인 할 수 있다. C 소스코드는 다음과 같이 생겼당 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 #include #include #include #include #include #include void get_flag(){ system("cat flag".. SMCH CTF - BOF4 이번에는 BOF4번 문제당 바로 실행시켜 보자 문자열을 입력받는닷 이번에도 아무거나 입력해보장 입력을 주었더니 내가 입력 넣은 문자열과 "No flag... So sad (T.T)"라는 문자열이 출력된다. 바로 IDA로 분석 ㄱㄱ 해보자 main함수의 구조는 다음과 같다 buf를 0x4C만큼 할당하고 memset함수로 버퍼를 초기화 한 다음 v4 함수 포인터 변수에다가 no_flag 의 함수 주소를 넣고, 처음 실행했을 때 봤던 문자열들을 출력한 다음 read함수로 입력을 받는다. 그 다음 if 문을 거친 다음 내가 입력한 문자열을 출력 후 함수 포인터 v4를 통해 no_flag 함수를 호출하고 있다. 솔직히 v5에다가 argc의 주소 값 넣는 거랑 if 문에서 buf [ len-1 ] == 10 조건이.. 이전 1 2 3 4 다음