공부/이모저모 22

Ubuntu 환경변수 총정리 (/etc/profile vs .profile vs /etc/zsh vs .zshrc)

환경변수란 환경변수란 말그대로 변수다. 근데 이제 OS에서 실행되는 소프트웨어가 참조하기위한 변수인데 핵심은 OS에서 실행되는 소프트웨어가 무엇인가? 인데 우분투의 경우 bash, zsh 윈도우의 경우 cmd 이다. 즉, 환경변수란 bash와 같은 커맨드 쉘이 참조하기 위한 변수라고 생각하면된다. 환경변수 예시 위에서 이야기한 것처럼 OS에서 실행되는 프로그램인 bash에서는 환경변수를 참조할 수 있다. Ubuntu에서 홈 디렉토리에 있는 .profile 파일을 열어서 맨 마지막 줄에 export TEST=1103 과 같이 입력하면 TEST라는 이름의 환경변수를 등록하고 그 값으로 1103을 설정한다는 뜻이다. 한번 환경변수를 확인하고 값을 출력해보면 다음과 같다. source .profile은 변경된 ..

공부/이모저모 2022.09.08

오버플로우(Overflow) 관련 비슷한 용어 정리

오버플로우(Overflow) : 정해진 영역을 벗어나는 현상 인티져 오버(언더)플로우(integer over/underflow) : 값이 잘려서 의도하지 않은 값이 들어갈 수 있음. 반복문 우회 버퍼 오버플로우(buffer overflow) : 정해진 버퍼 크기를 넘어서 값이 들어감. 값이 잘리지 않음. 스택 오버플로우(stack overflow) : 정해진 스택의 크기를 넘어서 값이 들어감. 힙 오버플로우(heap overflow) : 정해진 힙의 크기를 넘어서 값이 들어감. 스택 버퍼 오버플로우(stack buffer overflow) : 스택 영역에 있는 버퍼가 정해진 크기를 넘어서 값이 들어감. 힙 버퍼 오버플로우(heap buffer overflow) : 힙 영역에 있는 버퍼가 정해진 크기를 넘..

공부/이모저모 2022.02.11

diff란? - 컴퓨터 파일 비교 유틸리티

https://ko.wikipedia.org/wiki/Diff diff - 위키백과, 우리 모두의 백과사전 컴퓨터에서 diff는 두 개의 파일 간 차이에 대한 정보를 출력하는 파일 비교 유틸리티이다. 일반적으로 하나의 파일 버전과 동일한 파일의 다른 버전 간의 변경 사항을 보여주는 데 쓰인다. diff는 ko.wikipedia.org 컴퓨터에서 diff는 두 개의 파일 간 차이에 대한 정보를 출력하는 파일 비교 유틸리티이다. 일반적으로 하나의 파일 버전과 동일한 파일의 다른 버전 간의 변경 사항을 보여주는 데 쓰인다. diff는 문서 파일의 줄 사이 변경 사항을 보여준다. https://sourceware.org/git/?p=glibc.git;a=blobdiff;f=malloc/malloc.c;h=80c..

공부/이모저모 2022.02.10

C언어 배열 시작주소에 연산 (arr+1) 해석

#include #define R 10 #define C 5 int main() { int(*p)[R][C]; //5*10=50개의 배열을 갖는 하나의 포인터 p선언. int arr[10][5]; printf("%p\n", arr); //arr는 int[10][5] printf("%p\n", arr+1); //arr+1은 int[5]를 가리키는 포인터 int[5]* 포인터의 요소가 int[5]일뿐. //int arr[3] 하고 arr+1이 int를 가리키는 포인터라는 것과 같은 이유 printf("%d\n", sizeof(arr)); //arr의 크기는 int[10][5] 배열의 크기 4*5*10 printf("%d\n", sizeof(arr+1)); //arr+1의 크기는 int[5]를 가리키는 포인터..

공부/이모저모 2021.10.19

C언어 배열이름에 &붙이는 경우(&배열이름??)

#include int main() { int a = 3; //&(변수) -> 변수가 있는 주소 int arr[2] = { 1,2 }; printf("%p ", &arr+3); //BASEADD+24 printf("%p ", arr+1); //BASEADD+4 //두 값의 차이는 십진수 20 return 0; } &arr+3과 arr+1의 주소 값 차이는 십진수 20이 날 것이다. 실제로 전자 : 0x9f5c3afbe0 후자 : 0x9f5c3afbcc 가 나와서 주소 값의 차이는 0x14 (십진수 20)이 나온다!! arr = &arr[0]의 값을 가리키고 있는 포인터 arr[0] -> int &arr[0] -> int * arr+1 일때 1의 의미는 int의 바이트 수 (4) &arr = arr배열의 ..

공부/이모저모 2021.10.19

주요 포트번호 및 서비스 정리 (FTP,HTTP,SSH,텔넷,SMTP...)

포트 번호 서비스 이름 설명 20 FTP(data) FTP는 File Transfer Protocol의 약자로 TCP/IP 프로토콜을 이용해 서버와 클라이언트 사이의 파일 전송을 위한 프로토콜이다. 21 FTP(제어) FTP에서 사용자 인증, 명령을 위한 연결이 만들어진다. 22 SSH SSH는 Secure SHell의 약자로 네트워크 상의 다른 컴퓨터에 로그인하거나 원격 시스템에서 명령을 실행하고 다른 시스템으로 파일을 복사할 수 있도록 해주는 서비스를 나타낸다. 강력한 인증과 암호화 통신을 위해 기존의 텔넷같은 서비스를 대체하여 만들어졌다. 23 텔넷 원격 접속 서비스이다. 특정 사용자가 네트워크를 통해 다른 컴퓨터에 연결하여 그 컴퓨터에서 제공하는 서비스를 받을 수 있도록 하는 인터넷 표준 프로토콜..

공부/이모저모 2021.10.01

정규 표현식 (Regular Expression)

정규 표현식은 특정 규칙을 가진 문자열의 집합을 표현하는 형식적 언어이다. 특정한 패턴을 가진 문자열을 탐색할때 주로 이용하며, 대표적으로 IDS나 방화벽에서 특정 패턴을 탐지하는 정책을 설정할때 많이 사용한다. https://regexr.com RegExr: Learn, Build, & Test RegEx RegExr is an online tool to learn, build, & test Regular Expressions (RegEx / RegExp). regexr.com 위의 사이트에서 정규표현식을 입력해보며 탐지가 잘 되는지 확인할 수 있다. 1. ^[문자] [문자]로 시작하는 문자열 탐색 ex) ^abc => abc123, abc234, abc567 (탐지됨) / 1abc (탐지안됨) 2. ..

공부/이모저모 2021.09.17
728x90