이진폭탄제거(bomb lab) 프로젝트 계획서
- 최초 등록일
- 2009.12.30
- 최종 저작일
- 2009.12
- 4페이지/ 한컴오피스
- 가격 1,000원
소개글
이진 폭탄 제거 프로젝트를 시작하기전 어떻게 수행하고,
어떤 툴을 사용하고, 어떤 배경지식으로 풀지 상세히 기술하였다.
한마디로 프로젝트계획서이다.
목차
① 이번 프로젝트에서 사용할 툴: GDB Debugger.
② gdb debugger을 실행시키기 까지의 준비과정.
③ 문제를 어떻게 풀 것인가? (c 코드 분석)
⑤ 문제를 어떻게 풀 것인가? (disassemble을 통한 분석)
⑥ 문제를 푸는데 도움이 되는 내용들
본문내용
③ 문제를 어떻게 풀 것인가? (c 코드 분석)
→vi bomb.c를 통해서 bomb.c 의 소스코드를 보았는데, 중간중간에 달려있는 주석들이 도움이 되었다.
→c 코드를 본 후, 이진폭탄이 총 6단계로 이루어져 있다는 것을 알 수 있었다.
→또한, 6단계 까지가 같은 형태로 이루어져 있었는데, 코드를 보면
input = read_line();
phase_k(input); //k는 1~6 단계
phase_defused();
printf("성공했다는 comment가 나온다");
모두 이런형태로 되어 있었다.
→이를 통해 유추해본 결과 read_line() 함수를 통해서 사용자의 input을 받고 그 input을 phase_k (k단계) 에 인자로 넘겨주어서 phase 함수 안에서 그 input이 답이면 phase_defused() 함수를 통해서 폭탄이 해체되고 성공했다는 comment가 출력이 된다.
→6단계 까지 모두 clear 하고 나면 c 코드에는 이러한 주석이 달려있다.
/* Wow, they got it! But isn`t something... missing? Perhaps
* something they overlooked? Mua ha ha ha ha! */
6단계 까지 모두 clear 하였지만, 무언가 우리가 빠트리고 간과하고 있는 것이 있지 않느냐 는 내용이다. 나중에 어셈블리어로 분석을 할 때에, secret_phase가 있다는 것을찾게 되었는데, 위의 주석은 c코드에 미리 비밀단계의 이진폭탄이 있다는 것을 암시해 놓은 것이다.
참고 자료
없음