일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- forensics
- cryptography
- 카이사르
- WEB
- 리눅스
- picoCTF2018
- picoCTF
- dreamhack
- #picoCTF2018
- write up
- 정답
- Hxd
- CTF
- 버퍼오버플로우
- 시스템해킹
- 해킹 공부
- 리버싱
- 번역
- general skills
- Protostar
- reversing
- 해설
- 시스템
- Aleph One
- #hacking
- grep
- KOISTUDY
- 스택
- writeup
- Smashing The Stack For Fun And Profit
Archives
- Today
- Total
목록stack1 (1)
Security || AI
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/nylvK/btqR9lzobtW/m47yL2rKQKYpYBNlfOMxy1/img.png)
gdb를 사용하여 디스어셈블리를 진행한 결과 위와 같이 나온다. 해당 문제는 argument를 사용하여 값을 입력 받는다. ex) ./stack1 AAAA 그러므로 argument의 주소를 확인해보면 main+71에서 eax와 ABCD를 검증하는 것을 확인할 수 있는데, 이때, eax는 esp+0x5c이 되므로 esp+0x5c의 값을 abcd로 바꾸어야 한다. 참고로 현재 esp+0x5c에는 를 통해 0이 들어있는 것을 확인할 수 있다. 해당 함수를 보면 argv[1]의 주소인 esp+0xc를 strcpy에 저장될 변수인 0x1c에 주소를 저장하게 된다. 그러므로, 0x5c-0x1c = 0x40이 되며, 64byte만큼 버퍼를 채운 후, 뒤를 abcd로 채우면 된다. buffer (64byte) 0x61..
워게임(wargame)/Protostar
2021. 1. 4. 15:47