jhsdb(핫스팟 디버거)를 사용하여 암호화된 Java 애플리케이션을 해독하는 방법
자바 코드 보호를 위한 한 가지 해결책은 클래스 파일 암호화 또는 JAR 파일 암호화입니다. 이 방법은 암호화된 클래스 파일이나 JAR 파일을 자체 정의 로더를 통해 로드하는데, JVM의 Attach 메커니즘 때문에 무용지물이며 JDK에 포함된 도구를 사용하여 쉽게 해독될 수 있습니다.
샘플 애플리케이션
아래는 간단한 스윙 윈도우와 버튼이 포함된 샘플 애플리케이션입니다. https://github.com/3-keys/test-swing-app

애플리케이션 암호화
Eclipse를 사용하여 실행 가능한 JAR 파일을 내보내고 암호화 도구를 사용하여 해당 JAR 파일을 암호화합니다. 암호화 후 JAR 파일의 구조는 다음과 같습니다.

test-swing-app.jar는 암호화된 jar 파일 데이터이고, Launcher 클래스는 이 도구의 사용자 정의 로딩 클래스이며, 암호화된 jar 패키지는 표준 java -jar 명령어를 통해 실행됩니다.
암호화된 애플리케이션을 해독하세요
먼저 암호화된 jar 파일을 실행한 다음 JDK의 bin 디렉토리를 찾으면 jshdb 파일을 찾을 수 있을 것입니다.

jhsdb hsdb를 실행하고 HotSpot 디버거를 엽니다. Windows 환경이라면 관리자 권한으로 실행해야 할 수도 있습니다. 파일 메뉴에서 "HotSpot 프로세스에 연결..."을 선택합니다.

리눅스 시스템에서는 `ps aux | grep java` 명령어를 사용하고, 윈도우 시스템에서는 작업 관리자를 통해 프로세스 PID를 찾으세요. 찾은 프로세스 PID를 아래 대화 상자에 입력하세요.

성공적으로 연결되면 도구->클래스 브라우저를 클릭하세요.

클래스 브라우저에는 로드된 모든 클래스에 대한 정보가 포함되어 있습니다. com.example을 검색하면 com.example 아래에 있는 모든 클래스를 볼 수 있습니다.

com.example.TestWindow @0x0000…을 클릭한 다음 “클래스 파일 생성”을 클릭하세요.

jhsdb 명령이 실행되었던 디렉토리로 이동하면 생성된 클래스 파일을 볼 수 있습니다.

사용 루이텐 또는 자드엑스 클래스 파일을 열면 역컴파일된 코드를 볼 수 있습니다.
