공부용/Kernel Exploit Study

    [Kernel Exploit] Basic Operating Systems (4)

    Linkers and Loaders - Linkers는 하나 이상의 목적 파일을 가져와 이를 단일 실행 프로그램으로 병합하는 프로그램이다. (Wikipedia) - Loaders는 Executable program을 찾아서 주기억장치에 적재하고, 그 프로그램이 실행되도록 하는 역할을 담당한다. - Relocation은 프로그램의 위치 종속 코드 및 데이터에 대한 로드 주소를 할당하고 할당 된 주소를 반영하도록 코드 및 데이터를 조정하는 프로세스이다. (Wikipedia) - Dynamically Linked Libraries(DLL)은 모든 프로그램 메모리를 로딩하는 게 아닌, 함수가 call 될 때 그 메모리를 로딩하는 것이다. Implementation - 초기에는 Assembly로 Operating..

    [Kernel Exploit] Basic Operating Systems (3)

    Operating System Services - Operating Systems는 사용자에게 프로그램이 돌아가는 환경을 제공해준다. - Operating Systems는 User Interface(CLI, GUI, touch-screen and Batch), Program execution, I/O operations의 기능을 제공한다. - Operating Systems는 파일을 관리하기 위한 File-system manipulation, 프로세스가 많은 정보를 공유하는 Communications, 에러를 감지하는 Error detection 기능을 제공한다. - 많은 작업을 처리하기 위해 자원(CPU, main memory, file storage, I/O devices)을 할당하는 Resource..

    [Kernel Exploit] Basic Operating Systems (2)

    Operating-System Operations - Bootstrap 프로그램을 시작해 system을 초기화하고 커널을 로드한다. - System Daemons을 동작한다. 이들은 사용자가 직접적으로 제어하지 않고, 백그라운드에서 돌면서 여러 작업을 하는 프로그램을 말한다. (Wikipedia) - Kernel Interrupt를 처리를 돕는다. Multiprogramming and Multitasking - 여러 프로그램을 동시에 메모리에 로딩 시키는 것을 Multiprogramming 이라고 한다. - Timesharing(시분할 시스템)은 CPU 스케줄링과 다중 프로그래밍을 이용해서 각 사용자들에게 컴퓨터 자원을 시간적으로 분할하여 사용할 수 있게 해 준다. (Wikipedia) 즉, A, B, ..

    [Kernel Exploit] Basic Operating Systems (1)

    What Operating Systems Do - OS는 유저가 보다 쉽게 시스템을 사용할 수 있도록 GUI와 같은 ease of use, good performance를 제공한다. - 여러 사용자가 공평하게 사용할 수 있도록 resource를 관리하고 program을 제어한다. - Mobile Devices는 resource를 적게 갖고 있는데, 이를 서버나 클라우드에 연결 해 resource를 보충한다. - Embedded System은 내장형 시스템으로 해당 디바이스를 제어한다. (공장 제어, 항공기, IoT 등에 사용) Defining Operating Systems - Operating Systems는 시스템 하드웨어를 관리할 뿐 아니라 응용 소프트웨어를 실행하기 위하여 하드웨어 추상화 플랫폼과..

    [Kernel Exploit] ret2usr 64bit 정리

    보호되어 있는 글입니다.