CS/소프트웨어보안

5-2. 리눅스 사용

arsenic-dev 2025. 10. 17. 13:23

경희대학교 장대희 교수님의 소프트웨어보안 수업을 기반으로 정리한 글입니다.

 

FD(File Descriptor)

리눅스, 유닉스 등에서 프로세스가 파일, 소켓, 파이프 등 시스템 자원에 접근하기 위해 운영체제로부터 할당받는 정수값

 

표준

  • 0: 표준 입력(Standard Input, STDIN)
  • 1: 표준 출력(Standard Output, STDOUT0
  • 2: 표준 오류(Standard Error, STDERR)

 

현재 쉘 FD 확인

dev/pts/0 <- 여기서 0은 가상 터미널의 인덱스 번호

 

-la: long format(자세히), all(모두)

proc: 커널이 제공하는 가상 프로세스 정보 디렉토리

$$: 현재 쉘의 프로세스 ID

fd: 해당 프로세스의 파일 디스크립터 목록

 

비어있는 3번에 fd 새로 생성

 

리다이렉트

리다이렉션 문법

문법 의미
> 또는 1> 표준 출력(stdout)을 파일로 보냄
2> 표준 에러(stderr)를 파일로 보냄
< 표준 입력(stdin)을 파일에서 읽음
>> (append) 기존 파일 끝에 추가로 기록
2>$1 표준 에러(2)를 표준 출력(1)으로 합침

 

stdout 리다이렉트

 

stderr 리다이렉트 2>

/dev/null: 리눅스의 쓰레기통

 

stdout과 stderr를 파일로 합치기

 

>, >>

 

FD 수정하기

자신들의 로그를 안 보여주는 보안 제품들의 방식

 

파이프

sed:치환 -> sed 's/hello/hi/g': 들어온 인자값 중 hello를 hi로 치환!

 

pwnable.kr 문제 풀이

./fd로 실행시켜 볼 수 있음 (-> ./fd 1234)
vi fd.c -> :q!

-> 버퍼 안에 "LETMEWIN"을 넣어야 하고, 이 문자열을 넣기 위해 버퍼 조작 방법을 찾아야 한다.

man read 명령어 -> read 함수에 대해 알 수 있음
atoi: 10진수 문자열만 읽고 10진수로 변환

'CS > 소프트웨어보안' 카테고리의 다른 글

8. Toyransome  (0) 2025.12.09
6. Reversing  (0) 2025.12.06
5-1. 소프트웨어 보안을 위한 리눅스 기초  (0) 2025.10.17
4-3. 어셈블리 실습  (0) 2025.10.17
4-2. GDB 실습  (0) 2025.10.15