-
[SISS/시스템 스터디] 여름 7주차 스터디 - phase 524-여름 SISS/시스템 2024. 8. 17. 19:30
여름 7주차 스터디 - phase 5 : 7주차(08.12.~08.18.) [Stack Buffer Overflow]함께 실습 phase_5 4.pdf 1
[Stack Buffer Overflow] 함께 실습
(저번 주에 모르고 해버림)
→ https://ultrafinedust22.tistory.com/48
Bomb Lab - phase_5
더보기// 지난 정답
Border relations with Canada have never been better.
1 2 4 8 16 32
2 707
7 0- disass phase_5
- <+17>: rax에 읽은 값 저장
- <+24>, <+29>, <+32>: eax에 저장된 문자열의 길이와 6을 비교하여 6일 경우 <+112>로 점프
- <+112>, <+117>: eax를 0으로 초기화 후 <+41>로 복귀
- <+41>, <+48>: rax번째 인덱스(idx = 0)의 문자를 ecx에 저장하여 rdx로 불러옴
- <+66>, <+74>: rax(idx)값을 1 증가시켜 6이 되지 않았을 경우 <+41>로 돌아가 반복
- <+52>: edx와 15(2진수 1111)를 AND 하여 불러온 문자의 하위 4비트만 남김
- <+55>: 외부 테이블(rdx(하위 4비트)+0x4024b0 위치의 값)을 이용하여 구한 값을 edx에 저장
- <+91>, <+96>: eax가 0이면 두 문자열이 같아 <+119>로 이동
- strings_not_equal 직전에 중단점 설정 후 레지스터 확인 → 변환 값이 flyers가 되어야함
- 테이블 확인 → (0x4024b0~) m, a, d, u, i, e, r, s, n, f, o, t, v, b, y, l → 하위 4비트가 9, 15, 14, 5, 6, 7이 되는 문자를 입력하면 됨 → 9_.567
// strings_not_equal 직전에 중단점 설정 break *0x00000000004010b8 run ... (abcdef 입력) // 레지스터 확인 x/s $rdi x/s $rsi
// 중단점 설정 break *0x40108b run ... // 테이블 확인 x/16xb 0x4024b0
disass phase_5, 레지스터 확인, 테이블 확인, 하위 4비트에 따른 문자 - 입력
phase 5 더보기Border relations with Canada have never been better.
1 2 4 8 16 32
2 707
7 0
9_.567
'24-여름 SISS > 시스템' 카테고리의 다른 글
[SISS/시스템 스터디] 여름 8주차 스터디 - phase 6 (0) 2024.08.18 [SISS/시스템 스터디] 여름 6주차 스터디 - 스택 버퍼 오버플로우, phase 4 (0) 2024.08.10 - disass phase_5