일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- @Param
- 우아한테크코스
- ubuntu이미지
- clearAutomatically
- ubuntu
- NonUniqueResultException
- 벌크연산
- 영속성컨텍스트
- 회고
- 검색api
- @Modifying
- 자바 롬복
- BDDMockito
- docker에 ubuntu
- 레벨인터뷰
- 우테코
- 스프링부트배포
- @Query
- Mock
- 스프링 롬복
- bomblab
- 우아한테크코스 블랙잭
- SpringDataJPA
- Argos
- 우아한테크코스5기
- jpa
- unique result
- 우분투
- 배포스크립트
- 밤랩
- Today
- Total
목록System/BombLab (3)
Jeomxon's Tech Note
오늘의 포스팅은 docker에서 ubuntu이미지를 이용해서 bomblab용 컨테이너를 만들어서 기본 환경 설정을 하는 법에 대해서 다뤄볼 것이다. 앞으로 bomblab을 풀기 위해서 미리 환경설정을 하는데 단순히 내 로컬이 아니라 docker의 가상환경에서 하기 위함이 있다. 나의 로컬에서 하는 것이랑은 크게 차이는 없지만 지저분한 로컬을 피하기 위해서 이런 선택을 했다. 먼저 docker를 다운받는다. https://docs.docker.com/desktop/mac/install/
이번에는 bomb lab의 phase_2를 푸는 내용을 포스팅할 것이다. 먼저 gdb로 bomb를 들어가서 phase_2를 disassamble해보았다. 일단 핵심이 되는 함수를 보니 read_six_numbers라는 함수임을 알 수 있다. 아마도 6개의 입력 값을 받을 것 같은 느낌이 든다. 그리고 다음 14번째 줄의 cmp명령어를 보면 스택에 첫번째 정수가 1인지 비교하고 있다. 그리고 52번째 줄로 넘어가서 rbx에 두번째 숫자가 담긴 스택의 주소를 저장하고 다시 27번째 줄로 점프해서 eax에 첫번째 입력값인 1을 복사한다. 그 후 30번째 줄에서 eax값을 두배해준다. 그 후 rbx의 값과 비교를 해서 같으면 rbx에 4만큼의 공간을 더 할당하여 준다. 이런 방식을 반복하다보면 처음에 1부터 시..
2학년 2학기 때 배울 시스템 프로그래밍을 위해서 bomblab을 한번 끝까지 풀어보고 싶었다. 사실 원래 한번 풀어보고 싶기도 했고 복학을 했을 때 2학년 2학기를 대비하자는 그런 마음가짐으로 겸사겸사 시작해보려고 한다. 먼저 동아리 교육 서버에 미리 받아둔 bomblab을 실행시켜 보았다. 먼저 이렇게 인사말과 함께 반겨주는 모습을 볼 수 있다.(사실 숨겨진 내면은 무섭다^_^) 그리고 'abcd'라는 문자열을 주었더니 BOOM!!!이라는 메시지와 함께 실행이 종료되었다. bomblab의 실행파일에는 phase가 6개에 hidden phase까지 총 7개의 단계가 있다고 들었는데 궁금해서 gdb로 들어가서 main함수를 disassamble 해보았다. 사실 더 길지만 phase 1~6까지의 일부를 가..