본문 바로가기

분류 전체보기202

[운영체제] 커널 개요와 Windbg 커널이란? 1) 운영체제의 핵심 부분 2) 운영체제의 다른 부분 및 응용 프로그램 수행에 필요한 여러 가지 서비스 제공 3) 하드웨어의 추상화 커널의 기능적인 요소 요소 설명 프로세스 관리 - 커널은 CPU 스케줄링을 관리 - 각각의 스레드별로 CPU 스케줄링 - 모든 스레드와 프로세스에 대한 정보는 메모리상의 데이터 구조체에 의해서 유지, 관리 파일 접근 - 디바이스 드라이버에 의해서 각종 파일 시스템이 구현 및 처리 - 파일 시스템에 대한 일관적인 인터페이스 제공 보안 - 프로세스간의 독립성 보장 - 각각의 프로세스 메모리 영역 분리 및 권한 설정 메모리 관리 - 메모리 주소는 동시에 여러 개의 물리 메모리 주소로 매핑 윈도우 아키텍처에서 커널의 위치 WinDbg? - 커널 디버깅을 완벽하게 지원 -.. 2021. 12. 2.
[리버싱 핵심 원리] 24장, DLL 이젝션 DLL 이젝션(DLL Ejection)은 프로세스에 강제로 삽입한 DLL을 빼내는 기법이다. 기본 동작 원리는 CreateRemoteThread API를 이용한 DLL 인젝션(Injection)의 동작원리와 같다. DLL 이젝션 동작 원리 CreateRemoteThread() API를 이용한 DLL 인젝션의 동작원리는 아래와 같다. 대상 프로세스로 하여금 LoadLibrary() API를 호출하도록 만드는 것 마찬가지로 DLL 이젝션의 동작 원리도 아래와 같다. 대상 프로세스로 하여금 FreeLibrary() API를 호출하도록 만드는 것 즉 CreateRemoteThread()의 IpStartAddress 파라미터에 FreeLibrary() API 주소를 넘겨주고, IpParameter 파라미터에 이젝.. 2021. 12. 2.
[리눅스 핵심 원리] 23장, DLL 인젝션 다른 프로세스에 침투하는 가장 쉽고 강력한 방법인 DLL 인젝션에 대해 살펴보자! DLL 인젝션 기법을 통하여 API 후킹, 프로그램 기능 개성 및 버그 패치 등의 작업을 수행할 수 있다. DLL 인젝션 DLL 인젝션이란 실행 중인 다른 프로세스에 특정 DLL 파일을 강제로 삽입하는 것이라고 말할 수 있다. 조금 더 기술적으로 표현하자면 다른 프로세스에게 LoadLibrary() API를 스스로 호출하도록 명령하여 사용자가 원하는 DLL을 로딩(Loading)하는 것이다. DLL 인젝션이 일반적인 DLL 로딩과 다른 점은 로딩 대상이 되는 프로세스가 나 자신이냐 아니면 다른 프로세스냐 하는 것이다. notepad 프로세스에 myhack.dll을 강제로 삽입했다. 이처럼 notepad.exe 프로세스에 로.. 2021. 12. 2.
[리버싱 핵심 원리] 27장, Code 인젝션 Code Injection Code Injection이란 상대방 프로세스에 독립 실행 코드를 삽입한 후 실행하는 기법이다. 일반적으로 CreateRemoteThread() API를 이용하여 원격 스레드 형태로 실행하므로 Thread 인젝션이라고도 얘기한다. 인젝션 대상이 되는 target.exe 프로세스에 코드와 데이터를 삽입한다. 이때 코드의 형식은 스레드 프로시저(Thread Procedure) 형식으로 해주고, 코드에서 사용되는 데이터는 스레드의 파라미터로 전달한다. 즉 코드와 데이터를 각각 인젝션해주는 것이다. 이와 같이 개념은 간단하지만 구현에 있어서 주의해야 할 내용이 있다. Code 인젝션 구현의 주의사항에 대하서는 DLL 인젝션과 비교하여 설명할 수 있다. DLL 인젝션 vs Code 인젝.. 2021. 12. 2.
[운영체제] MTF 분석을 위한 NTFS 파일 시스템 이론 File System - 파일시스템은 보조 기억 장치에 데이터의 저장과 검색 방법을 제어하는데 사용 → 체계적인 저장 방식과 검색 방식을 사용하여 데이터 저장, 검색 등을 최적화 NTFS(New Technology File System) - 마이크로소프트에 의해 개발 - 1993년 Windows NT 3.1과 함께 발표 - Bitmap, MFT(Master File Table) MFT(Master File Table) - 파일에 대한 meta data를 저장하는 곳 *meta data: 데이터 관리상 필요한 작성자, 목적, 저장 장소 등 속성에 관한 데이터 NTFS에서 모든 파일과 디렉터리, 메타 파일은 meta data로 MFT에 저장 MTF Entry 구조 - MTF를 구성하는 각 요소 - Entry.. 2021. 11. 30.
[리버싱 핵심 원리] 21장, Windows 메시지 후킹 훅이란, 우리말로는 갈고리, 낚시바늘 정도의 뜻을 가지고 있는데, 원하는 것을 낚아채고 싶을 때 사용하는 도구이다. 이 갈고리의 뜻이 확장되어서 정보를 엿보거나 가로채는 경우에도 훅이라는 말을 쓴다. 메시지 훅 Windows 운영체제는 GUI(Graphic User Interface)를 제공하고, 이는 Event Driven 방식으로 동작합니다. 키보드/마우스를 이용하여 메뉴 선택, 버튼 선택, 마우스 이동, 창 크기 변경, 창 위치 이동 등의 작업은 모두 이벤트(Event)입니다. 이런 이벤트가 발생할 때 OS는 미리 정의된 메시지를 해당 응용 프로그램으로 통보한다. 응용 프로그램은 해당 메시지를 분석하여 필요한 작업을 진행하는 것입니다. 즉, 키보드를 입력할 때에도 OS로부터 응용 프로그램으로 메시지.. 2021. 11. 24.