분류 전체보기
-
Pwnable. 해쿨핸드북 요약 정리 (4차)Pwnable/이론 2020. 1. 2. 04:25
Section 16. 스택을 그리는 세가지 방법 1, 세로로 그리기 2, 세로로 그리되 위 아래를 거꾸로 하는 방법 3, 가로로 그리기(탑 바텀) Section 17. 스택에 저장되는 값들 살펴보기 지역변수, 리턴 어드레스, 함수의 인자들 = 스택 프레임 Section 18. 큐 영역도 알고 넘어가기 선입선출형 구조 (FIFO) Section 19. 리모트 버퍼 오버플로우와 로컬 버퍼 오버 플로우 1단계 : 정보 수집 (해킹 대상에 대한 정보 수집) 2단계 : 리모트어택 (취약점을 이용하여 서버안으로 들어갈 수 있는 접근권한을 획득해내는 과정) 3단계 : 로컬 어택 (현재 자신이 가지고 있는 권한을 최고 관리자 권한으로 상승시키는 공격) 4단계 : 흔적 삭제 (자동로그삭제 툴을 이용하거나 로그 파일을 날..
-
Python. 더하기 사이클(1110번)백준문제/Python 2020. 1. 2. 03:15
어려웠다.. 나는 바보인가보다 이 문제에서 중요한 것은 두자리 수를 한자리씩 더하는 것과 이것을 무한루프를 통해 처음 값이 나왔을때 break를 주는 것이다. (무한루프땜에 너무 힘들었다..) 우선 두자리 수를 한자리로 바꾸는 것에서 / 와 % 연산자를 사용하였다. (이때 / 는 꼭 정수형 int()형으로 받아야 한다. 아니면 소수자리가 나온다.) 십의 자리 수는 / 연산자, 일의 자리 수는 % 연산자를 사용하였다. 무한루프를 멈추기 위해선 맨 마지막에 if 문을 사용하여 break를 해주었다. (계산 값이 정확하지 않으면 계속 무한루프에 갇히게 된다..) / , % 연산자와 무한루프 사용법을 익힐 수 있었다.(어려워..ㅜ)
-
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언어에서 "배열의 이름은 그 배열의 시작 주소와 동일하다"하고 정의 되어 있기 때문) 인자 : "메모리 주소..
-
Python. 크로아티아 알파벳(2941번)백준문제/Python 2019. 12. 26. 20:34
이건 내가 푼게 아니다.. 정말 너무너무 어려웠다.. 이 문제에서 중요한 것은 크로아티아 알파벳이 길이는 2이지만 출력을 1로 해야하는 것이다. (어려웠다,,나는 너무 많이) 우선 크로아티아 알파벳을 리스트로 만들어놓았다. 그리고 str 형식으로 문자를 입력 받았다. 크로아티아 알파벳의 길이를 세기 위해 replace(word,change w)함수를 사용하여 크로아티아 알파벳을 word로 두고 크로아티아 알파벳의 출력을 1로 하기 위해서 a라는 임의의 문자로 바꾸어주었다. 입력받은 문자열의 길이 len()함수를 사용하여 출력하면 된다. 여기서 i의 역할이 가장 중요하다! (i의 역할을 이해하는것이 중요)