개발/윈도우 32

COM HOOK #2 예제 DXGI v11

COM을 이용한 화면 캡처 이 문서에서는 Windows의 Direct3D 11과 DXGI(DirectX Graphics Infrastructure)를 사용하여 화면을 캡처하는 방법을 설명합니다. DXGI는 COM 기반의 API로, 화면 출력을 캡처하는 데 사용할 수 있습니다. 특히 IDXGIOutputDuplication 인터페이스를 사용하여 현재 디스플레이의 화면을 캡처할 수 있습니다. DXGI와 Direct3D 11 개요 Direct3D 11은 그래픽 처리를 위한 DirectX의 한 부분이며, COM 인터페이스로 제공됩니다. DXGI는 DirectX와 GPU 간의 통신을 관리하는 기능을 제공하며, 이를 통해 ..

개발/윈도우 2024.09.12

COM HOOK #1 개념

COM 인터페이스 vtable 후킹COM(컴포넌트 객체 모델) 인터페이스 후킹은 특정 COM 객체의 메서드 호출을 가로채고 이를 수정하거나 모니터링하는 기법입니다. 이 문서에서는 vtable 후킹을 사용하여 COM 인터페이스의 메서드를 후킹하는 방법을 설명합니다.vtable 후킹 개념COM 인터페이스는 C++의 가상 함수 테이블(vtable)을 통해 메서드 호출을 관리합니다. vtable 후킹은 이 가상 함수 테이블을 수정하여 원래 메서드 대신 사용자가 정의한 함수로 대체하는 방식입니다.COM vtable 후킹 코드 예제다음은 C++로 COM 인터페이스의 QueryInterface 메서드를 후킹하는 예제입니다.// C++ 코드 예제#include #include #include typedef HRESUL..

개발/윈도우 2024.09.12

Get PID From Socket ID

Windows API를 사용하여 특정 소켓에 대한 소켓 ID(SOCKET 또는 소켓 핸들)에서 해당 프로세스 ID(PID)를 찾는 방법에 대해 설명하겠습니다. Windows에서는 일반적으로 SOCKET 핸들과 직접적으로 관련된 API가 없기 때문에 소켓 ID에서 PID를 얻기 위해 네트워크 연결 테이블을 탐색해야 합니다.GetExtendedTcpTable 및 GetExtendedUdpTable 함수를 사용하여 시스템의 모든 TCP/UDP 연결을 조회하고, 해당 테이블에서 일치하는 소켓 핸들을 찾아서 그에 대응하는 PID를 얻을 수 있습니다.아래는 C++로 작성된 예제로, 주어진 SOCKET 핸들에서 PID를 찾는 방법을 보여줍니다. 이 예제에서는 TCP 연결을 대상으로 합니다.#include #inclu..

개발/윈도우 2024.08.01

Exception Handler 등록 처리 방법

SetUnhandledExceptionFilter설명:용도: Windows 운영 체제에서 발생하는 하드웨어 예외와 같은 낮은 수준의 예외를 처리하기 위해 사용됩니다.등록 방법: SetUnhandledExceptionFilter 함수를 호출하여 전역 예외 처리기를 등록합니다.#include #include LONG WINAPI MyExceptionHandler(EXCEPTION_POINTERS* ExceptionInfo) { printf("Unhandled exception occurred! Exception code: 0x%08X\n", ExceptionInfo->ExceptionRecord->ExceptionCode); return EXCEPTION_EXECUTE_HANDLER;}int ma..

개발/윈도우 2024.07.29

Credential Provider: 개요 및 활용 방법

소개Windows Credential Provider는 사용자가 시스템에 로그온할 때 자격 증명을 수집하고 인증 프로세스를 돕는 중요한 역할을 합니다. Credential Provider는 다양한 형태의 인증을 지원하며, Windows의 사용자 인증 시스템의 핵심 구성 요소입니다. 이 글에서는 Credential Provider의 기본 개념과 이를 활용하는 방법에 대해 설명하겠습니다.Credential Provider란?Credential Provider는 Windows 운영 체제에서 사용자 자격 증명을 수집하고 검증하는 컴포넌트입니다. 기본적으로 비밀번호 인증을 포함하며, 스마트 카드, 지문 인식, 얼굴 인식 등 다양한 인증 방법을 지원합니다. Windows Vista 이후의 모든 Windows 버전에..

개발/윈도우 2024.06.20

ClipBoard 시리즈 #1 TEXT 확인

윈도우 환경에서 사용자가 Clipboard에 넣은 TEXT의 내용과 길이를 확인하기 #include "framework.h"#include "GetClipboardLength.h"#include #include #include #define MAX_LOADSTRING 100// 전역 변수:HINSTANCE hInst; // 현재 인스턴스입니다.WCHAR szTitle[MAX_LOADSTRING]; // 제목 표시줄 텍스트입니다.WCHAR szWindowClass[MAX_LOADSTRING]; // 기본 창 클래스 이름입니다.// 이 코드 모듈에 포함된 함수의 선언을 전달합니다:ATOM ..

개발/윈도우 2024.05.27

코드사인 (WinTrust API)검증

WinTrust API는 Windows 운영 체제에서 디지털 서명을 검증하고 파일 및 기타 객체의 신뢰성을 확인하는 데 사용됩니다. 이를 이해하기 쉽게 다이어그램으로 나타내 보겠습니다.다음은 WinTrust API의 주요 구성 요소와 흐름을 설명하는 다이어그램입니다.요청자(Requestor): 신뢰성을 확인하고자 하는 애플리케이션 또는 서비스.WinTrust API: 요청을 받아 디지털 서명을 검증하고 신뢰성을 평가하는 API.정책(Policy): 신뢰성 확인에 사용되는 기준 및 규칙 집합.신뢰 공급자(Trust Provider): 인증서와 서명을 검증하는 역할을 하는 엔티티.결과(Result): 파일 또는 객체의 신뢰성에 대한 검증 결과.[ 요청자 ] --> [ WinTrust API ] --> [ 정..

개발/윈도우 2024.04.22