일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- bomblab
- pwnable
- IDS
- 툴
- mandb
- bomb lab
- 아두이노
- Linux
- phase_2
- Reversing
- phase_3
- 스테가노
- 리눅스
- 밤랩
- phase_4
- 파일
- binarybomb
- phase_5
- gdb
- phase_1
- 침입감지시스템
- 데이터 형태
- reversingg
- phase_6
- 디렉터리
- 명령어
- 서브모터
- 리버싱
- Bomb
- pwntool
- Today
- Total
Flag={C0MPU73R}
(리버싱) 밤랩 bomb - phase_2 본문
#bomb 문제는 phase_1 부터 phase_6까지 6개의 문제로 이루어져있다
#1단계부터 6단계까지 모두 맞춰야 폭탄이 해체되는 형식이다
문제를 실행한다
phase_1은 답을 알았기 때문에 바로 입력해준다
뭔가 또 입력할 수 있게 됬는데 gdb로 분석을 해봐야겠다
<read_six_numbers>라는 함수가 있다
아마 6개의 인자를 숫자로 넣어줘야 하는 것 같다
phase_2의 맨 처음에 break를 걸고 실행해준다
일단 "1 2 3 4 5 6"를 입력해줬다
첫번째 비교하는 곳 까지 왔다
rsp와 0x0을 비교해서 양수(+)면 점프하는 것 같다 #아마 js는 음수(-)면 점프
rsp의 값을 보면 첫번째 인자인 "1"이 들어있다
우린 양수(+)만 입력했기 때문에 통과되어 넘어왔다. 그 다음을 정리해 보면
rsp(인자"1")을 rbp에 넣는다
ebx에 0x1을 넣어준다
ebx(1)를 eax에 넣고 그 다음 eax(1)에 rbp(인자"1")을 더해준다
rbp+0x4(인자"2")와 eax(2)를 비교해서 같으면 넘어간다
rbp+0x4의 값을 보니 두번째 인자 "2"가 들어가 있다
0x4단위로 다음 인자가 들어있는 것 같다
eax(2)와 비교되는 우리의 두번째 인자 rbp+0x4에도 2가 들어있기 때문에
통과되고 다음으로 넘어간다
(eax=2, rbp+0x0=인자"1", ebx=0x1)
다음을 분석 해보면
ebx(0x1)에 0x1을 더한다 -- ebx(0x2)
rbp(인자"1")의 주소에 0x4를 더한다. 즉 다음 인자 값으로 넘어간다
ebx(0x2)와 0x6을 비교해서 같지 않으면 이전으로 점프한다
지금 ebx는 0x2이기 때문에 0x6과 같지 않아서 이전으로 점프한다
(eax=2, rbp+0x0=인자"2", ebx=0x2)
이전으로 돌아와서 다시 분석한다
eax에 ebx(0x2)를 넣는다 -- eax(0x2)
eax(0x2)에 rbp+0x0(인자"2")를 더한다 -- eax(0x4)
세번째 인자 rbp+0x4(인자"3")과 eax(4)를 비교해서 같으면 점프한다
우린 여기서 세번째 인자가 4(eax)가 아니라 틀려서 폭탄이 터진다
세번째 인자를 4로 바꿔넣고 다시 돌려본다
인자 값을 바꾸고 +49로 돌아온 위치까지 왔다
여기서부터 다시 분석해본다
# (eax=2, rbp+0x0=인자"2", ebx=0x2)
eax(2)에 ebx(2)를 넣는다 -- eax(2)
eax(2)에 rbp+0x0(인자"2")를 더한다 -- eax(4)
세번째 인자 rsp+0x4(인자"4")와 eax(4)를 비교해서 같으면 통과한다
이번엔 세번째 인자로 "4"를 넣었더니 통과 되었다
여기까지 보면 두번째 인자에는 (첫번째 인자 + 1)
세번째 인자에는 (두번째 인자 + 2) 해서 통과 되었다
아마 더하는 값이 1씩 늘어나면서 더해지는 것 같다
따라서 처음에 1을 넣었으면 1 2 4 7 11 16
처음에 2를 넣었으면 2 3 5 8 12 17
이런식의 알고리즘 문제같다
이렇게 답을 넣었더니 phase_2가 클리어 되었다
# 원래 끝까지 다 할라했는데 정리를 잘 못해서 너무 길어져서 끝냄 헤헤
'사이버 가디언즈' 카테고리의 다른 글
(리버싱) 밤랩 bomb - phase_1~6 클리어! (1) | 2018.08.27 |
---|---|
(리버싱) 밤랩 bomb - phase_3 (3) | 2018.08.26 |
(리버싱) 밤랩 bomb - phase_1 (0) | 2018.08.22 |
스택과 레지스터 이용 (0) | 2018.08.22 |
리버싱(Reversing) 정보 블로그 (0) | 2018.08.22 |