Bẻ khóa ứng dụng Java đã mã hóa bằng jhsdb (hotspot debugger)
Một giải pháp bảo vệ mã Java là mã hóa tệp class hoặc mã hóa tệp jar. Loại giải pháp này tải tệp class hoặc tệp jar đã mã hóa thông qua bộ tải tự định nghĩa, điều này là vô dụng do sự tồn tại của cơ chế Attach của JVM và có thể dễ dàng bị bẻ khóa bằng các công cụ đi kèm JDK.
Ứng dụng mẫu
Dưới đây là ứng dụng mẫu với cửa sổ swing đơn giản và một nút. https://github.com/3-keys/test-swing-app

Mã hóa ứng dụng
Xuất tệp jar có thể chạy được với Eclipse và sử dụng công cụ mã hóa để mã hóa tệp jar. Sau khi mã hóa, cấu trúc tệp jar như sau:

test-swing-app.jar là dữ liệu tệp jar đã mã hóa, các class Launcher là các class tải tùy chỉnh của công cụ này, và gói jar đã mã hóa vẫn được chạy thông qua lệnh java -jar tiêu chuẩn
Bẻ khóa ứng dụng đã mã hóa
Đầu tiên, chạy tệp jar đã mã hóa, sau đó tìm thư mục bin của JDK và bạn sẽ có thể tìm thấy tệp jhsdb.

Chạy jhsdb hsdb, mở HotSpot Debugger, nếu trên Windows, bạn có thể cần chạy với quyền quản trị, nhấp File để chọn Attach to HotSpot process…,

Sử dụng lệnh ps aux | grep java trong hệ thống Linux, và tìm pid tiến trình thông qua Task Manager trong hệ thống Windows. Nhập pid tiến trình vào hộp thoại bên dưới.

Sau khi gắn kết thành công, nhấp Tools->Class Browser

Class Browser chứa thông tin của tất cả các class đã tải, tìm kiếm com.example và bạn có thể thấy tất cả các class dưới com.example

Nhấp vào com.example.TestWindow @0x0000…. và sau đó nhấp "Create .class File"

cd đến thư mục nơi lệnh jhsdb được chạy trước đó, bạn có thể thấy tệp class đã tạo

Sử dụng Luyten hoặc jadx để mở tệp class và bạn có thể thấy mã đã dịch ngược
