동적링크 2

DLL 시리즈 #3 명시적(동적)링크 의 문제점

동적 링크에 대한 문제점1. DLL 지옥 (DLL Hell)DLL Hell은 여러 응용 프로그램이 동일한 DLL을 공유할 때 발생하는 문제입니다. 주로 다음과 같은 경우에 발생합니다:버전 충돌: 응용 프로그램이 특정 버전의 DLL을 요구하지만, 다른 응용 프로그램에서 DLL을 업데이트하거나 덮어씌우면 기존 프로그램이 비정상적으로 동작하거나 충돌할 수 있습니다.의존성 관리 문제: 응용 프로그램이 실행되기 위해 필요한 모든 DLL을 정확히 찾지 못하거나 누락된 경우, 프로그램이 정상적으로 실행되지 않을 수 있습니다.2. 보안 문제DLL 하이재킹 (DLL Hijacking): 시스템이 DLL을 로드할 때, 의도된 DLL이 아닌 악성 DLL이 먼저 로드될 수 있습니다. 공격자는 악성 DLL을 시스템 경로에 배치..

개발/윈도우 2024.09.12

DLL 시리즈 #2 명시적 연결 vs 묵시적 연결

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을 동..

개발/윈도우 2024.09.12
반응형