자바를 사용하여 응용 프로그램을 개발하고 있지만 코드를 공개하지는 않을 것입니다. 문제는 이러한 jar 디 컴파일러 중 하나를 테스트 한 결과 내 jar 파일에서 코드를 거의 완벽하게 얻을 수 있었다는 것입니다. 제 질문은 내 코드를 추출하지 않고 jar 파일을 어떻게 배포 할 수 있습니까?Jar 파일이 디 컴파일되지 않도록 보호하려면 어떻게해야합니까?
답변
Java는 컴파일하는 동안 (동적로드 및 반영을 허용하는) 대부분의 "메타 데이터"를 보존하므로 컴파일 된 클래스 파일을 역 컴파일 (역 분해) 할 수 있습니다. 그래서 복구 된 코드는 원본과 매우 유사합니다.
완벽하지는 않지만 아마도 유일한 예는 ProGuard과 같은 난독 화기를 사용하는 것입니다.
수 없습니다. 최소한 JVM은 코드를 실행하기 위해 코드를 가져와야 할 것입니다. JVM에서 코드를 가져올 수 있다면 누구나 할 수 있습니다.
코드를 난독 화하는 것이 가장 좋지만, 스택 추적을 따르기가 어렵 기 때문에 프로덕션 버그 추적이 매우 어려워 지므로 권장하지는 않습니다.
(좋은) 난독 화 도구는 실행 파일의 스택 출력을 원래 클래스와 코드 행으로 변환하는 데 사용할 수있는 테이블을 제공한다는 것을 알고 있습니다. 그러나 일반적으로 코드를 보호하는 것보다 코드를 압축하는 것이 더 효과적입니다. –
분해로부터 코드를 보호 할 가능성은 없습니다. 'proguard'와 같은 난독 화 도구를 사용할 수 있습니다. 디 컴파일 후에도 코드를 이해하는 것은 거의 불가능합니다.
시장에서 일부 obfuscator를 사용하여 코드를 난독 처리하십시오. Obfuscator는 클래스 이름과 메서드를 이상한 이름으로 변경하여 사람들이 코드를 이해하기 어렵게 만듭니다. 사람들이 여전히 코드를 디 컴파일 할 수는 있지만 뒤죽박죽 된 이름 때문에 코드를 이해하는 것이 어려울뿐입니다.
단점은 스택 추적에서 클래스와 메소드 이름이 뒤죽박죽이되므로 고객이 어떤 문제에 직면했을 때 난독 화 코드를 디버그하고 지원하기가 어렵다는 것입니다.
자바에서 리버스 엔지니어링하는 것은 결코 불가능합니다. 하지만 Proguard가 최고라고 생각합니다. IDE (예 : NetBeans)와 통합 할 수도 있습니다. 및 개미에 대한 ygard
- 1. 지나치게 큰 검색을 수행하지 않도록 보호하려면 어떻게해야합니까?
- 2. 이미지가 핫 링크되지 않도록 보호하려면 어떻게해야합니까?
- 3. Eclipse : jar 파일을 디 컴파일하고 프로젝트로로드하려면 어떻게해야합니까?
- 4. Codeforces.com과 같이 복사되지 않도록 웹 페이지의 콘텐츠를 보호하려면 어떻게해야합니까?
- 5. ANT 작업/대상이 실수로 실행되지 않도록 보호하려면 어떻게해야합니까?
- 6. Jar 파일을 디 컴파일하지 않음
- 7. 내 apk가 디 컴파일되지 않게하는 방법
- 8. 내 클래스가 디 컴파일되지 않게하는 방법
- 9. 뮤텍스로 벡터를 보호하려면 어떻게해야합니까?
- 10. 개인 API를 보호하려면 어떻게해야합니까?
- 11. 사용자 등록을 보호하려면 어떻게해야합니까?
- 12. CSS에서 XSS를 보호하려면 어떻게해야합니까?
- 13. 코드를 보호하려면 어떻게해야합니까?
- 14. .htaccess로 index.php를 보호하려면 어떻게해야합니까?
- 15. webproject .java 파일이 컴파일되지 않았습니다.
- 16. JSP 파일이 컴파일되지 않습니다. - JSPTranslator.CouldNotLoadClass
- 17. Flex/AIR의 API 키를 디 컴파일에서 보호하려면 어떻게해야하나요?
- 18. Zip Bomb에서 자신을 보호하려면 어떻게해야합니까?
- 19. 속도 템플리트를 변조로부터 보호하려면 어떻게해야합니까?
- 20. iPhone에서 블롭 데이터를 보호하려면 어떻게해야합니까?
- 21. .htaccess를 사용하여 디렉토리를 보호하려면 어떻게해야합니까?
- 22. 공용 속성을 스레드로부터 보호하려면 어떻게해야합니까?
- 23. 내 비디오를 도난으로부터 보호하려면 어떻게해야합니까?
- 24. 내 Facebook AppId를 보호하려면 어떻게해야합니까?
- 25. 전체 Jar 파일을 디 컴파일하는 방법은 무엇입니까?
- 26. .jar 파일을 디 컴파일하는 방법은 무엇입니까?
- 27. Jar 파일이 실행되지 않습니다
- 28. Jar 파일이 실행되지 않습니다
- 29. Jar 파일이 작동하지 않습니다.
- 30. 내 라이브러리 jar 파일이
나는 중복이 실제로 내 질문에 답을한다는 것을 알았습니다. 지시에 감사드립니다. – Pouya