Bảo vệ thư viện Java

Bảo vệ thư viện Java bằng công cụ GUI

Đi đến thư mục Protector4J, chạy p4j-ui[.exe], bạn sẽ thấy giao diện người dùng sau.

image-20241222183944773

Đối với người dùng macOS, chỉ cần nhấp đúp vào Protector4J.app như một ứng dụng Mac thông thường.

Đăng nhập

Nếu bạn đã mua giấy phép, vui lòng nhấp vào nút đăng nhập ở góc trên bên phải và nhập thông tin người dùng. Nếu bạn chưa có giấy phép, bạn vẫn có thể dùng thử công cụ này.

Tính năng bảo vệ thư viện Java yêu cầu phiên bản Enterprise.

Chọn loại ứng dụng

Nhấp vào nút "Java Library" trên trang loại ứng dụng

Chọn tệp jar/war cần mã hóa

Chọn các tệp jar/war bạn muốn mã hóa, bạn có thể chọn một hoặc nhiều tệp

Chỉ định phương thức mã hóa

Trên trang này bạn có thể chọn phương thức mã hóa

image-20241222111100288

Bạn có thể chọn các lớp và phương thức cần bảo vệ từ cấu trúc thư mục bên phải, hoặc bạn có thể nhập thủ công các mục cần bảo vệ theo định dạng sau.

# Protect a method
# Class name.method name&method signature
Hello.hello&()V
# Protect all methods under the class
# Directly input the class name
Hello

Bạn có thể nhập nội dung cần loại trừ trong Items to exclude sử dụng cùng định dạng.

Bảo vệ thư viện Java bằng công cụ CLI

Tệp cấu hình

Công cụ CLI cần chỉ định tệp tác vụ làm tham số.

Đi đến thư mục protector4j/task-templates, tìm java-lib-task.yml, sao chép và chỉnh sửa.

# The jar files that need to be encrypted
jarFiles: []

# Protect a method: MethodName&MethodSignature, like io.test.Hello.hello&()V
# Protect all methods in a Class: ClassName, like io.test.Hello
itemsToProtect: []

# Exclude items that are not encrypted in the same format as itemsToProtect.
itemsToExclude: []


# The output folder
outputFolder: ''

# Create a new and unique folder for the application, the folder name is like p4j-<taskId>
createNewFolder: true

Thực thi tác vụ mã hóa

Đi đến thư mục Protector4J và chạy lệnh sau.

Linux hoặc macOS

Đối với người dùng macOS, bạn có thể tìm công cụ CLI tại /Applictions/Protector4J.app/Contents/protector4j-mac.

./p4j -t java-lib -f path-of-task-file -u email -p password

Windows

p4j -t java-lib -f path-of-task-file -u email -p password

Bạn có thể chạy p4j --help để xem các tham số chi tiết.

Kết quả mã hóa

Khác với mã hóa tổng thể ứng dụng Java, mã hóa thư viện Java nhắm vào các phương thức cụ thể. Sau khi mã hóa hoàn tất, phương thức bạn đã chọn sẽ được chuyển đổi thành mã native, có thể sử dụng kết hợp với JRE tiêu chuẩn. Nếu người dùng cần bẻ khóa, họ phải thực hiện ở cấp độ nhị phân thay vì cấp độ bytecode, tăng đáng kể độ khó của việc bẻ khóa.

Trước khi mã hóa

image-20250204115631030

Sau khi mã hóa

image-20250204115731661

Sau khi mã hóa hoàn tất, phương thức Main được chuyển đổi thành phương thức native.

Hạn chế

  1. Không hỗ trợ các khối mã try-catch.
  2. Không hỗ trợ các tệp jar đóng gói bởi Spring Boot.
  3. Không hỗ trợ các tệp war

Ứng dụng demo

Hiện tại tính năng mã hóa thư viện Java không hỗ trợ dùng thử miễn phí, bạn có thể tải ứng dụng demo này để xem hiệu quả của mã hóa thư viện Java, đây là chương trình swingapp, bạn có thể sử dụng java -jar swingapp.jar để chạy, phương thức main của nó được chuyển đổi thành phương thức native, bạn có thể sử dụng công cụ dịch ngược để xác minh!

Ứng dụng chưa mã hóa

swing-plain.jar

Ứng dụng đã mã hóa

swing-encrypted.jar