| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
Tags
- 악성코드 분석
- top-cert
- 루키즈 31기
- 알고리즘
- 레나튜토리얼
- 위상 정렬
- React
- 웹개발
- Practical Malware Analysis Labs
- 리버싱
- sk 쉴더스 루키즈 31기
- 우아한테크코스
- webhacking
- 루키즈31기
- sk쉴더스 루키즈
- sk 쉴더스
- 루키즈
- 백엔드
- c
- 동적분석
- linux
- Dreamhack
- 깃
- 프리코스
- 우테코
- SK쉴더스루키즈
- 예술의 전당
- 레나 튜토리얼
- sk 쉴더스 루키즈
- 자바
Archives
- Today
- Total
목록2026/07/09 (1)
yon11b
0. 전체 요약이 문제는 read()에서 발생하는 스택 오버플로우를 이용해 return address를 덮고, syscall; ret 가젯으로 rt_sigreturn을 강제로 호출하는 문제다. 핵심은 read()의 반환값이 rax에 저장된다는 점이다.read(0, buf, 296);두 번째 read()에 15바이트만 입력하면 read()의 반환값이 15가 된다.read return = 15→ rax = 15x86-64 Linux에서 syscall 번호 15는 rt_sigreturn이다.따라서 다음 상태를 만들면 SROP가 가능하다.rax = 15rip = syscall_gadget그러면 syscall이 실행되면서 rt_sigreturn이 호출되고, 커널은 현재 rsp가 가리키는 fake frame을 읽어..
보안/포너블
2026. 7. 9. 14:14