2012-06-23 2 views
2

C# 응용 프로그램을 설치 프로젝트를 사용하여 배포하는 작업을 완료했습니다. 응용 프로그램이 설치되면 "프로그램 파일"(또는 선택한 모든 사용자) 폴더에 파일 및 폴더가 만들어집니다.C# 응용 프로그램 배포, 보안, 복사 방지?

이 응용 프로그램의 보안 문제가 있습니다. 누군가 설치된 폴더를 복사 한 다음 컴퓨터에서 응용 프로그램을 실행하면 정상적으로 실행됩니다. 응용 프로그램은 설치 파일을 사용하여 PC에 설치된 경우에만 실행해야합니다. 그러나 설치된 파일을 새 PC에 복사 한 다음 "exe"를 실행해도 응용 프로그램이 실행됩니다.

나는 이런 일이 발생하지 않도록하고 싶습니다. 이 주제에 대한 도움은 정말 감사하겠습니다. 나는 이것을 달성하는 많은 방법이 있음을 알고 있습니다. 몇 가지를 지적하십시오.

+2

더 자세히 설명하면 사용자가 설정을 실행하도록 요구하는 이유는 무엇입니까? 더 안전한/보호가 된 이유는 무엇입니까? –

+0

아래 정보 중 사용 하시겠습니까? 그렇다면 사용 가능한 응답 중 하나를 upvote하거나 받아 들일 수 있습니다. –

답변

2

오케이. 잘 들어! 당신이 설치 프로젝트를 사용하여 설치하는 경우

은 regedit를 경우 레지스트리 항목을 생성합니다 cutsom의 행동에 어셈블리를 추가 할 수 있습니다.

하고 그것이 더 작업을 계속하지 않을 경우,이 응용 프로그램을 설치하시기 바랍니다 오류 메시지가 표시됩니다 경우 레지스트리를 발견하면, 등록 소를 검사 프로젝트 코드의 초기 라인을 포함한다. 이것은 확실히 작동합니다;

+2

누군가는 레지스트리 항목을 내보내거나 가져올 수 있기 때문에 확실하지 않습니다. 엔트리가 특정 머신에 대해 어떻게 든 해쉬되지 않는 한. –

+0

이것은 작동하지 않고 레지스트리 항목을 쉽게 내보낼 수 있습니다. –

+0

나는 그것이 절대 안전한 것은 아니라는 것을 알고있다. 그러나 클라이언트는이 보안 수준에 만족했다. 나는 여전히 응용 프로그램을 더욱 안전하게하려고 노력 중이다. – Sunny

0

다른 모든 응용 프로그램과 마찬가지로 설치 프로그램을 실행하면 이미 레지스트리에 키가 남습니다. 추가 키를 만들 필요가 없습니다.

당신을 찾고 설치된 응용 프로그램을 반복 처리하고,이 설정을 실행하려면 사용자에게 알려 있지 않은 경우.

레지스트리 정보를 보면됩니다.

http://mdb-blog.blogspot.com.ar/2010/12/c-check-if-app-is-installed-for-all.html

참고 : 여기에 단지 사용자에 대한, 또는 모두를 위해 설치가 설치되어 있지 않은 경우 반환하는 좋은 구현,의이되어 있지 복사 방지를 구현하는 방법, 그것을 확인하기 위해 단지 그에 따라 설치 프로세스가 실행되었음을 나타냅니다.

0

응용 프로그램을 컴퓨터 잠금으로 설정하여 특정 컴퓨터를 하나만 실행하도록 할 수 있습니다. 이는 일반적으로 기계 잠금 또는 활성화 된 라이센스를 사용하여 수행됩니다.

는이 기능을 제공 CryptoLicensing를 살펴 보자.

면책 조항 : 나는 LogicNP 소프트웨어, CryptoLicensing의 개발자 작동합니다.