Pwnable
-
Pwnable. 해쿨핸드북 요약 정리 (3차)Pwnable/이론 2020. 1. 1. 03:11
Section 10. 메모리를 Hex dump 뜨기 메모리에 저장된 값들을 살펴보는 방법 Windows 에서 hex editor 는 바이너리 파일을 16진수(hex)로 보여주는 프로그램이다. 현재 실행 중인 메모리의 주소와 값을 16진수롤 출력하는 방법 1, 디버거라는 툴을 이용하여 동적 메모리를 분석하는 방법 2, 메모리의 주소를 출력하는 코드를 소스코드에 추가하는 방법 void dumpcode(unsigned char *buff,int len); (buff엔 dump하고자 하는 메모리의 시작주소, len엔 dump 할 크키를 지정) Section 11. 리틀엔디안과 빅엔디안 리틀엔디안(Little Endian) : 메모리에 저장된 값을 dump 할 때, 순서가 반대로 나타나는 특징 빅엔디안 : 왼쪽에..
-
Pwnable. 해쿨핸드북 요약 정리 (2차)Pwnable/이론 2019. 12. 31. 02:37
Section 04. "메모리 주소"와 친해지기 우리가 사용하는 변수(버퍼)들이 모두 내부적으로는 메모리 주소를 통해서 접근된다 "변수는 삼겹살이다" (해당하는 정보가 3겹) 주소(&연산자),크기(sizeof),값 Section 05. 각 변수의 메모리 주소 비교해보기 나중에 선언된 변수는 낮은 주소를 받게 된다. Section 06. gets() 함수 이해하기 gets() : "키보드로부터 문자열을 입력받아 버퍼에 저장" 하는 함수 이때 하나의 인자를 요구 하는데, 그것은 입력받은 갑을 저장할 버퍼이다. 버퍼란 사실 &burffer 와 동일하다. 즉 burffer 배열 변수의 시작 주소이다. (c언어에서 "배열의 이름은 그 배열의 시작 주소와 동일하다"하고 정의 되어 있기 때문) 인자 : "메모리 주소..
-
Pwnable. 해쿨핸드북 요약 정리 (1차)Pwnable/이론 2019. 12. 23. 00:29
이 책의 목표를 이해 할 수 있게끔 노력해보자. 컴파일 - 원시코드(소스코드)에서 목적 코드(출력된 문서)로 옮기는 과정 변수와 상수 - 변수 : 데이터를 저장할 수 있는 메모리 공간 상수 : 사용자가 한번 정해지면 값을 변경할 수 없는 변수 또는 값 함수 - 소프트웨어에서 특정 동작을 수행하는 일정 코드 부분을 의미함 배열과 포인터 - 배열 : 연관성 는자료를 한가지 자료형으로 연결시킨 것 포인터 : 변수의 주소값을 저장 Section 01. 프로그램을 공격한다!? 버퍼 오버플로우 (메모리를 다루는 데에 오류가 발생하여 잘못된 동작을 하는 프로그램 취약점) 버퍼 오버플로우 공격의 대상 특징 : 사용자로부터 입력을 받는 프로그램의 실행결과가 달라지는 점을 노렸다! 비정상적인(아주 긴) 내용을 입력하면 프..