분류 전체보기 289

Shell 실행 함수 종류

execl() int execl(const char *path, const char *arg0, ..., const char *argn, (char *)0); 디렉토리와 파일 이름이 합쳐진 절대 경로로써 파일 이름을 입력해 주어야 한다. 그리고 argv[n]의 값을 수정할 수 있다. e.g. execl("/bin/sh", "/bin/sh", NULL); execle() int execle( const char *path, const char *arg ,..., char * const envp[]); execl()과 같지만 환경변수까지 설정할 수 있는 함수이다. 다른건 execl()과 같음. execlp() int execlp( const char *file, const char *arg, ...); 환경..

시스템 콜 (System Call)

시스템 콜이란? 응용 프로그램에서 OS에게 "이것좀 처리해주세요" 하면서 부르는 것. 즉, 커널에서 사용자에게 제공하는 함수를 호출하라 이런 기능으로 쓰이는 것이다. 시스템 콜을 활용하면 굳이 로우레벨 언어에 대한 이해가 없더라도 손쉽게 프로그래밍을 할 수 있다. (그래서 지금 우리처럼 고급언어로만 코딩을 하는 시대에 이르렀지..) 소프트웨어 인터럽트에는 고유한 번호가 존재한다. 커널에서 시스템콜의 기능에 따라 구분짓기 위해 고유하게 붙여놓은 번호인데, 커널은 이 번호를 보고 그에 따른 서비스 루틴을 수행한다. 시스템 콜은 "소프트웨어 인터럽트"의 한 종류이다. 위에서 설명한 기능별로 구분지은 고유번호는 IDT(Interrupt Descriptor Table)이라는 곳에 저장된다. 인터럽트가 일어나면, ..

리눅스 find 명령어 활용

리눅스에서 파일/디렉토리를 찾는 명령어이다. 굉장히 자주 쓰이고 기능도 많은 유용한 명령어이다. 자주쓰는 옵션에 대해 익혀두면 사용하는데 편하다. find 문법 : find [경로] [-옵션] [옵션 내용] ex) find / -perm +6000 ( / 경로 아래로 suid나 sgid가 둘 중 하나라도 걸린 모든 파일을 찾는다.) 아래는 find 플래그 옵션들이다. *************************************************************************************** -name : 파일명으로 탐색한다. -perm : 파일의 권한으로 탐색한다. [- ] : 설정된 권한의 모든 것이 설정된 파일을 찾는 것 [+ ] : 설정된 권한 중 하나라도 설정된 파..

SFX (Self-extracting file) Archive

SFX 아카이브는 자체 압축 풀림, 자동 압축 풀림을 의미하는 것이다. WinRar, WinZip, 알집 같이 압축 프로그램도 있지만 SFX 아카이브는 그냥 압축 해제가 가능하다. 윈도우에서는 exe파일 형태로, 실행하면 압축이 풀리게끔 SFX 기능을 지원하고 있다. SFX를 언급한이유는.. 이게 자동 실행 압축 풀림이니까 실행시에 압축이 풀리면서 악성코드가 실행될 수 있다는 점이다. 이 파일을 실행하게 되면 사용자의 동의 없이 폴더를 생성하고 자료파일을 저장하게 되므로. 이 동작이 악의적이라면 이건 뭐 악성코드라고 부르는 거다. 그럼 tight VNC의 소스를 일부부 수정한 프로그램을 이용하여 백도어를 한번 만들어보겠다. tight VNC는 알다시피 ( 철저하게 내 기준ㅋ.. 모르면 검색하셈) 원격 접..

리눅스 서버 구동 과정

. 데몬이란? 일종의 윈도우에서 '서비스' 이라고 보면 된다. 커널 상에서 항상 백그라운드로 실행되어 비활성화 상태로 있다가 사용자가 요청할 때만 동작하는 프로세스라고 보면 된다. 원할하게 리눅스 서버를 관리하기 위해서는 데몬을 적절하게 활용하여야 한다. inetd를 관리하는 파일은 inetd.conp 이다. #ps acx 를 통해 실행중인 데몬을 확인할 수 있다. 2. 슈퍼데몬이란? - 앞서 도입한 데몬을 관리하는 대장(?)격으로 보면 된다. 슈퍼데몬을 xinetd 데몬이라고 칭한다. 기존에는 inetd 데몬을 슈퍼데몬으로 사용하였는데, 리소스 관리가 비효율적이고 보안 기능이 없어서 xinetd가 나왔다. xinetd는 TCP Wrapper라는 필터링 기능도 갖고 있다. xinetd를 관리하는 파일은 ..

