PreEmptive Protection - Dotfuscator 보안 소프트웨어 개발 수명 주기에 쉽게 맞는 포괄적인 .NET 애플리케이션 보호를 제공합니다. 이를 사용하여 데스크톱, 모바일, 서버 및 포함된 애플리케이션을 강화, 보호 및 정리하여 영업 비밀 및 기타 IP(지적 재산권)를 보호하고, 불법 복제 및 위조를 줄이고, 변조 및 무단 디버깅으로부터 보호합니다. Dotfuscator는 더 많은 프로그래밍이나 소스 코드에 액세스할 필요 없이 컴파일된 어셈블리에서 작동합니다.
보호가 중요한 이유
IP(지적 재산권 )를 보호하는 것이 중요합니다. 애플리케이션의 코드에는 IP로 간주될 수 있는 디자인 및 구현 세부 정보가 포함되어 있습니다. 그러나 .NET Framework 빌드된 애플리케이션에는 중요한 메타데이터와 높은 수준의 중간 코드포함되어 있으므로 많은 무료 자동화된 도구 중 하나를 사용하여 쉽게 리버스 엔지니어링할 수 있습니다. 리버스 엔지니어링을 중단 및 중지하면 무단 IP 공개를 방지하고 코드에 영업 비밀이 포함되어 있음을 입증할 수 있습니다. Dotfuscator는 .NET 어셈블리를 난독 처리하여 리버스 엔지니어링을 방해하면서, 원래 애플리케이션 동작을 유지할 수 있습니다.
애플리케이션 무결성을보호하는 것도 중요합니다. 악의적인 행위자는 리버스 엔지니어링 외에도 애플리케이션을 불법 복제하거나 런타임에 애플리케이션의 동작을 변경하거나 데이터를 조작하려고 할 수 있습니다. Dotfuscator는 애플리케이션에 권한 없는 사용(), 변조, 타사 디버깅 및 루팅된 디바이스를 포함한 상황을 감지하고 대응할 수 있는 기능을 삽입할 수 있습니다().
Dotfuscator가 보안 소프트웨어 개발 수명 주기에 적합한 방법에 대한 자세한 내용은 PreEmptive Solutions의 SDL App Protection 페이지참조하세요.
Dotfuscator 커뮤니티 정보
Microsoft Visual Studio의 복사본에는 개인용으로 무료로 PreEmptive Protection - Dotfuscator Community복사본이 포함되어 있습니다. (이 무료 버전은 이전에 Dotfuscator Community Edition 또는 Dotfuscator CE라고 했습니다.)
Visual Studio에 포함된 Dotfuscator Community 버전을 설치하는 방법에 대한 지침은 설치 페이지참조하세요.
Dotfuscator Community는 개발자, 설계자 및 테스터를 위한 다양한 소프트웨어 보호 및 강화 서비스를 제공합니다. Dotfuscator Community에 포함된 .NET 난독 처리 및 기타 애플리케이션 보호 기능의 예는 다음과 같습니다.
- 식별자 이름을 변경하여 컴파일된 어셈블리의 리버스 엔지니어링을 더 어렵게 만듭니다.
- 변조 방지변조된 애플리케이션의 실행을 감지하고 변조된 세션을 종료하거나 응답합니다.
- 디버그 방지실행 중인 애플리케이션에 대한 디버거의 첨부 파일을 검색하고 디버그된 세션을 종료하거나 응답합니다.
- 루트 방지 디바이스애플리케이션이 루팅된 Android 디바이스에서 실행 중인지 감지하고 이러한 디바이스의 세션을 종료하거나 응답할 수 있습니다.
- 애플리케이션 만료 동작은 "수명 종료" 날짜를 인코딩하고 만료된 애플리케이션 세션을 종료하는.
애플리케이션 보호 전략에 적합한 방법을 포함하여 이러한 기능에 대한 자세한 내용은 기능 페이지참조하세요.
Dotfuscator Community는 기본 보호 기능을 기본적으로 제공합니다. Dotfuscator Community의 등록 사용자 및 PreEmptive Protection - Dotfuscator Professional의 사용자에게는 추가적인 애플리케이션 보호 조치가 제공되며, 이는 세계 최고의 .NET 난독화 도구입니다. Dotfuscator 향상에 대한 자세한 내용은 업그레이드 페이지를 참조하세요.
시작
Visual Studio에서 Dotfuscator Community 사용을 시작하려면 검색 상자(Ctrl+Q)에 dotfuscator
입력합니다.
- Dotfuscator Community가 이미 설치된 경우 검색 상자메뉴 제목 아래에 Dotfuscator Community를 시작하는 옵션이 표시됩니다. 자세한 내용은 전체 Dotfuscator 커뮤니티 사용자 가이드 시작 페이지참조하세요.
- Dotfuscator Community가 아직 설치되지 않은 경우 검색 상자 대신 개별 구성 요소 제목 아래에 PreEmptive Protection - Dotfuscator 설치가 표시됩니다. 자세한 내용은 설치 페이지 참조하세요.
preemptive.com 의 Dotfuscator 다운로드 페이지에서Dotfuscator Community의 최신 버전을 다운로드할 수 있습니다.
Dotfuscator Community 5에서 업그레이드
PreEmptive Protection - Dotfuscator Community 6으로 업그레이드하는 방법을 알아봅니다.
설치 기록 및 Visual Studio 버전에 따라 현재 이전 주 버전인 Dotfuscator Community 5를 실행하고 있을 수 있습니다. 그렇다면, 중요한 것은 코드에 최신 보호 조치이 제공되고 있는지 확인하는 것이므로 업그레이드를 해야 합니다. 업그레이드는 무료로 사용할 수 있습니다.
이 문서에서는 현재 사용 중인 버전, 필요한 경우 버전 6으로 업그레이드하는 방법 및 두 버전 간에 대체되거나 제거된 기능을 확인하는 방법을 설명합니다.
Dotfuscator 버전 확인
실행 중인 Dotfuscator 버전이 확실하지 않은 경우 다음 옵션 중 하나를 수행하여 버전을 확인할 수 있습니다.
Visual Studio의 도구 메뉴로 이동하고 PreEmptive Protection - Dotfuscator Community선택하여 Dotfuscator Community GUI(그래픽 사용자 인터페이스)를 시작합니다.
Dotfuscator GUI에서 도움말 메뉴를 열고 정보... 선택하여 정보 화면을 표시합니다.
이 화면에는 Dotfuscator의 버전이 나열됩니다.
명령줄 인터페이스사용하여 Dotfuscator를 빌드에 통합한 경우 다음 예제와 같은 줄에 대한 빌드 로그를 확인할 수도 있습니다.
Dotfuscator Community Version 5.42.0.9514-e0e25f754
이 텍스트를 보려면 빌드의 자세한 정보 표시 수준을 높여야 할 수 있습니다. Visual Studio의 경우 자세한 정보 표시 설정참조하세요.
첫 번째 점 .
이전 버전의 첫 번째 정수는 Dotfuscator의 주 버전을 나타냅니다. 첫 번째 정수가 5
경우 최신 Dotfuscator 6 기능 및 보호 업데이트를 활용할 수 있도록 이 페이지에서 업그레이드 단계를 수행해야 합니다.
업그레이드 지침
이 섹션에는 Dotfuscator Community의 일반적인 사용량을 버전 5에서 버전 6으로 업그레이드하기 위한 지침 집합이 포함되어 있습니다.
Dotfuscator 6 설치
Dotfuscator Community는 Visual Studio용 확장으로 배포됩니다. Dotfuscator 6을 설치하는 지침은 사용자가 사용하는 Visual Studio 버전에 따라 다릅니다.
Visual Studio 2022 Dotfuscator Community 6은 Visual Studio 2022에 포함되어 있습니다.
Visual Studio 2019 Dotfuscator Community 6은 이후 버전의 Visual Studio 2019(버전 16.10.0 이상)에 포함되어 있습니다. Visual Studio 2019 최신 버전으로 업데이트합니다. Visual Studio를 업데이트하면 Dotfuscator Community 5 설치가 Dotfuscator Community 6으로 자동으로 업그레이드됩니다.
Dotfuscator가 아직 설치되어 있지 않은 경우 먼저 Visual Studio를 업데이트한 다음 설치확인합니다.
Visual Studio의 릴리스 외에도 Dotfuscator 다운로드 페이지에서 항상 최신 버전의 Dotfuscator Community를 가져올 수 있습니다.
Visual Studio 2017 이 버전의 Visual Studio는 Dotfuscator Community 5와 함께 제공되었습니다. 그러나 Dotfuscator 다운로드 페이지로 이동하여 적절한 다운로드 링크를 선택하여 Dotfuscator Community 6을 설치하거나 업그레이드할 수 있습니다.
다운로드한
.vsix
파일을 실행하고 프롬프트에 따라 Dotfuscator Community 6을 Visual Studio에 설치합니다. 기존 Dotfuscator Community 5 설치도 업그레이드됩니다.이전 버전의 Visual Studio Dotfuscator Community 6은 이러한 버전의 Visual Studio에서 지원되지 않습니다. 최신 버전의 Visual Studio로 업그레이드하거나 Dotfuscator Community에서 Dotfuscator Professional로 업그레이드하는 것을 추천합니다.
이전에 Dotfuscator Community 5에 등록한 경우, Dotfuscator Community 6을 처음 실행할 때 그 등록이 자동으로 변환됩니다.
CLI에 대한 경로 업데이트
이전에 Dotfuscator 5의 CLI(명령줄 인터페이스)를 사용하여 앱을 보호한 경우 모든 프로젝트에서 CLI 경로를 업데이트하고 이를 참조하는 스크립트를 빌드해야 합니다.
Dotfuscator의 CLI 경로가 유효하지 않은 이유는 Dotfuscator Community와 함께 설치된 일부 실행 파일의 이름이 Dotfuscator 6에서 변경되었기 때문입니다. 이렇게 변경하면 Dotfuscator Community 및 Dotfuscator Professional에서 이러한 실행 파일 이름이 동일하게 지정됩니다.
다음을 위한 실행 파일 | Dotfuscator 5 | Dotfuscator 6 |
---|---|---|
GUI | dotfuscator.exe |
dotfuscatorUI.exe |
CLI | dotfuscatorCLI.exe |
dotfuscator.exe |
메모
Dotfuscator CLI가 Visual Studio의 설치 디렉터리 아래에 설치되므로 주 버전의 Visual Studio 간에 업그레이드하거나 Visual Studio 버전을 전환하는 경우에도 CLI 경로가 잘못될 수 있습니다. 아래에 나열된 증상 및 솔루션도 이 시나리오에 적용됩니다.
빌드에서 잘못된 Dotfuscator CLI 경로를 사용하는 경우 다음 예제 중 하나와 같은 오류가 발생할 수 있습니다.
'"[...]\PreEmptiveSolutions\DotfuscatorCE\dotfuscatorCLI.exe"' is not recognized as an internal or external command, operable program or batch file.
The command ""[...]\PreEmptiveSolutions\DotfuscatorCE\dotfuscatorCLI.exe" Dotfuscator.xml" exited with code 9009.
올바른 CLI 경로를 사용하도록 빌드를 업데이트하려면 다음을 수행합니다.
Visual Studio의 도구 메뉴로 이동하고 PreEmptive Protection - Dotfuscator Community선택하여 Dotfuscator Community GUI 시작합니다.
Dotfuscator Community GUI에서 도구 메뉴로 이동하고 Dotfuscator 명령 프롬프트선택합니다.
열리는 명령 프롬프트에서
where dotfuscator.exe
입력합니다. 나중에 참조할 수 있도록 일반 텍스트 문서에 표시된 첫 번째 경로를 복사합니다. 이 경로는 Dotfuscator Community 6의 CLI에 대한 새로운 경로입니다.빌드 시스템에 맞게 프로젝트 또는 빌드 구성을 엽니다.
- Visual Studio 프로젝트의 경우 프로젝트 파일(
.csproj
,.vbproj
또는.fsproj
)을 일반 텍스트로 엽니다. Visual Studio에서 프로젝트 파일 엽니다.
- Visual Studio 프로젝트의 경우 프로젝트 파일(
프로젝트 또는 빌드 구성에서 Dotfuscator Community 5의 CLI에 사용된 오래된 경로를 찾으세요. 일반적으로
dotfuscatorCLI.exe
에서 끝나는 경로입니다.5단계에 있는 이전 경로를 3단계에서 적어 두는 새 경로로 바꿉니다.
이전 경로 중 하나가 절대 경로가 아닌 경우 컨텍스트에 따라 새 경로를 적절하게 조정해야 합니다. 아래 예제에서는 이전 경로에서
VSInstallDir
환경 변수를 사용했기 때문에 해당 새 경로도 동일하게 수행되어야 합니다.- 3단계의 새 경로:
C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\Common7\IDE\Extensions\PreEmptiveSolutions\DotfuscatorCE\dotfuscator.exe
- 프로젝트 파일의 이전 경로:
%VSInstallDir%\Common7\IDE\Extensions\PreEmptiveSolutions\DotfuscatorCE\dotfuscatorCLI.exe
- 프로젝트 파일의 새 경로:
%VSInstallDir%\Common7\IDE\Extensions\PreEmptiveSolutions\DotfuscatorCE\dotfuscator.exe
- 3단계의 새 경로:
Git과 같은 소스 제어 시스템을 사용하는 경우 6단계의 변경 내용이 해당 시스템에 반영되는지 확인합니다. 시스템 및 조직에 적합할 수 있으므로 이러한 변경 내용을 팀의 나머지 부분에 배포합니다.
경고
dotfuscator.exe
Dotfuscator 5의 GUI(그래픽 사용자 인터페이스)를 참조하지만 Dotfuscator 6의 CLI(명령줄 인터페이스)를 참조하므로 여러 컴퓨터에서 공유되는 빌드 스크립트를 업데이트할 때는 주의해야 합니다.
Dotfuscator 6에 대해 업데이트된 스크립트를 실행하는 Dotfuscator 5가 설치된 컴퓨터는 스크립트가 의도한 명령줄 인터페이스 대신 그래픽 사용자 인터페이스를 시작하도록 합니다. 이로 인해 Dotfuscator의 보호를 적용하지 않았음에도 불구하고 빌드가 성공할 수 있습니다. 즉, 출력 패키지가 보호되지 않습니다.
다른 경우에는 빌드 오류가 발생할 수 있습니다.
이러한 시나리오를 방지하려면 모든 컴퓨터에서 Dotfuscator Community를 버전 5에서 버전 6으로 업그레이드하고 동시에 스크립트를 빌드합니다.
Dotfuscator 구성 파일 업그레이드
Dotfuscator 6 이전에 만든 모든 Dotfuscator 구성 파일(예: Dotfuscator.xml
)을 업그레이드해야 합니다.
이전 구성 파일을 사용하여 Dotfuscator CLI를 실행하려고 하면 다음 예제와 같은 오류가 발생합니다.
Dotfuscator Engine Initialization error: PreEmptive Analytics, Authenticode signing, and the Introduce Explicit Method Overrides setting are no longer supported. Please open your Dotfuscator config in the Config Editor which automatically upgrades it.
중요하다
이 오류가 표시되며 언급된 기능을 사용하지 않더라도 구성 파일을 업그레이드해야 합니다.
구성 파일을 업그레이드하려면 다음을 수행합니다.
Visual Studio의 도구 메뉴로 이동하고 PreEmptive Protection - Dotfuscator Community선택하여 Dotfuscator Community GUI(그래픽 사용자 인터페이스)를 시작합니다.
문제의 Dotfuscator 구성 파일(Ctrl+O)을 엽니다.
다음 메시지가 빌드 출력 탭에 표시됩니다.
PreEmptive Analytics, Authenticode signing, and the Introduce Explicit Method Overrides setting are no longer supported. The associated settings have been removed. Please save your upgraded Dotfuscator config.
업데이트된 Dotfuscator 구성 파일(Ctrl+S)을 저장합니다.
Git과 같은 소스 제어 시스템을 사용하는 경우 Dotfuscator 구성 파일의 변경 내용이 해당 시스템에 반영되는지 확인합니다. 시스템 및 조직에 적합할 수 있으므로 이러한 변경 내용을 팀의 나머지 부분에 배포합니다.
특성 라이브러리에 대한 참조 업데이트
Dotfuscator를 사용하면 소스 코드에서 .NET 특성을 통해 특정 기능을 구성할 수 있습니다. 프로젝트에서 이러한 특성을 사용하는 경우 Dotfuscator 6의 변경 내용을 해결하도록 업데이트해야 할 수 있습니다.
난독화 속성
난독 처리 특성변경되지 않았습니다. 이러한 특성은 .NET 기본 클래스 라이브러리에 정의되며 Dotfuscator Community 6은 계속해서 이를 적용합니다.
특성 확인
확인 특성 포함된 라이브러리가 변경되었습니다. Dotfuscator Community 5에서는 Dotfuscator 자체와 함께 파일로 배포되었습니다. Dotfuscator Community 6부터는 공용 NuGet 패키지로 배포됩니다.
이전 위치를 계속 참조하는 Visual Studio 프로젝트를 빌드하려고 하면 다음 예제와 같은 오류가 발생할 수 있습니다.
The type or namespace name 'PreEmptive' could not be found (are you missing a using directive or an assembly reference?)
The type or namespace name 'TamperCheckAttribute' could not be found (are you missing a using directive or an assembly reference?)
다음과 같은 경고가 표시 될 수도 있습니다.
Could not resolve this reference. Could not locate the assembly "PreEmptive.Attributes". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors.
새 위치를 사용하도록 프로젝트를 업데이트하려면 다음을 수행합니다.
PreEmptive.Attributes.dll
대한 프로젝트의 어셈블리 참조를 제거합니다.프로젝트에 NuGet 패키지 참조
PreEmptive.Protection.Checks.Attributes
추가합니다. 패키지는 기본 NuGet 피드에서 사용할 수 nuget.org.
각 Check 특성의 ExtendedKey
매개 변수도 제거되었습니다.
이러한 매개 변수는 Dotfuscator Community 5에서 무시되었지만 소스 코드가 해당 매개 변수를 사용하는 경우 프로젝트를 컴파일하기 위해 이러한 사용량을 제거합니다.
계측 특성
계측 특성은 Dotfuscator 5에서 PreEmptive Analytics 기능을 구성하는 데 사용되었습니다. 그러나 Dotfuscator 6에서는 PreEmptive Analytics가 제거되었습니다. PreEmptive Analytics 제거된 기능 하위 섹션을 참조하세요. 결과적으로 계측 특성도 제거되었습니다.
계측 특성을 사용하는 Visual Studio 프로젝트를 빌드하려고 하면 특성 이름이 다르지만(예: TamperCheckAttribute
대신 FeatureAttribute
) 특성 확인 설명한 것과 동일한 종류의 오류 및 경고가 발생할 수 있습니다.
계측 특성의 사용이 포함된 이미 빌드된 어셈블리에서 Dotfuscator를 실행하려고 하면 다음 예제와 같은 오류가 발생합니다.
The PreEmptive.Attributes.FeatureAttribute attribute (annotating SomeNamespace.SomeType::SomeMethod) is not recognized by this version of Dotfuscator.
이러한 문제를 해결하려면 소스 코드에서 계측 특성의 모든 사용을 제거합니다.
특성을 정의한 라이브러리에 대한 어셈블리 참조도 제거해야 합니다, PreEmptive.Attributes.dll
.
(이 라이브러리에 정의된 Check Attributes도 사용하는 경우 해당 특성이 이동되었습니다. 위의 확인 특성을 참조하세요.)
제거된 기능
Dotfuscator Community 6에는 Dotfuscator Community 5의 호환성이 손상되는 변경이 도입되었습니다. Dotfuscator Community 5를 사용한 경우 이 섹션에서는 빌드 수정이 필요하거나 Dotfuscator의 출력에 영향을 줄 수 있는 변경 내용을 처리하는 방법을 설명합니다.
변경 내용의 전체 목록은 변경 로그에서 확인할 수 있습니다.
PreEmptive Analytics
Dotfuscator 6은 PreEmptive Analytics, 특히 체크 원격 분석을 지원하지 않습니다. 그러나 검사 자체(애플리케이션 알림 및 작업 확인포함)는 여전히 지원됩니다.
Dotfuscator 6을 사용하려면 구성 파일 을 업그레이드하고 PreEmptive Analytics 설정을 제거하십시오.
코드 내 특성을 사용하여 PreEmptive Analytics를 구성하는 경우, 소스 코드에서 해당 특성을 제거하고 입력 어셈블리를 다시 빌드해야 Dotfuscator 6이 그 어셈블리를 보호할 수 있습니다.
검사 원격 분석을 사용하여 잘못된 상태(예: 변조가감지되는 경우)를 보고하는 경우 Azure Application Insights 또는 선택한 다른 서비스에 인시던트를 보고하는 사용자 지정애플리케이션 알림 바꿀 수 있습니다.
지원되지 않는 애플리케이션 유형
Dotfuscator 6에서는 다음 애플리케이션 유형이 더 이상 지원되지 않습니다.
- Windows Phone
- WinRT(Windows 8 앱)
- Silverlight
- Unity(게임 엔진)
- UWP(유니버설 Windows 플랫폼)
다른 종류의 UWP 앱을 보호하려면 Dotfuscator Professional으로 업그레이드하고 앱 보호 지침을 따르세요.
지원되지 않는 입력
Dotfuscator Community는 입력이UWP(유니버설 Windows 플랫폼) .appx
패키지를 더 이상 지원하지 않습니다. UWP 앱을 보호하려면 Dotfuscator Professional 업그레이드하고 앱 보호 지침을 따릅니다.
또한 Silverlight가 더 이상 지원되지 않으므로 .xap
패키지를 더 이상 입력으로 사용할 수 없습니다.
명시적 메서드 재정의 도입하기
명시적 메서드 재정의를 도입하는 이름 바꾸기 옵션이 Dotfuscator에서 제거되었습니다. Dotfuscator 6을 사용하려면 구성 파일 업그레이드하여 이 설정을 제거할 있습니다.
전체 설명서
Dotfuscator Community 사용자 인터페이스 사용하는방법을 포함하여 자세한 사용 지침은 preemptive.com 전체 Dotfuscator 커뮤니티 사용자 가이드를 참조하세요.