2011-01-17 3 views
8

C++ Windows 응용 프로그램이 있습니다. 설치 프로그램과 실행 파일에 서명하지만 현재 DLL (zlib1.dll 등)에 서명하지 않았습니다. 그것들에도 서명하는 것은 큰 일이 아니지만 누군가가 그 혜택이 무엇인지 설명 할 수 있습니까? 예를 들어 내 프로그램이 모든 종속성에 서명 된 경우 AV 또는 방화벽 소프트웨어와 다른 것으로 보입니까? 사용자에게 다른 경고가 표시됩니까?DLL에 서명해야합니까?

+0

왜 서명하지 않으시겠습니까? 인증서를 이미 지불 했으므로 빌드하는 동안 서명하는 데 몇 초 밖에 걸리지 않습니다. 왜 건너 뛰는거야? – Tim

+1

Tim, 어쨌든 나는 그것을 할 것입니다. 나는 그 효과가 무엇인지 궁금합니다. – twk

답변

6

프로그램이 AV 또는 방화벽과 전혀 다르게 나타나지는 않습니다. 그들은 이미 서명 한 실행 파일의 서명을 확인합니다. DLL을 서명하기 전에 서명을 확인할 때 dll을 서명하는 것이 가장 좋습니다. 이렇게하면 런타임에 모든 dll의 무결성을 보장 할 수 있습니다. 런타임시 서명하고 서명 한 모든 바이너리에 서명하는 것이 좋습니다. dll을 다른 제품에서 사용하려면 해당 제품이 정품인지 무결성인지 확인해야하므로 dll을 서명해야합니다.

+5

암시 적 링크는 어떻게됩니까? 해당 설정에서 서명을 확인하는 방법이 있습니까? 아니면 모든 DLL로드를 명시 적 링크 (예 : LoadLibraryEx 호출)로 변환해야합니까? –

+1

좋은 질문입니다, 브렌트. 나는 그 대답을 알고 싶다. – twk

+1

암묵적으로 링크 된 dll에 대한 서명을 확인할 수 없다고 생각합니다. 코드가 실행되기 전에 dll이로드되기 때문에 암묵적으로 링크 된 dll에 대한 서명을 확인할 수는 없습니다. 그러나 서명을 확인하기 위해 암시 적으로 연결되는 dll을 명시 적으로로드하는 하나의 제품에 대해 알고 있습니다. . – 341008