일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 우아한테크코스5기
- Mock
- 검색api
- 스프링 롬복
- 벌크연산
- @Param
- 우분투
- @Query
- unique result
- 스프링부트배포
- 우테코
- 우아한테크코스
- 배포스크립트
- 회고
- SpringDataJPA
- clearAutomatically
- ubuntu
- 우아한테크코스 블랙잭
- 영속성컨텍스트
- 밤랩
- ubuntu이미지
- BDDMockito
- 레벨인터뷰
- 자바 롬복
- @Modifying
- jpa
- Argos
- NonUniqueResultException
- docker에 ubuntu
- bomblab
- Today
- Total
목록System/ProtoStar (2)
Jeomxon's Tech Note
이번 실습을 통하여 원하는 스택에 접근하여 값을 바꾸는 행위를 해보려고 한다. 먼저 stack1.c의 코드를 보자 gedit을 통해서 stack1.c를 보았다. 사실 이전의 다른 변수 덮어씌우기랑 다른 점은 argument를 1개 받으면 error메시지를 출력하도록 작성되어있는 코드라는 점이다. 따라서 실행을 할 때 단순히 "./실행파일명" 만 입력할 것이 아니라 "./실행파일명 다음전달해줄인자"의 형식으로 작성해 주어야하는 것이 옳다. 위 코드도 gcc -z execstack -no-pie -w -o stack1 stack1.c 위의 gcc 명령어로 컴파일 해준다. 그리고 코드를 보면 알 수 있듯 if문의 조건이 현재 0으로 초기화 되어있는 modified의 값을 조작하여 0x61626364로 만들어 ..
이번에 해볼 것은 간단한 변수를 덮어씌우는 시스템에서의 조작이다. 칼리 리눅스를 통해서 진행을 하였다. 먼저 코드를 보자. 여기서 보면 ret - ebp - modified - buffer 순으로 스택이 쌓여감을 알 수 있는데 그 이유는 ret ebp 이후 먼저 modified가 선언이 되었고, 그 후에 buffer가 64만큼의 공간이 할당되었기 때문이다. 그리고 위 코드에서 조건문을 보면 if문의 조건이 0이 아니라면 "you have changed the 'modified' variable"이라는 문구를 얻을 수 있는데 위를 얻기 위해서는 modified라는 변수가 조작이 되어야함을 알 수 있다. 따라서 modified라는 변수를 덮어씌우기 위해서는 먼저 gets로 받는 부분에서 buffer을 넘어서..