위성 DLL 로드 취약점 1. 위성 DLL 로드 취약점이란? 위성 DLL 로드 취약점(Satellite DLL Load Vulnerability)은 응용 프로그램이 특정 언어 리소스나 플러그인과 같은 위성 DLL을 로드할 때 발생할 수 있는 보안 문제입니다. 위성 DLL은 프로그램의 실행 파일과 같은 경로에 있거나, 특정 경로에서 로드됩니다. 이 취약점을 악용하면, 공격자는 악성 DLL을 시스템에 배치하여 응용 프로그램이 이를 로드하게 만들 수 있습니다. 2. 위성 DLL 로드 취약점의 유형 DLL 하이재킹(DLL Hijacking): 프로그램이 특정 DLL을 로드할 때, 시스템의 경로 탐색 순서에 따라 악성 D..
동적 링크에 대한 문제점1. DLL 지옥 (DLL Hell)DLL Hell은 여러 응용 프로그램이 동일한 DLL을 공유할 때 발생하는 문제입니다. 주로 다음과 같은 경우에 발생합니다:버전 충돌: 응용 프로그램이 특정 버전의 DLL을 요구하지만, 다른 응용 프로그램에서 DLL을 업데이트하거나 덮어씌우면 기존 프로그램이 비정상적으로 동작하거나 충돌할 수 있습니다.의존성 관리 문제: 응용 프로그램이 실행되기 위해 필요한 모든 DLL을 정확히 찾지 못하거나 누락된 경우, 프로그램이 정상적으로 실행되지 않을 수 있습니다.2. 보안 문제DLL 하이재킹 (DLL Hijacking): 시스템이 DLL을 로드할 때, 의도된 DLL이 아닌 악성 DLL이 먼저 로드될 수 있습니다. 공격자는 악성 DLL을 시스템 경로에 배치..
DLL 명시적 연결 vs 묵시적 연결1. 묵시적 연결 (Implicit Linking)묵시적 연결은 프로그램이 실행될 때, 자동으로 DLL이 로드되는 방식입니다. 즉, 프로그램 시작 시 필요한 모든 DLL이 자동으로 메모리에 로드됩니다. 이를 위해서는 컴파일 시점에 DLL의 함수 시그니처가 필요하며, .lib 파일을 링크해야 합니다.묵시적 연결 코드 예시// main.cpp#include #include "MyDLL.h" // DLL에서 제공하는 헤더 파일int main() { // 묵시적 연결로 DLL의 함수를 호출 int count = GetCount(); std::cout 2. 명시적 연결 (Explicit Linking)명시적 연결은 프로그램이 실행된 후에, 필요할 때 DLL을 동..
1. DLL이란?DLL (Dynamic Link Library)의 정의DLL(동적 링크 라이브러리)은 프로그램이 실행되는 동안 동적으로 로드되어 사용할 수 있는 코드, 데이터, 또는 리소스 집합을 담고 있는 파일입니다. 여러 프로그램에서 공통으로 사용하는 기능을 제공할 수 있도록 설계되었으며, 특정 응용 프로그램이나 프로세스에서 필요할 때만 로드되어 메모리 효율을 높일 수 있습니다. 일반적으로 .dll 확장자를 가지며, Windows 운영 체제에서 주로 사용됩니다.DLL의 주요 특징코드의 재사용성: DLL을 사용하면 여러 프로그램이 동일한 기능을 공유하고, 중복된 코드를 여러 번 작성할 필요가 없습니다. 예를 들어, 동일한 기능을 제공하는 코드가 여러 응용 프로그램에 필요하다면, 해당 코드를 각각의 프로..
Detours를 이용한 Present 함수 후킹 이 문서에서는 Microsoft Detours 라이브러리를 사용하여 Direct3D 11의 IDXGISwapChain::Present 함수를 후킹하는 방법을 설명합니다. Detours는 함수 호출을 가로채고 수정할 수 있는 강력한 라이브러리입니다. Detours 개념 Detours는 원래의 함수 호출을 가로채고, 후킹된 함수를 먼저 호출하게 만듭니다. 후킹된 함수는 필요에 따라 원래 함수 호출을 수정하거나, 전후 작업을 수행한 후 원래 함수로 돌아갈 수 있습니다. 이 예제에서는 Present 함수가 호출될 때마다 이를 가로채 화면 캡처와 같은 작업을 할 수 있습니다. ..
COM을 이용한 화면 캡처 이 문서에서는 Windows의 Direct3D 11과 DXGI(DirectX Graphics Infrastructure)를 사용하여 화면을 캡처하는 방법을 설명합니다. DXGI는 COM 기반의 API로, 화면 출력을 캡처하는 데 사용할 수 있습니다. 특히 IDXGIOutputDuplication 인터페이스를 사용하여 현재 디스플레이의 화면을 캡처할 수 있습니다. DXGI와 Direct3D 11 개요 Direct3D 11은 그래픽 처리를 위한 DirectX의 한 부분이며, COM 인터페이스로 제공됩니다. DXGI는 DirectX와 GPU 간의 통신을 관리하는 기능을 제공하며, 이를 통해 ..
- Total
- Today
- Yesterday
- 울릉도
- script
- C# 고급 기술
- 스쿠버 다이빙
- effective
- 서귀포블루버블
- PowerShell
- Build
- 블루버블다이빙팀
- 블루버블
- 현포다이브
- 서귀포
- 스쿠버다이빙
- Windows
- CMake
- OpenSource
- 네트워크 정보
- Effective c++
- C
- 암호화
- 블루버블다이브팀
- DLL
- C++
- 패턴
- 외돌개
- 제주도
- C#.NET
- Linux
- 성산블루버블
- C#
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |