orw run_sh 분석

- 작성했던 쉘코드 실행 부분에 breakpoint를 걸고 실행 한 사진

- run_sh+12까지 실행하고 나면 0x7fffffffe0b8에 /tmp/flag가 push 된 것을 확인 할 수 있음
syscall(open)

- 첫번째 syscall(open)에 bp걸고 인자 확인 file:/tmp/flag / syscall:open


- rax의 값이 이상해서 확인해보니 -2가 나옴. 생각해보니 파일을 안만들어서 그런것 같음. 파일이 없을때 return -2 하나 봄

- 경로에 다시 파일 만들어주고 return 값 확인하니 3 나옴
syscall(read)

- run_sh+55에 bp 걸고 실행
- fd:/tmp/flag
- buf: 0x7fffffffe088 ~ 0x7fffffffe0b7(run_sh+37에서 0x30만큼 만들어 줌)

- 실행하고 나면 지정해줬던 버퍼 RSI에 /tmp/flag를 불러와 저장해놓은 것을 볼수 있음

syscall(write)

- run_sh+71에 bp 걸고 실행
- fd: 0x1
- buf: 0x7fffffffe088 : 읽어온 버퍼
- n: 0x30 :버퍼 크기

- 출력됬는데 뒤에 이상한 값이 따라서 나옴
- \n 개행문자 안넣어줘서 그런 것으로 추정 -> 내일 다시 자세히 알아보자 -> null 연산자 안넣어줘서 그럼