2009-09-05 5 views
0

자바 프로젝트를 만들고이를 클라이언트에 전달하고 싶지만 클라이언트가 jar 파일의 압축을 풀어서 소스 코드를 쉽게 볼 수 있으므로 jar 파일로 제공하고 싶지 않습니다.자바 프로젝트를 포장하는 방법?

클라이언트가 소스 코드를 볼 수 없거나 소스 코드를 변경할 수 없도록 Java 프로젝트를 패키징하는 방법은 무엇입니까?

한 가지 더, 핵심 기능을 통합하여 클라이언트가 먼저 제공 한 키로 해당 소프트웨어에 액세스 할 수 있습니까?

둘째, 소프트웨어를 통해 해당 키를 통해 단일 컴퓨터에서만 실행할 수있는 다른 기능을 통합 할 수 있습니까?

소프트웨어는 여전히 플랫폼 간 기능을 갖추고 있어야하며 가능하지 않은 경우 Windows에서 만든 것처럼 데비안 Linux에서 어떻게 만들 수 있는지 기억하십시오. 첫 번째 점에

답변

2

. 클래스 파일을 왜 열 받게하지 않습니까? 이들은 클라이언트가 소스를 볼 수 없도록 바이트 코드로되어 있습니다.

키 제공 방법. 이 작업을 수행 할 수 있고이를 허용하는 라이브러리가 있지만 적어도 지식에 따르면 아직 금이 간 DRM 시스템이 개발되지 않았으므로주의해야합니다. 대부분의 사용자는 자신이 할 수있는 일을 제한하는 소프트웨어를 좋아하지 않습니다. 세 번째 질문에도 같은 요지가 적용됩니다.

+0

클래스 파일은 Decompilers 사용 가능한 프리웨어로 쉽게 디 컴파일 할 수 있습니다. 나는 "adatapost"가 제안한 코드의 난독 화를 좋아합니다. 주요 기능을 제공하기 위해 어떤 라이브러리가 있는지 자세히 설명해 주시겠습니까? –

+0

사람들이 정말로 원할 경우 난독 화 코드를 쉽게 리버스 엔지니어링 할 수 있습니다. 결국 네트워크 인터페이스 (웹 또는 기타)를 통해 프로그램 제어를 유지하지 않으면 클라이언트가 클라이언트 인터페이스를 방해하지 않는다고 보장 할 수 없습니다. 그리고 심지어 그때 .... 도서관에 관해서는, 당신이 정말로 원한다면 ... http://www.javalicensemanager.com/을보세요 – AAA

1

클라이언트가 소스 코드를 갖고 호스트 별 (기타) 라이센스를 시행하기가 다소 어렵게 만들 수있는 몇 가지 간단한 방법이 있습니다. 예를 들어, 난독 화자는 바이트 코드 파일을 리버스 엔지니어링하는 것을 더 어렵게 만들고, 라이센스 관리자는 생성하고 제공하는 "키"를 기반으로 다양한 제한 사항을 지원합니다.

문제는 제한 사항을 파괴하려고하는 사람으로부터 당신을 보호 할 수 없다는 것입니다. 예를 들어, 코드 작성자가 라이센스 관리자를 호출하는 위치를 알아내는 사람을 방지 할 수있는 obfuscator는 없으며 코드를 수정하여 라이센스 검사를 우회 할 수 있음을 알게됩니다.

전체 실행 플랫폼을 잠그는 것 (예 : 클라이언트의 디버거 실행 능력 변경, 물리적 장치 읽기 등)에 대한 단편적 인 작업에 대해 수행 할 수있는 조치는 없습니다.

보다 효과적인 전략은 클라이언트가 서명해야하는 소프트웨어 라이센스에 적절한 보호를 포함하는 것입니다. 또한 라이센스 계약을 고의적으로 위반하는 경우 고객을 법원에 데려 가야 할 수도있는 위험이 있음을 인정합니다.

+0

매우 도움이되는 대답. 고마워. 라이센스 관리자를 사용하는 방법에 대해 자세히 알려주시겠습니까? –

관련 문제