리눅스 파일시스템 종류

*리눅스 파일 시스템의 종류 및 특징 크게 인지해야할 부분은 없다. [ ext ] -> [ ext2 ] -> [ ext3 ] -> [ ext4 ] 발전 과정은 이런 순서로 이루어 지고, 우리가 현재 사용하고 있는 Linux의 파일 시스템은 ext4 이다. ext : 초기 리눅스에서 사용되었다. 지금은 당연히 안씀. ext2 : ext의 버전업 된 파일 시스템. 긴 파일명을 지원하는 것이 특징. 당연히 지금 안씀. ext3 : 저널링 파일 시스템으로 이전 버전에 비해서 복구 기능과 보안 부분이 크게 향상 되었다. 하지만 이것도 지금은 안씀 ext4 : ext3의 버전업 된 파일 시스템. 지금 우리가 사용하고 있는 리눅스 표준 파일 시스템이다. 16TB까지만 지원이 가능했던 ext3에 비해 훨씬 큰 용량을 ..

nc (netcat)

usage: nc [options] [target host] [ports] -n : 호스트 네임과 포트를 숫자로만 입력받는다. -v : verbosity 를 증가 시킨다. 더 많은 정보를 얻을수 있다. -o [filename]: 보내거나 받은 데이터를 헥스덤프하여 파일에 저장한다. -u : TCP connection 대신에 UDP connection 이 이루어 진다. -p [port number or name]: local-port 를 지정한다. 주로 -l 과 같이 사용하게 된다. -s [ip address or DNS]: local ip address 를 지정한다. 모든 플렛폼에서 지원되지는 않는다. -l : listen 모드로 nc을 띠우게 된다. 당연히 target host는 입력하지 않는다. -p..

디스크 가용공간 관리

파일시스템에서 디스크의 가용공간(free space)를 관리하기 위한 여러가지 방법이 존재한다. 한번 알아봅시다. 1. 비트벡터 (Bit vector) 이녀석은 디스크 블록마다 1개의 비트를 할당하여 관리하는 것이다. 1이면 블록에 데이터가 사용중, 0이면 가용. - 장점 : 관리가 편함 / 연속적인 n개의 가용블록 찾는데 효과적 - 단점 : 오버헤드가 크다. 디스크 용량이 클수록 부적격 2. 연결리스트 가용한 디스크블록이 모두 한줄에 링크됨. 자료구조의 링크드리스트와 똑같지 가용한 블록들은 자기랑 똑같은 구조를 가진 블록의 포인터를 갖고있다. - 단점 : 가용한 블록이 n개면 n번 디스크를 읽어야 한다. 3. 그룹핑 연결리스트에서 확장된 방법. 연결리스트의 블록들은 각자 n개의 또다른 가용블록 주소를 ..

BIOS (Basic Input/Output System)

BIOS는 쉽게 얘기해서 PC 주변장치들 즉, 하드웨어 기기들을 제어하는 기능을 제공하는 시스템이다. 보통 부팅이 시작될 때 F2, F3, F9, F10, DEL키를 연타로 갈겨서 접근한다. (PC 메인보드 제조 브랜드 별로 다른데, 보통 F9나 DEL키 갈기면 뜨더라) ​ BIOS에 대해 알아보기 전에 .. 자주 혼동되는 CMOS와의 차이점을 알아보고 가자. CMOS (Complementary metal-oxide semiconductor) 와 BIOS는 어떤 차이점이 있나? CMOS라는 명칭은 원래 전자 부품을 만드는 "기술"의 이름이다. A 라는 Chip(칩)이 CMOS 방식으로 제작되었다. 이런 느낌이다. 메인보드에 보면 CMOS Chip 이라 불리는 RTC(Real-time Clock)/NVRA..

반응형