문제

이것은 SafeNet / Aladdin Sentinel Hasp 키와 관련하여 있습니다.나는 그들의 사이트에 게시했지만 다른 사람이 대답을 알고 있거나 유용한 대답을 찾을 수 있습니다.

"소프트웨어 보호 및 라이센스 GUID.PDF"에서 SAFENET가 제공하는 문서에 따르면 공급 업체 코드 비밀을 유지해야합니다.

"\ samples \ runtime \ csharp \"에 제공된 샘플을 빌드 한 다음 봉투로 앱을 보호 한 다음 Jetbrains Dotpeek에서 봉투 앱을 디 컴파일하면 쉽게 쉽게 공급 업체 코드 문자열을 볼 수 있습니다.봉투는 Const 문자열을 난독하지 않는 것으로 보입니다.아니면 클래스 레벨 문자열 일 수도 있습니다.

공급 업체 코드를 사용하는 것이 좋습니다.매우 비밀로 보이지 않습니다.공급 업체 코드 문자열을 함수의 임시 변수에 넣으면 완성 해제됩니다.그런 방식인가?그렇다면 샘플 코드가 반영하지 않아야합니까?

감사합니다.

도움이 되었습니까?

해결책

우리는 똑같은 것을 알아 차렸다. 그 이유는 const 변수가 컴파일러가 컴파일 된 시간에 일정 값 자체로 const 변수를 사용하여 Per const 변수에 대한 참조를 교체 할 수있는 컴파일 시간 상수 컴파일합니다. 따라서 기본적으로 엔벨로프 프로세스가 시작될 때까지 난독 화를위한 const 문자열 필드가 아닙니다. (이것은 완전히 사실이 아닙니다 - const의 정의는 IL에서 지속되지만 문서의 목적은 모든 코드에서 참조되지 않습니다.)

우리가 처리하는 방식은 static 생성자에서 초기화 된 readonly static 문자열을 사용하여 이렇게하면 문자열 값이 런타임 상수로 저장되어 봉투 프로세스가 난독 화를 위해 적절하게 액세스 할 수 있습니다. (이것은 언급 한대로 어셈블리를 조절함으로써 확인됩니다.)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top