Bảo vệ thư viện lớp Java
Command encode ở tầng thấp hơn được sử dụng bởi Library Encryption; nó chỉ tạo ra một tập tin nén được bảo vệ, không sao chép môi trường chạy và cũng không tạo script khởi động ứng dụng.
1. Thao tác qua giao diện GUI
-
Chọn Library Encryption trên trang loại ứng dụng. Nếu cần một gói phân phối có thể khởi động trực tiếp, hãy chọn Java Application, Spring Boot hoặc Tomcat WAR thay thế.

-
Chọn tập tin JAR đầu vào, phiên bản Java và nền tảng đích phù hợp với môi trường tải thực tế, sau đó chọn chế độ đơn giản hoặc chế độ nâng cao. Kết quả xuất ra từ thư viện lớp sẽ không chứa
vlxjre, nhưng các tùy chọn này vẫn được dùng để xác định danh tính môi trường chạy tương ứng cho tập tin nén; đừng trộn lẫn kết quả từ các nền tảng khác nhau chỉ để giảm số lượng sản phẩm.
-
Chế độ đơn giản sẽ quét tập tin JAR đầu vào, tự động áp dụng các công cụ quét ZIP overlay và gợi ý đuôi tập tin nén mà Library Encryption hỗ trợ. Nó vẫn sẽ mã hóa tất cả các mục
.classtrong tập tin JAR đầu vào, trong khi các tài nguyên khác vẫn giữ nguyên trạng thái chưa được mã hóa. -
Chế độ nâng cao cho phép thiết lập theo nhu cầu:
- Disable JIT for protected methods: Chỉ thực thi các phương thức được bảo vệ trong trình thông dịch.
- Append scanner ZIP overlay: Cung cấp tài nguyên công khai và stub siêu dữ liệu cho các công cụ phân tích trực tiếp thư mục trung tâm của ZIP;
- Compatibility scan…:Quét các rủi ro về tính tương thích như truy cập vào ZIP, giả định về phần mở rộng tệp, các lớp JNI/bản địa và việc đọc mã byte thời gian chạy.
-
Chọn tên tệp đầu ra đầy đủ trên trang kết quả, thường sử dụng
.p4jx; chỉ sử dụng.jarkhi chương trình tích hợp yêu cầu bắt buộc phải có phần mở rộng.jar. Các lựa chọn hoặc gợi ý quét trên trang nâng cao của Archive suffix sẽ đồng bộ hóa phần mở rộng.p4jx/.jarcho các tệp đã chọn. Hãy kiểm tra lại phiên bản Java, nền tảng đích, JIT, scanner overlay, sau đó nhấn vào Run protection.Các nhiệm vụ dành cho một nền tảng duy nhất sẽ sử dụng đường dẫn tệp chính xác đã chọn. Khi chọn nhiều nền tảng đích, giao diện người dùng sẽ tạo các thư mục con theo từng nền tảng trong thư mục chứa tệp đó, và lưu các tập tin nén tương ứng vào từng thư mục đó.
2. Các trường hợp sử dụng phù hợp
- Bảo vệ các tệp JAR riêng của mình khi chúng là thành phần của các ứng dụng P4JX khác được kiểm soát;
- Tải lưu trữ P4JX bằng trình khởi động hiện có;
- Đòi hỏi việc quản lý thủ công thư mục giao hàng đầy đủ đối với các giải pháp tích hợp nâng cao.
Nếu mục tiêu là ứng dụng thông thường có thể chạy trực tiếp, Spring Boot hoặc Tomcat, hãy sử dụng lệnh đóng gói tương ứng.
3. Các lệnh cơ bản
p4j encode library.jar library.p4jx
Cũng có thể sử dụng dạng viết tắt:
p4j library.jar library.p4jx
encode sẽ ghi tên tệp đầu ra đầy đủ do người dùng cung cấp, vì vậy cả hai trường hợp dưới đây đều ở định dạng P4JX:
p4j encode library.jar library.p4jx
p4j encode library.jar library.jar
4. ZIP overlay
p4j encode library.jar library.p4jx \
--zip-overlay scanner
overlay chỉ chứa tài nguyên công khai, thư mục và stub siêu dữ liệu để tương thích với các công cụ phân tích trực tiếp thư mục trung tâm của ZIP. Nó không làm lộ phần triển khai thực của các phương thức được bảo vệ và cũng không biến P4JX thành một JAR thông thường.
5. Yêu cầu khi chạy
Lớp cơ sở encode sẽ không tạo ra vlxjre; người dùng phải cung cấp môi trường chạy VLX tương ứng với danh tính khi mã hóa. Không được:
- Sử dụng OpenJDK/Oracle JDK thông thường để tải chúng;
- Sao chép
lib/moduleshoặc các thư viện native từ gói đầu ra của một phiên bản khác; - Sử dụng lẫn lộn môi trường chạy của các nền tảng mục tiêu, dòng lập trình JDK hoặc nhiệm vụ mã hóa khác nhau với các archive.
Đối với các dự án được giao thông thường, nên ưu tiên sử dụng các lệnh đóng gói cấp cao để tự động duy trì các mối quan hệ này.
6. Giấy phép
Khi tạo kho lưu trữ, hệ thống phải lấy thành công giấy phép do máy chủ cấp và nhúng giấy phép đó vào kho lưu trữ. Tài khoản được cấp phép và chế độ dùng thử tuân theo cùng một quy trình xác minh kho lưu trữ. Trong môi trường tự động hóa, không nên ghi cứng mật khẩu trong script tác vụ đã xuất.