Javaライブラリの保護
GUIツールでJavaライブラリを保護する
Protector4Jフォルダに移動し、p4j-ui[.exe] を実行すると、以下のユーザーインターフェースが表示されます。

macOSユーザーの場合は、通常のMacアプリケーションと同様にProtector4J.appをダブルクリックするだけです。
ログイン
既にライセンスを購入している場合は、右上のログインボタンをクリックしてユーザー情報を入力してください。ライセンスをお持ちでない場合でも、このツールを試用できます。
Javaライブラリ保護機能にはEnterpriseエディションが必要です。

アプリケーションタイプの選択
アプリケーションタイプページで「Java Library」ボタンをクリックしてください。

暗号化するjar/warファイルの選択
暗号化したいjar/warファイルを選択します。1つまたは複数のファイルを選択できます。

暗号化メソッドの指定
このページでは暗号化するメソッドを選択できます。

右側の構造ディレクトリから保護が必要なクラスとメソッドを選択するか、以下の形式で保護が必要な項目を手動で入力できます。
# Protect a method
# Class name.method name&method signature
Hello.hello&()V
# Protect all methods under the class
# Directly input the class name
Hello
除外する内容も同じ形式でItems to excludeに入力できます。
CLIツールでJavaライブラリを保護する
構成ファイル
CLIツールはタスクファイルをパラメータとして指定する必要があります。
protector4j/task-templatesフォルダに移動し、java-lib-task.ymlを見つけてコピーし、変更してください。
# 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
暗号化タスクの実行
Protector4Jフォルダに移動して以下のコマンドを実行してください。
LinuxまたはmacOS
macOSユーザーの場合、CLIツールは/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
p4j --helpを実行して詳細なパラメータを確認できます。
暗号化の結果
Javaアプリケーション全体の暗号化とは異なり、Javaライブラリの暗号化は特定のメソッドを対象とします。暗号化完了後、選択したメソッドはネイティブコードに変換され、標準JREと組み合わせて使用できます。ユーザーがクラックする必要がある場合、バイトコードレベルではなくバイナリレベルで行う必要があり、クラッキングの難易度が大幅に上がります。
暗号化前

暗号化後

暗号化完了後、Mainメソッドはネイティブメソッドに変換されます。
制限事項
- try-catchコードブロックはサポートされていません。
- Spring Bootパッケージ化されたjarファイルはサポートされていません。
- warファイルはサポートされていません。
デモアプリケーション
現在、Javaライブラリ暗号化機能は無料ユーザーの試用をサポートしていません。このデモアプリケーションをダウンロードしてJavaライブラリ暗号化の効果を確認できます。これはSwingアプリケーションプログラムで、java -jar swingapp.jarで実行できます。メイン関数はネイティブメソッドに変換されています。デコンパイラツールで確認できます!
暗号化されていないアプリケーション
暗号化されたアプリケーション