다른 프로그래머가 내 어셈블리를 감싸지 못하게하려면 어떻게해야합니까?

StackOverflow https://stackoverflow.com/questions/1607107

문제

누군가가 .NET에서 내 구성 요소 DLL을 보호하기위한 최선의 접근법을 말해 줄 수 있습니까?

공개적으로 제공 될 몇 가지 DLL 구성 요소를 작성했습니다. 그에 따라 라이센스가 부여되지만 프로그래밍 방식으로 솔루션 내의 구성 요소를 불법적으로 사용하지 않도록 프로그래밍 방식으로 원합니다.

어떤 아이디어?

도움이 되었습니까?

해결책

코드가 이미 난독 화되었으므로 내장 클래스가 메소드가 호출되기 전에 라이센스 키로 인스턴스화하도록 시행 할 수 있습니다. 키가 유효하지 않은 경우/PRESESS가없는 경우 메시지 상자를 표시하거나 오류/예외를 반환 할 수 있습니다. 이전 게시물에서 알 수 있듯이이 작업이 수행되는 위치에 대한 많은 예가 있지만, 이전 게시물에서 알 수 있듯이 단순히 최종 사용자가 어셈블리를 불법으로 사용하지 못하게하는 것입니다. 완전히 막지는 않습니다. 충분한 시간과 인센티브가 주어지면 모든 것이 깨질 수 있습니다.

다른 팁

사람들이 기술 수준에서 일을하는 것을 막으려 고 시도하면 리버스 엔지니어링 (난독 화 된 코드는 절대로 멈추지 않을 것입니다. 그래서. 최선의 방법은 라이브러리를 이용 약관을 사용할 수있는 라이센스를받는 사람들을 강화하고 이용 약관을 시행 할 법적 권리를지지하는 것입니다.

당신이 할 수있는 가장 좋은 방법은 코드를 난독 화하는 것입니다. 이것은 100% 안전하지 않으며 역 엔지니어링 할 수 있습니다.

dotpuscator

좋은 것입니다.

"배포되지 않음"이 부족한 것은 무단 액세스를 방지 할 수있는 100% 확실한 방법이 없습니다.

하드웨어 또는 소프트웨어 라이센스 장치를 살펴볼 수 있습니다. 코드 전체에 라이센스 점검을 뿌리고 장치가 존재하지 않는 경우 모든 것을 중단시킵니다.

또 다른 아이디어와 어셈블리의 모든 유형을 다음과 같이 선언하는 것입니다. internal 그런 다음 메인 응용 프로그램 exe를 InternalsVisibleTo 어셈블리 속성. 이것은 일반적으로 내부 멤버를 단위 테스트하는 데 사용되며 실제로 얼마나 안전할지 모르겠습니다. 이렇게하면 사람들이 어셈블리를 분해하는 것을 막을 수 없으므로 여전히 난독 화하는 것을 원할 수도 있으며 도서관을 판매하는 경우 전혀 작동하지 않습니다. 고객).

피닉스가 말했듯이, 반사판과 같은 도구를 통해 코드를 완전히 보호 할 수 있기 때문에 코드를 완전히 보호 할 수있는 방법은 없습니다.

그러한 도구 중 하나는 사용하는 것입니다 dotpuscator.

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