일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |
- 리눅스 커널
- C언어
- 시스템
- 리눅스
- 프로그래밍
- wargame
- 어셈블리어
- Pwnable.kr
- pwncollege
- px4
- Bandit
- 시그널
- 취약점
- kernel
- 리버싱
- radare2
- Leviathan
- 워게임
- css
- 리눅스커널
- write up
- 컴퓨터구조
- 시스템프로그래밍
- 시스템해킹
- C++
- pwn.college
- 시스템 프로그래밍
- 알고리즘
- 커널
- 드론
- Today
- Total
목록정보보안 (179)
Computer Security
리얼 월드 셋팅과의 차이점 CTF 문제에서는 커널 이미지와 파일 시스템을 제공해 주기 때문에 따로 빌드할 필요가 없다. 보통 커널 이미지중 bzImage는 제공해주지만, 디버깅에 유용한 vmlinux는 제공해주지 않는다. extract-vmlinux 스크립트를 이용해 bzImage에서 vmlinux를 추출해야한다. boot.sh : qemu의 실행 옵션이 들어있는 qemu script bzImage : 빌드된 커널 이미지 파일 rootfs.cpio : 빌드된 파일 시스템. 내부에 문제 드라이버가 들어 있다. CTF에서는 보통 gdb_remote.sh 를 빼고 위의 3가지를 제공해 준다. 위의 3개의 파일중에는 vmlinux는 없기 때문에, /usr/src/linux-headers-$(uname-r)/sc..
qemu 리눅스에서 사용하는 에뮬레이터이며, KVM(1)을 추가하여 가상 머신으로 사용할 수 있다. qemu-kvm 에서 Hypervisor를 지원한다. qemu의 다양한 옵션들을 이용해 script를 작성해서 커널을 부팅할 수 있다. (1) :KVM(Kernel-based Virtual Machine: 커널 기반 가상 머신)은 Linux®에 구축되는 오픈소스 가상화 기술이다. 구체적으로 말해서, KVM을 사용하면 Linux를 하이퍼바이저로 전환하여 호스트 머신에서 게스트 또는 VM(가상 머신) 등 격리된 가상 환경 여러 개가 실행되도록 할 수 있습니다. 1. 리눅스의경우 기본적으로 qemu가 설치되어있으며, qemu-kvm 을 apt-get install qemu-kvm 명령어를 통해 설치 해주자. 2..
리눅스 커널 빌드과정 1.빌드에 필요한 패키지 설치 2.원하는 버전의 리눅스 커널 소스 다운로드 3.make defconfig //해당 아키텍쳐의 default 옵션을 사용 4.make menuconfig //메뉴 기반 설정 화면을 이용 5.make -j N // N개의 CPU core를 이용해 커널 이미지 빌드 1. 빌드에 필요한 패키지 설치 -build-essential -libncurses5 -libncurses5-dev -bin86 -kernel-package -libssl-dev -bison -flex -libelf-dev 위의 패키지들을 apt-get install 명령을 통해 설치 해준다. 2.원하는 버전의 리눅스 커널 소스 다운로드 https://www.kernel.org/ The Linu..
디바이스 드라이버 컴퓨터와 연결된 장치를 추상화시켜서, 유저 애플리케이션이 정형화된 인터페이스를 통해 장치에 접근할 수 있도록 해주는 소프트웨어이다. 커널이 컴파일 될 때 부터 포함된 디바이스 드라이버도 있고 별도로 컴파일되어 커널 부팅 후에 로드되는 디바이스 드라이버도 있다. 디바이스 드라이버는 모듈의 일종이므로 모듈 프로그래밍을 통해 프로그래밍 할 수 있다. 종류 Character Device : 버퍼 캐시를 사용하지 않으며, Device를 파일처럼 직접 접근한다.(마우스,키보드,사운드카드 드라이버등) Block Device : Hard Disk와 같은 file system을 기반으로 block단위로 접근한다. Network Device : 네트워크 스택과 네트워크 하드웨어 사이에 위치하여 데이터의 ..