카테고리 없음
23.05.02 ECOPS 정규세션 week5 System Hacking
Doo Nut
2023. 5. 2. 19:42
아래 이론에 대한 정리와 세그먼트 부분에 있는 문제에 대한 답과 풀이를 작성해주세요.
- 컴퓨터 구조 - 컴퓨터의 효율적 작동을 위해 하드웨어 및 소프트웨어의 기능을 고안, 구성하는 방법
- 폰 노이만 구조 (연산, 제어, 저장)
- 하버드 구조
- 수정된 하버드 구조
- CPU - 중앙처리장치, 프로그램 연산 처리 및 시스템 관리
- 산술논리장치 / 제어장치 /레지스터
- 명령어 집합 구조 >> CPU가 해석하는 명령어의 집합
- 레지스터 - CPU 내부에 존재하는 다목적 저장 공간(데이터를 빠르게 저장 및 사용할때 이용)
- 산술 연산에 필요한 데이터/주소 저장 및 참조 등
- CPU 내부에 존재하기 때문에 고속으로 데이터 처리 가능
- x64 Architecture 에는 범용 레지스터, 세그먼트 레지스터, 명령어 포인터 레지스터, 플래그 레지스터 존재
세그먼트 문제
- a가 위치하는 세그먼트: 컴파일 시점에서 값이 정해진 전역 변수 > 데이터 세그먼트
- b가 위치하는 세그먼트: 컴파일 시점에서 값이 정해진 전역 변수 / 값이 변하지 않으므로 > ro-data 세그먼트
- c가 위치하는 세그먼트: 컴파일 시점에서 값 정해지지 않은 전역 변수 > BSS 세그먼트에 위치함
- d가 위치하는 세그먼트: 함수 foo 안에서 선언된 지역 변수 > 스택 세그먼트에 위치함
- e는 어떤 데이터의 세그먼트를 가리킬까?: malloc을 통해 동적으로 할당 받은 메모리 > 힙 세그먼트
- "d_str"가 위치하는 세그먼트: 상수 b 저장 > ro-data 세그먼트
- foo가 위치하는 세그먼트: foo 실행 가능 함수 > 코드 세그먼트
- FTZ Hackerschool Trainer에 나오는 리눅스 명령어 중 최소 10개를 정리하고, 명령어의 역할과 예시를 함께 제시하세요.
- trainer 1
- ls : 파일 보여줌
- -a : 숨긴 파일 출력 / 파일 이름의 맨 앞에 '.'을 붙이면 숨김 파일 처리
- -l : 디렉토리와 파일 구분 출
- trainer 2
- pwd : 현재 경로 출력
- cd .. : 현재 경로에서 한 단계 위로 이동
- cd (디렉토리명) or /(디렉토리 경로) : 해당 디렉토리로 이동
- / : 최상위 디렉토리
- mkdir : 새로운 디렉토리 생성
- rmdir : 디렉토리 삭제
- cp (원본) (복사본) : 파일 1을 파일2 라는 이름으로 복사
- trainer 3
- w : 사람들이 접속해있는지 확인
- finger -l : 사용자에 대한 더 많은 정보
- tty : 자신의 터미널 정보 확인
- ifconfig : 현재 접속한 서버의 ip 확인
- write 명령 사용법 : write ID /dev/pts/pts번호
- trainer 4
- trainer 5
- whoami : 접속자에 대한 정보
- id : 자세한 정보
- cat /etc/passwd : 모든 사용자들에 대한 정보
- 커널 : 리눅스의 심장부 역할을 하는 파일(커널 버전에 따라 리눅스의 성능 차이 남)
- uname -a : 커널 버전 확인
- rpm -qa : 패키지 정보 확인
- cat /proc/cpuinfo : 해당 서버의 cpu 정보 확인
- trainer 6
- 패스워드 파일: 서버를 사용하는 사용자들의 모든 정보를 기록해 놓은 파일
- trainer 7
- tar cvf (합칠 파일) (합칠 파일들)
- tar xvf (해제할 파일)
- c - Create : 새로운 파일 만드는 옵션
- x - eXtract : 압축을 해제시키는 옵션
- v - View : 압축이 되거나 풀리는 과정을 출력하는 옵션
- f - File : 파일로 백업 하겠다는 옵션
- gzip (파일이름) : 선택된 파일 압축
- gzip -d (파일이름) : 선택된 파일 압축 해제
- trainer 8
- > : 리다이렉트
- gcc -o (프로그램이름) (소스파일이름) : 컴파일
- trainer 9
- r: 읽기권한 / w: 쓰기권한 / x: 실행권한
- trainer 10
- s - SetUID : 일시적으로 자신의 ID 변경(x 포함)
- FTZ Hackerschool Trainer 1~10을 풀고 각 마지막 단계별 인증샷을 찍어서 함께 올려주세요.
- trainer 1
- trainer 2
- trainer 3
- trainer 4
- trainer 5
- trainer 6
- trainer 7
- trainer 8
- trainer 9
- trainer 10