다음을 통해 공유


강력한 이름을 가진 어셈블리를 Dotfuscator로 난독 처리

강력한 이름을 가진 어셈블리에는 디지털 서명이 됩니다. 따라서 런타임에 서명 후 어셈블리가 변경되었는지 여부를 알 수 있습니다. 서명은 RSA 공용/개인 키 쌍 중 개인 키를 사용하여 서명한 SHA1 해시입니다. 서명과 공용 키 모두 어셈블리의 메타데이터에 포함됩니다.

Dotfuscator에서 어셈블리가 수정되므로 서명은 Dotfuscator를 통해 어셈블리를 실행한 에 이루어져야 합니다.

Dotfuscator Professional Edition에서는 이 단계를 난독 처리 과정 중에 처리할 수 있습니다. Community Edition을 사용할 경우 난독 처리가 완료된 후 별도의 빌드 단계에서 서명을 완료해야 합니다.

난독 처리 후 수동으로 다시 서명

개발 도중 및 Dotfuscator를 통한 난독 처리 전에는 서명을 연기한 다음 나중에 서명 프로세스를 완료해야 합니다. 어셈블리 서명 연기에 대한 자세한 내용은 .NET Framework 설명서를 참조하십시오.

강력한 이름의 어셈블리를 난독 처리하려면 다음 단계를 수행하십시오.

  • 개발하는 동안 어셈블리 서명을 연기합니다. 서명 연기는 두 개의 사용자 지정 특성을 어셈블리에 포함하여 수행됩니다. C#의 경우에는 다음 줄을 AssemblyInfo.cs에 포함합니다.
[assembly:AssemblyKeyFileAttribute("keyfile.snk")] [assembly:AssemblyDelaySignAttribute(true)]
  • 여기서 keyfile.snk는 공용 키를 포함하는 파일의 이름입니다.
  • 어셈블리를 테스트하는 동안 .NET Framework와 함께 제공되는 강력한 이름 도구(sn.exe)를 사용하여 강력한 이름 확인을 해제합니다.
sn -Vr TestAsm.exe
  • 서명이 연기된 어셈블리를 Dotfuscator로 난독 처리합니다.
  • Dotfuscator를 실행한 후 sn.exe를 사용하여 난독 처리된 어셈블리에 대한 확인을 설정합니다. 이렇게 하면 Dotfuscator로 난독 처리된 어셈블리의 확인을 건너뛰도록 등록한 내용이 취소됩니다.
sn -Vu TestAsm.exe 
  • 이제 Dotfuscator로 난독 처리된 어셈블리의 서명 프로세스가 완료되었습니다. 여기서 keyfile.snk는 개인 키를 포함하는 파일의 이름입니다.
sn -R TestAsm.exe keyfile.snk

서명이 연기된 어셈블리를 테스트하는 동안에는 강력한 이름의 유효성을 검사하지 마십시오.

© 2002-2007 PreEmptive Solutions. All rights reserved.