일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- react
- DoM
- data structure
- Pipelining
- Algorithm
- architecture
- XML
- html
- computer
- Java
- Class
- CSS
- MacOS
- github
- php
- web
- instruction
- mysql
- MIPS
- Linux
- for
- DB
- system
- python
- while
- DATAPATH
- control
- DS
- javascript
- function
- Today
- Total
목록Linux (20)
YYYEJI
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/RIGMt/btrMWei9KAv/8jkMyrL54FvZI7h2Yo2AQ1/img.jpg)
리눅스는 사용자가 여러 명이기 때문에 여러 명의 사용자가 같은 시스템을 작업하더라도 다른 사람의 파일을 복사해 가거나 마음대로 수정하고 삭제할 수 없도록 보안 기능을 제공합니다. 즉, 사용자는 자신의 파일과 디렉터리 중에서 다른 사용자가 접근을 구분하여 접근 권한을 제한할 수 있습니다. 파일에 대해서 알아보아요 ୧ °‿° ୨ 파일의 속성 번호 속성 값 의미 1 - 파일의 종류( -: 일반 파일, d: 디렉토리 ) 2 rw-r--r-- 파일을 읽고 쓰고 실행할 수 있는 접근 권한 표시 3 1 하드 링크의 개수 4 root 파일 소유자의 로그인 ID 5 wheel 파일 소유자의 그룹 이름 6 664 파일의 크기(바이트 단위) 7 Jul 11 10:23 파일이 마지막으로 수정된 날짜와 시간 8 /etc/hos..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/beWiks/btrH0t7zl3C/TPZCdcBahrRBmFPpRDTk8K/img.png)
쉘(Shell)이란? 쉘은 사용자와 리눅스 커널 사이에서 중간자 역할을 수행을 한다고 볼 수 있습니다. 쉘(Shell)의 기능은? 1. 명령어 해석기 기능 (사용자와 커널 사이에서 명령을 해석하여 전달하는 해석기(interpreter)와 (translator) 기능) 2. 프로그래밍 기능 (쉘 자체 내에 프로그래밍 기능이 있어서 프로그램을 만들 수 있다.) 3. 사용자 환경 설정 기능 (사용자 환경을 설정할 수 있도록 초기화 파일 기능을 제공) 쉘(Shell)의 종류 dd쉘들은 일반적으로 명령을 입력하고 실행하는 기능이 비슷하지만 에일리어스 설정이라 초기화 파일, 스크립트를 작성하는 문법 등에 차이가 조금 있습니다. 1. Bourne Shell (본 쉘) - 단순하고 처리 속도가 빨라서 많이 사용되었으며..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/pjHY0/btrHZq3BMbc/1sXP8RScyNiji8sAcNqhA1/img.png)
UAF 프로그램이 실행되면 실행에 필요한 정보들이 Memory 영역에 올라가게 되는데 Code영역, Data영역, Stack영역, Heap영역이 있습니다. Code영역 - 프로그램의 컴파일된 기계어 코드가 올라가는 곳 Data영역 - Global variable과 Static variable이 할당되는 곳 Stack영역 - Local variable과 Parameter가 저장되는 곳 Heap영역 - 빈 공간으로 필요에 따라 동적으로 메모리를 할당/해제하는 곳 Use After Free 줄여서 UAF라 부릅니다. Heap 영역에서 할당된 공간(malloc)을 free로 영역을 해제하고, 메모리를 다시 할당시 같은 공간을 재사용 하면서 생기는 취약점입니다. ◡̈
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bgMMwJ/btrHTrPXzgV/rBeZjt9UGkwl5dZPtCMzs0/img.png)
리눅스를 사용하게 되면 패키지를 관리해야 하는데 관리를 쉽게 도와주는 tool이 있습니다. apt-get / get(advanced package tool) - 데미안 or Ubuntu 에서 사용합니다. yum(Hello dog updater, modified) - 레드헷 or CentOS에서 사용합니다. 동작 RedHat or CentOS Debian or Ubuntu 패키지 설치 yum install 패키지명 apt install 패키지명 apt-get install 패키지명 패키지 제거 yum remove 패키지명 apt remove 패키지명 apt-get remove 패키지명 업데이트 확인 yum check-update apt-get -s upgrade (패키지 업그레이드) apt-get upda..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/dqGf4V/btrHEeP8gRn/41ObuKqs7VUIFx0HK1Ke8k/img.gif)
gdb는 디버깅(Debugging)을 목적으로 프로그램 내부의 상황을 알 수 있게 해주는 디버거(Debugger)입니다. 우선 gdb를 실습하기 전에 도커를 다운 받아주세요! [Docker] MacOS에서 Docker 시작하기 Docker(도커)란? 컨테이너 기반의 오프소스 가상화 플랫폼이다. Image(이미지)란? 컨테이너 실행에 필요한 파일과 설정값등을 포함하고 있는 것이다. 상태값을 가지지 않고 변하지 않는다. Container( yyyeji.tistory.com 도커가 다운이 되었다면 바로 시작하도록 하겠습니다! 아래 명령어를 통해 도커 계정에 로그인합니다. $ docker run -it —name bufferoverflow ubuntu:20.04 /bin/bash 아래 명령어를 하나씩 입력해서 ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/dSbmAK/btrHDBqaSSA/iCT4cD6VlxfSV8YMJWKjAK/img.png)
리눅스도 다른 운영체제처럼 파일을 작성하거나 수정하기 위한 편집기가 필요합니다. 다양한 편집기 중에서 오늘은 vi에 대해 알아보겠습니다. vim/vi에 대해 조금만 더 설명을 해드리겠습니다. vi은 명령이 매우 단순하여 빠르게 편집할 수 있어서 널리 사용되는 화면 단위 편집기입니다. 글자를 입력하고 수정하는 방법이 일반 GUI 편집기와는 다르기 때문에 다소 불편하실 수 있습니다. 밑에 나오는 설명을 통해서 조금이라도 vim/vi에 익숙해졌으면 좋겠습니다. vim/vi 주요 모드에는 3가지가 있습니다. 입력 모드(insert mode) - 입력한 키를 내용으로 처리하는 모드 시각 모드(visual mode) - 입력한 키를 명령으로 해석하는 모드 마지막 행 모드(command mode)..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/m4Wah/btrHsEPvDvL/4sjzeEljyzH4l6Fo3RBvhK/img.png)
cat - 파일 내용 출력 $ cat etc/hosts -n 행 번호를 붙여서 출력 more - 파일 내용을 화면 단위로 출력 $ more /etc/services Space bar - 누르면 다음 화면 출력 Enter - 누르면 한 줄씩 스크롤됨 ./문자열 - 해당 문자열을 찾아 이동 q - more 명령어 종료 less - 파일 내용을 화면 단위로 출력 $ less /etc/services j - 한 줄씩 다음 행으로 스크롤됨 k - 한 줄씩 이전 행으로 스크롤됨 Space bar, Ctrl + f - 다음 화면으로 이동 Ctrl + b - 이전 화면으로 이동 tail - 파일 뒷부분의 몇 행을 출력 $ tail /etc/services +행 번호 지정한 행부터 끝까지 출력..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/b2dq6m/btrHrNFT87c/fX1zDoakvyCdO11RevnoGK/img.png)
pwd(print working directory) - 현재 디렉터리를 확인 $ pwd cd(change directory) [directory_name] - 지정한 디렉터리로 이동 $ cd Desktop ls(list) - 디렉터리의 내용 출력 $ ls -a 숨김 파일을 포함하여 모든 파일의 목록을 출력 -d 디렉터리 자체의 정보를 출력 -i 첫 번재 행의 inode 번호를 출력 -l 파일의 상세 정보를 출력 -A .(마침표)와 ..(마침표 두 개)를 제외한 모든 파일의 목록을 출력 -F 파일의 종류를 표시 (* - 실행파일, / - 디렉터리, @-심벌릭 링크) -L 심벌릭 링크 파일의 경우 원본 파일의 정보를 출력 -R 하위 디렉터리의 목록까지 출력 (recursive) -al 숨..