RTL (Return to Library) 이 기법은 라이브러리의 함수로 리턴해서 그 함수를 실행할 수 있습니다. 때문에 임의로 짠 바이너리에 시스템함수가 없어도 라이브러리의 시스템함수를 호출해서 그 바이너리에 쓸 수 있게 됩니다. 방금 알아 봤듯이 printf, puts, gets, 이런 함수들은 우리가 만든 사용자 함수가 아닌 외부 라이브러리에서 가져와 사용하는 함수들입니다. 가져오는 방법은 plt와 got를 공부하면서 알아봤습니다. 그 중 system 함수를 담고 있는 라이브러리를 찾아 ret 주소에 이 system 함수의 주소로 변조시켜 주는 겁니다. 그러면 ret가 변조된 함수가 리턴될 때 해당 라이브러리를 참조해 system 함수를 실행시킬 수 있게 됩니다. 즉 Dynamic link의 공유 ..
PLT & GOT PLT (Procedure Linkage Table) :외부 프로시저를 연결해주는 테이블. PLT를 통해 다른 라이브러리에 있는 프로시저를 호출해 사용할 수 있습니다. GOT (Global Offset Table) :PLT가 참조하는 테이블.프로시저들의 주소가 들어있습니다. ※프로시저(procedure) : C언어에서 함수와 비슷한 개념으로, 차이점은 함수는 리턴 값을 남기지만 프로시저는 리턴 값을 남기지 않습니다. 쉽게 말해서 함수는 수학적으로도 생각해보면 input값에 의한 output(반환 값)이 반드시 있어야 정의됩니다. 프로시저는 그렇지 않아도 된다는 말이죠. 하지만 요즘은 함수에서 void라는 반환형을 사용하여 리턴 값을 남기지 않도록 사용하기 때문에 딱히 구별하지 않기도 한..
본 글의 목적은 제가 공부한 내용을 바탕으로 정리하면서 저와 같이 공부하시는 분 들을 위함입니다. 때문에 부족한 부분이 있을 수 있고, 잘못된 부분이 있을 수 있습니다. 만약 있을 경우, 생각을 고칠 수 있도록 저에게 알려주시면 정말 감사하겠습니다 !! 세션은 쿠키와 상당히 밀접한 관계입니다. 따라서 서론은 생략하고 정의와 차이점을 시작으로 공부해 보겠습니다. (참고 : Cookie)Session ? 세션도 쿠키와 마찬가지로 http 프로토콜의 약점을 보안하기 위한 방법입니다. 쿠키와 마찬가지로 연결유지를 위한 수단인데,중요한 차이점은, 쿠키는 연결정보를 클라이언트에 저장하는 반면 세션은 서버에 저장합니다.이로인해 둘의 특징이 갈리게 됩니다. ▶ 서버보다는 개인 PC를 사용하는 클라이언트가 해킹당할 위험..
본 글의 목적은 제가 공부한 내용을 바탕으로 정리하면서 저와 같이 공부하시는 분 들을 위함입니다. 때문에 부족한 부분이 있을 수 있고, 잘못된 부분이 있을 수 있습니다. 만약 있을 경우, 생각을 고칠 수 있도록 저에게 알려주시면 정말 감사하겠습니다 !! 리버싱 – Easy_ELF 실행파일 분석 가상 환경 : VMware Workstation 10 OX : Linux-Ubuntu 16.04.02-64bit Setting : echo 0 > /proc/sys/kernel/randomize_va_space (ASLR 해제) sudo dpkg --add-architecture i386 sudo apt-get update sudo apt-get install libc6:i386 libncurses5:i386 li..
본 글의 목적은 제가 공부한 내용을 바탕으로 정리하면서 저와 같이 공부하시는 분 들을 위함입니다. 때문에 부족한 부분이 있을 수 있고, 잘못된 부분이 있을 수 있습니다. 만약 있을 경우, 생각을 고칠 수 있도록 저에게 알려주시면 정말 감사하겠습니다 !! Cookie ?HTTP 프로토콜의 특징중 하나는 클라이언트가 서버에 request를 하면 서버가 여러 작업을 마친뒤, 클라이언트에게 response를 해줍니다. 이렇게 요청과 응답이 한 번 돌면 클라이언트와 서버의 연결에 해지된다는 점입니다. 어떤 웹 사이트의 서버가 있다고 생각해 보면, 그 웹 사이트를 접속하는 클라이언트는 수도 없이 많을 거고, 그 클라이언트들이 서버에 요청하는 것 역시 많겠죠? 따라서 그 연결들을 계속 유지하고 있으면 서버에 상당한 ..
본 글의 목적은 제가 공부한 내용을 바탕으로 정리하면서 저와 같이 공부하시는 분 들을 위함입니다. 때문에 부족한 부분이 있을 수 있고, 잘못된 부분이 있을 수 있습니다. 만약 있을 경우, 생각을 고칠 수 있도록 저에게 알려주시면 정말 감사하겠습니다 !! 가상 환경 : VMware Workstation 10OX : Linux-Ubuntu 16.04.02-64bitSetting : echo 0 > /proc/sys/kernel/randomize_va_space (ASLR 해제)sudo dpkg --add-architecture i386sudo apt-get updatesudo apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386 zlib1g:i386 (6..
본 글의 목적은 제가 공부한 내용을 바탕으로 정리하면서 저와 같이 공부하시는 분 들을 위함입니다. 때문에 부족한 부분이 있을 수 있고, 잘못된 부분이 있을 수 있습니다. 만약 있을 경우, 생각을 고칠 수 있도록 저에게 알려주시면 정말 감사하겠습니다 !! 저번 포스트에서 jsp 파일이나 어플리케이션끼리 데이터를 공유해서 사용하는 방법을 공부해봤는데요, 이번에는 Servlet에서 데이터를 공유해 사용하는 방법을 공부해보겠습니다.그런데 사실 아시다시피 jsp에서 데이터를 공유했던 방법이 jsp가 웹 컨테이너에서 Servlet으로 변환하는 것을 이용해 web.xml에 코드를 추가하고 내장객체를 이용했습니다. (참고 : JSP 내장객체)따라서 Servlet에서는 똑같이 web.xml에 설정을 한 뒤, 이를 가져오..
본 글의 목적은 제가 공부한 내용을 바탕으로 정리하면서 저와 같이 공부하시는 분 들을 위함입니다. 때문에 부족한 부분이 있을 수 있고, 잘못된 부분이 있을 수 있습니다. 만약 있을 경우, 생각을 고칠 수 있도록 저에게 알려주시면 정말 감사하겠습니다 !! JSP 내에는 몇 가지 내장 객체들이 있습니다. 이 내장객체들은 따로 패키지를 import하지 않고, 객체를 만들어 주지 않아도 다양한 메소드들을 사용할 수 있게 해줍니다. 자주 사용하는 내장객체 4가지만 공부해 보겠습니다. Config웹 컨테이너가 생성될 때, c언어의 전역 변수(?)처럼 먼저 초기화하고 싶은 파라미터들을 web.xml에 설정할 수 있습니다. web.xml12345678 servletEx /jspEx.jsp servletEx /jspEx..
- Total
- Today
- Yesterday
- 생활코딩 javascript
- 선형 회귀
- 쉽게 배우는 운영체제
- 패킷 스위칭
- Thymeleaf
- git
- fetch join
- 김영환
- Computer_Networking_A_Top-Down_Approach
- JPA
- 스프링 컨테이너
- Gradle
- git merge
- Spring
- 프로그래머스
- Spring Boot
- 지옥에서 온 git
- 파이썬 for Beginner 연습문제
- git branch
- Python Cookbook
- 쉘 코드
- Spring Data JPA
- jsp
- 스프링 mvc
- 운영체제 반효경
- 파이썬 for Beginner 솔루션
- 방명록 프로젝트
- Do it! 정직하게 코딩하며 배우는 딥러닝 입문
- 스프링 테스트
- 스프링
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |