Windows 안내서

DLL 파일 여는 방법: Windows에서 안전하게 확인하기

확인하려는 내용에 맞춰 읽기 전용 방법을 선택하세요. DLL은 컴파일된 프로그램 코드지만, 살펴보기 위해 앱에 로드할 필요는 없습니다.

업데이트

간단한 답변

DLL의 이름, 버전 또는 서명만 확인하려면 Windows 속성이나 신뢰할 수 있는 검사 도구부터 사용하세요. 포함된 리소스나 개발 정보를 더 알아야 할 때만 전용 뷰어와 개발 도구를 이용하면 됩니다. 내용을 보겠다는 이유로 출처를 모르는 DLL을 실행하지 마세요.

돋보기와 주의 표시 방패를 사용해 DLL 파일을 살펴보는 편집용 그림
개념 그림: 라이브러리를 살펴보는 것과 실행하는 것은 서로 다른 작업입니다.

DLL 파일의 역할

DLL은 Dynamic Link Library의 약자로, 동적 연결 라이브러리를 뜻합니다. Windows 프로그램은 공통 기능, 데이터 또는 리소스가 필요할 때 DLL을 로드할 수 있습니다. 한 라이브러리가 특정 앱 하나에만 쓰이기도 하고 서로 관련된 여러 구성 요소에서 쓰이기도 합니다. 그래서 보통 설치 프로그램이 지정한 폴더나 시스템 구성 요소가 관리하는 위치에 보관됩니다.

DLL은 컴파일된 소프트웨어이지 Word 문서, 그림 또는 일반 텍스트 파일이 아닙니다. 두 번 클릭해도 유용한 내용이 표시되지 않는 경우가 대부분입니다. 연결 프로그램 창이 나타난다고 파일이 손상된 것은 아닙니다. Windows가 처리할 앱이 있는지 묻는 것입니다. DLL 파일 여는 방법을 찾더라도 아무 프로그램이나 선택해 코드가 읽히는 것은 아닙니다.

DLL 파일을 연다는 말은 파일의 정체를 확인하거나, 포함된 아이콘을 보거나, 내보낸 함수를 나열하거나, .NET 어셈블리를 살펴보거나, 앱이 라이브러리를 로드하도록 하는 여러 작업을 뜻할 수 있습니다. 작업마다 필요한 도구와 위험이 다릅니다. 처음에는 읽기 전용 방법을 선택하고 원래 폴더에 둔 상태로 확인하세요.

  • 메타데이터 검사는 파일에 저장된 정보를 읽으며, 앱이 라이브러리 함수를 호출하게 하지 않습니다.
  • 리소스 뷰어는 일부 아이콘, 문자열 또는 대화 상자를 보여 줄 수 있지만 프로그램의 모든 동작을 보여 주지는 않습니다.
  • DLL을 프로세스에 로드하면 코드가 실행될 수 있습니다. 속성을 확인하는 것과는 다른 위험이 따릅니다.

DLL 파일 여는 방법: 목적에 따라 선택하기

DLL 파일 여는 방법은 무엇을 알아보려는지에 따라 달라집니다. 파일을 식별하거나 아이콘을 보는 것만 필요하다면 읽기 전용 보기로 충분합니다. DLL을 검사하는 것과 프로그램에 로드하는 것은 같은 일이 아니므로 처음부터 디컴파일하거나 Windows에 등록할 필요는 없습니다.

원하는 결과에 맞춰 도구를 고르고 영향이 가장 적은 방법부터 시작하세요.
확인할 내용먼저 사용할 방법확인할 수 있는 정보
이름, 위치, 크기 또는 버전파일 탐색기의 속성기본 정보와 게시자가 기록한 버전 정보.
게시자 또는 서명 상태Windows 서명 정보 또는 Microsoft Sysinternals Sigcheck서명 유무와 기록된 서명자 정보.
아이콘 또는 포함된 리소스신뢰할 수 있는 리소스 뷰어의 읽기 모드라이브러리에 포함된 일부 리소스이며 전체 로직은 아닙니다.
헤더 또는 내보낸 함수PE 도구 또는 신뢰할 수 있는 개발 도구구조와 공개 내보내기 정보이며 원본 소스 코드는 아닙니다.
.NET 어셈블리 메타데이터검증된 .NET 검사 도구호환되는 어셈블리의 형식과 중간 표현.
DLL 누락 오류 복구앱 또는 런타임 복구나 재설치소프트웨어 게시자가 지원하는 파일과 복구 단계.
라이브러리에서 파일 세부 정보, 서명 확인, 포함된 그래픽 리소스로 이어지는 선택 경로
DLL 확장자만 보지 말고 원하는 결과에 맞춰 도구를 선택하세요.

Windows에서 DLL 속성 확인하기

DLL 파일 여는 방법을 찾는 중이고 기본 정보만 필요하다면 파일 탐색기에서 DLL을 찾고 마우스 오른쪽 단추를 눌러 속성을 선택하세요. 일반 탭에는 경로, 파일 종류, 크기와 날짜가 표시됩니다. 자세히 탭에는 게시자가 넣은 버전 정보가 있을 수 있습니다. 빈 항목만으로 안전 여부를 판단할 수 없습니다.

Windows가 서명을 인식할 때만 디지털 서명 탭이 나타납니다. 자세한 정보를 열어 서명자와 상태를 살펴보세요. 유효한 서명은 누가 바이트에 서명했는지, 서명 후 변경되었는지 확인하는 데 도움이 되지만 악성 코드 판정은 아닙니다.

  1. 파일을 찾습니다. DLL의 경로와 어느 앱 폴더에 있는지 기록합니다.
  2. 속성을 읽습니다. 파일 종류, 크기, 자세히 탭과 표시되는 경우 서명 탭을 확인합니다.
  3. 비교한 뒤 닫습니다. 게시자와 위치가 예상한 것인지 확인하고 DLL을 바꾸지 않은 채 창을 닫습니다.

DLL을 로드하지 않고 서명 확인하기

DLL 파일 여는 방법이 서명 확인이라면 코드를 로드하지 않아도 됩니다. PowerShell에서 Authenticode 메타데이터를 조회하고 파일 탐색기에서 확인한 정확한 경로를 사용하세요. NotSigned는 인식되는 서명을 찾지 못했다는 뜻이지, 파일이 자동으로 악성이라는 뜻은 아닙니다.

Microsoft Sysinternals Sigcheck는 버전, 타임스탬프, 디지털 서명과 인증서 체인을 보여 줍니다. 일부 옵션은 VirusTotal을 조회하거나 파일을 업로드할 수 있습니다. 공유할 권한이 없다면 개인 파일을 보내지 마세요.

PowerShell로 서명 확인

예시 경로를 확인하려는 DLL의 실제 경로로 바꾸세요.

Get-AuthenticodeSignature -FilePath "C:\Path\example.dll" | Format-List Status,SignerCertificate

Sigcheck로 메타데이터 조회

Sysinternals가 이미 설치되어 있다면 사용할 수 있는 기본 보기입니다. 파일 업로드를 요청하지 않습니다.

sigcheck.exe -nobanner "C:\Path\example.dll"

아이콘과 포함된 리소스 보기

일부 DLL에는 아이콘, 문자열, 버전 데이터 또는 대화 상자가 들어 있습니다. 리소스 뷰어로 그중 일부를 볼 수 있습니다. 도구는 원래 게시자에게서 받고 보기 또는 내보내기 기능을 사용하세요. 파일을 실행, 등록, 편집하거나 다른 파일로 바꾸지 마세요.

이 보기만으로 네이티브 DLL의 모든 명령을 확인할 수는 없습니다. 아이콘이 보이지 않는다고 라이브러리가 비어 있는 것도 아닙니다. 파일을 식별하는 것이 목적이라면 속성이나 서명 확인이 더 간단합니다. 내보낸 리소스는 원본 파일과 분리해 보관하세요.

헤더 또는 내보낸 함수 검사하기

PE 검사 도구는 헤더와 내보낸 함수를 표시할 수 있습니다. Microsoft Visual Studio 도구에는 Developer Command Prompt에서 쓸 수 있는 DUMPBIN이 있습니다. 개발자는 이를 사용해 알고 있는 파일을 실행하지 않고 살펴볼 수 있습니다.

이 메타데이터는 소스 코드가 아닙니다. 내보낸 함수의 이름은 단서일 뿐 호환성을 증명하지 않습니다. 파일의 출처와 아키텍처를 확인하고, 알 수 없는 파일은 통제된 환경에서 분석하세요.

개발자용 검사 예시

Visual Studio 도구가 설치되어 있고 파일을 검사할 권한이 있을 때만 사용하세요.

dumpbin /headers /exports "C:\Path\example.dll"

DLL이 .NET 어셈블리인 경우

일부 DLL은 관리되는 .NET 어셈블리입니다. 호환되는 도구에서 메타데이터와 중간 표현을 볼 수 있습니다. 네이티브 DLL은 구조가 다르며 확장자만으로 종류를 알아낼 수 없습니다.

디컴파일러를 사용해도 원래 프로젝트, 주석 또는 컴파일 옵션이 복원되지는 않습니다. 검사 권한이 있는 소프트웨어만 살펴보세요. 미리 보기가 읽기 쉬워 보여도 출처를 모르는 파일을 실행할 이유가 되지는 않습니다.

regsvr32와 rundll32를 DLL 뷰어로 사용하지 마세요

regsvr32와 rundll32는 DLL 내용을 보여 주는 뷰어가 아닙니다. 등록은 스스로 등록하도록 만들어진 일부 COM 구성 요소에 쓰이며, rundll32는 호환되는 진입점만 호출합니다. 임의의 파일에 사용하면 코드가 로드되거나 시스템 상태가 바뀔 수 있습니다.

알 수 없는 DLL을 Windows나 프로그램 폴더에 복사하거나, 보호 기능을 끄거나, 검사 목적으로 등록하지 마세요. 신뢰할 수 있는 게시자가 등록을 요구한다면 파일, 아키텍처와 정확한 명령을 먼저 확인하세요. 필요하지 않다면 읽기 전용 확인에 머무르세요.

DLL은 읽기 전용 검사 경로를 따라가고 프로세서로 향하는 경로는 차단된 모습
개념 그림: 파일을 살펴보는 것과 코드를 로드하는 것은 다른 작업입니다.

DLL 누락 오류를 해결하려는 경우

DLL 누락 경고는 파일을 열어 달라는 뜻이 아니라 복구가 필요한 문제입니다. 오류 전문과 앱 이름을 기록한 다음 소프트웨어 게시자가 제공하는 방법으로 앱과 런타임을 복구하거나 다시 설치하세요. Windows 구성 요소라면 지원되는 복구 도구와 업데이트를 사용하세요.

이름이 같은 파일도 버전이나 아키텍처가 다를 수 있습니다. 대체 DLL을 System32나 게임 폴더에 복사하지 마세요. 해당 복구 문제는 관련 안내서에서 별도로 확인할 수 있습니다.

자주 묻는 질문

어떤 프로그램으로 DLL 파일을 여나요?

모든 DLL에 쓸 수 있는 하나의 프로그램은 없습니다. 파일 정보에는 속성, 서명에는 검사 도구, 리소스에는 뷰어, 헤더나 내보내기 정보에는 개발 도구를 사용하세요. 알아보려는 내용에 따라 방법을 고르면 됩니다.

메모장에서 DLL을 열어도 안전한가요?

읽을 수 없는 바이너리 문자가 표시될 수 있고 저장하면 파일이 손상될 수 있습니다. 메모장은 DLL 검사 도구가 아닙니다. 속성, 서명, 리소스 또는 읽기 전용 구조 검사 도구를 사용하세요.

디지털 서명이 유효하면 DLL이 안전한가요?

아닙니다. 유효한 서명은 서명자를 식별하고 서명된 바이트가 바뀌지 않았는지 확인하는 데 도움을 줍니다. 그래도 예상한 게시자와 위치인지 확인해야 합니다.

DLL을 열 때 regsvr32를 사용해야 하나요?

아닙니다. regsvr32는 스스로 등록하도록 설계된 일부 COM 구성 요소를 등록하며 임의의 DLL을 표시하지 않습니다. 해당 파일에 대해 게시자가 확인된 지침을 제공할 때만 사용하세요.

이름이 같은 DLL을 다운로드하면 누락 오류를 고칠 수 있나요?

파일 이름은 버전, 아키텍처, 게시자 또는 호환성을 확인해 주지 않습니다. 먼저 파일을 요청한 앱이나 런타임을 복구하고 필요한 파일은 소프트웨어 게시자에게서 받으세요.

공식 참고 자료

DLL 누락 오류를 안전하게 복구하세요. 파일을 요청한 앱이나 런타임에 맞는 단계를 확인할 수 있습니다.