2011-12-12 4 views
0

C++ DLL이 있습니다. 이 C++ DLL에 .NET Wrapper를 썼는데 .NET 랩퍼를 프로젝트에 연결하고 C++ 라이브러리를 사용할 수 있습니다. 하지만 이제는 두 개의 파일이 있습니다 : C++. dll과 wrapper.dll. 문제는 C++. dll로 누군가가 C++. dll을 대체하고 wrapper.dll을 통해 응용 프로그램에 코드를 주입 ​​할 수 있습니다. 어떻게 .net 래퍼에 C++. dll을 포함 시키면 .net 래퍼 DLL을 얻을 수 있습니까?정적으로 C++ dll을 .NET 라이브러리에 연결하는 방법 (하나의 DLL을 얻으려면 Net 래퍼 DLL에 C++ DLL로 빌드)

감사합니다.

+2

그러면 wrapper.dll도 바꿀 수 있습니다. 왜 한 DLL이 악의적 인면에서 더 안전합니까? –

답변

2

단순함 :하지 마세요.

당신 resource로 .NET 어셈블리로 C++ DLL을 번들 - 그러나 이러한 악의적 인 사용자가 당신의 .NET 어셈블리에서 자원을 끌어 ILDASM 또는 반사판 또는 무엇이든을 사용할 수 있습니다 - 또는 .NET 래퍼를 디 컴파일 원하는 코드로 다시 컴파일하십시오.

핵심은 당신이 정말로 올라갈 수없는 나무를 짖고있는 것입니다 (사람들을 단념시키기 위해 할 수있는 일을 할 수 있지만, 정말로 원하는 경우 앱을 망칠 수는 없습니다) - 그리고 어떻게 든 DLL을 하나의 파일로 병합하는 것은 의미있는 이점을주지 못할 것입니다.

0

얼마나 유용 할 지 모르지만 (ILmerge와 함께) 병합을 시도 할 수 있습니다. 그런 다음 가능한 한 많은 파일을 하나의 파일로 병합하면 다시 보안에 도움이 될 수 있습니다. 도움이 될 수도 있습니다. http://weblogs.asp.net/ralfw/archive/2007/02/04/single-assembly-deployment-of-managed-and-unmanaged-code.aspx

잘하면 도움이됩니다.

+1

네이티브 코드로 DLL을 ILMerge 할 수 없다. –

+0

그것은 그대로 남아 있어야합니다. – Robert

관련 문제