更新日誌

6.0.9 2026-07-25

加密應用列印空指標例外時的崩潰修復

  • 修復了一個 JVM 崩潰問題:當受保護方法拋出隱式 NullPointerException、且應用讀取其訊息或列印堆疊時可能觸發。執行環境的「友善 NPE 提示」功能會嘗試從該方法的加密位元組碼中還原 "because ... is null" 說明文字,進而解參考非法記憶體、導致 VM 崩潰(在 JavaFX FXML 應用中觀察到)。受保護方法現在會略過該說明文字,退回為標準的 NullPointerException;例外型別、堆疊以及應用自行提供的訊息均不受影響。
  • JDK 17、21 和 25 的執行環境隨本次修復重建為 VLX 1.0.16。JDK 11 不受影響,因為「友善 NPE 提示」功能在 JDK 14 之前並不存在,繼續保持 VLX 1.0.15;JDK 8 繼續保持 VLX 1.0.11。

6.0.8 2026-07-24

隨用下載的 Tomcat 執行環境與生產安全預設值

  • 修復已發布的自我保護編碼器無法封裝 Tomcat WAR 的問題:app.p4jx 中的 Tomcat 類別不再以實體 classpath JAR 的形式可見。Tomcat 9.0.107 與 10.1.53 現在作為不可變且帶版本號的 R2/COS 成品,依 Servlet 命名空間自動選擇,首次使用時下載並快取於本機,同時核對精確的 SHA-256 與 JAR 清單。遭竄改的快取會被捨棄並重新下載。
  • 公開的 WEB-INF/lib JAR 現在會作為依應用程式隔離、受雜湊綁定的實體 Web 資源寫入磁碟,避免 Spring 啟動期間為每個類別重複讀取及驗證巢狀封存檔。
  • 新建置現在預設使用生產許可端點 https://protector4j.com。只有明確設定 P4JX_LICENSE_MODE=dev-PlicenseMode=dev 時,才會使用內部端點 http://10.10.10.16:16002

6.0.7 2026-07-24

Tomcat 巢狀相依套件與可信動態類別

  • 修復受保護的 Tomcat WAR 從 WEB-INF/lib/*.jar 載入類別或服務時的失敗。Protector4J 現在會將巢狀 JAR 和類別的精確 SHA-256 中繼資料密封到 app.p4jx 中;未知、遭替換或遭竄改的相依套件仍會被拒絕。
  • 修復 JDK 11 的 MethodHandles.Lookup#defineClass 使用 JDK 11 特有來源標記而導致的 Spring CGLIB 和 Hibernate Byte Buddy 失敗。動態信任仍必須來自 VM 已驗證的呼叫類別或載入器來源;標記字串、類別名稱、路徑、套件名稱和 CodeSource 均不能授予信任。
  • 為 JDK 11、17、21 和 25 發布 VLX 1.0.15 執行環境,涵蓋 24 個受支援平台組合。全部通過嚴格的 L1-L5 門禁,包括真實 FXML、Swing/AWT、Tomcat 巢狀相依套件載入,以及來源與竄改的負向場景。JDK 8 繼續保持 VLX 1.0.11。

6.0.6 2026-07-22

可信類別定義來源傳播

  • 修復受保護 JavaFX FXML 應用程式啟動失敗的問題:MethodUtil 會透過 defineClass(byte[]) 定義已由 VM 驗證來源的 Trampoline 輔助類別。現在信任只會從 VM 已驗證的類別或載入器來源傳播,不再來自類別名稱、路徑、套件名稱或 CodeSource 字串。
  • 新增真實 FXML 覆蓋,包括 fx:controller、屬性元素、Controller 注入和 WebView 啟動,並加入可信動態定義、兩級傳播、未知來源、未授權 JAR,以及替換 protected class 名稱的回歸測試。
  • 發布 JDK 11、17、21 和 25 的 VLX 1.0.14 執行環境。JDK 8 繼續保持 VLX 1.0.11。

6.0.5 2026-07-21

JavaFX 原生執行環境完整性

  • 透過將封裝好的 JavaFX DLL 檔案放置於 vlxjre/bin,並調整啟動程式的原生函式庫搜尋路徑,修復了 Windows 環境下 JavaFX WebView 啟動失敗的問題(Graphics Device initialization failed / No toolkit found)。
  • 將已加密的 app.p4jx 允許清單擴展至外部原生函式庫。無論路徑如何,JavaFX 原生檔案都必須與精確的 SHA-256 值相符,且 Glass 會重新驗證實際載入的檔案;無法辨識或經過竄改的檔案將會被拒絕。
  • 為 JDK 11、17、21 和 25 發布了更新後的 Protector4J 執行環境。所支援的 JavaFX 平台組合已通過 L5.1-L5.4,涵蓋 WebView 啟動,以及對模組 JAR、jdk.jsobject 和 Glass 原生函式庫的竄改拒絕。

6.0.4 2026-07-21

外部模組完整性與 JavaFX 執行時相容性

  • 已移除對外部模組的路徑信任機制。現在,每個外部模組 JAR 都必須與嵌入 app.p4jx 的精確 SHA-256 允許清單項目相符;無論位於何處,未識別或遭篡改的檔案都會被拒絕。
  • 新增從 JavaFX module-info.class 自動偵測依賴關係閉包的功能,並控制已固定 JavaFX 與 JDK 模組的引入,包括 javafx.mediajdk.jsobject
  • 透過新發布的 P4JX 執行時,修復所有受支援 JDK 版本及平台上的 JavaFX WebView 啟動問題,以及建立啟動層後的 E818 / ClassFormatError 錯誤。

6.0.3 2026-07-20

JavaFX WebView 模組相容性

  • 修正由相同 JDK/VLX 版本重新建置的受支援 P4JX 執行環境之可選 jdk.jsobject 解析問題。封裝不再僅因完整 lib/modules 映像的位元組不同而拒絕相容的執行環境。
  • 保留依訓練線與平台選擇製品、模組精確 SHA-256 與模組名稱驗證,並在安裝後重新驗證相依性閉包。

6.0.2 2026-07-20

JavaFX WebView 相容性

  • 修正 JavaFX WebView 啟動失敗:將 javafx.mediajavafx.web 一起封裝,並在精簡執行環境未包含模組時,自動解析與 P4JX 精確匹配的 jdk.jsobject
  • 新增從區域公開下載服務取得可選模組的功能;製品固定 SHA-256,並綁定版本、平台與執行環境。已包含該模組的執行環境會略過下載。

6.0.1 2026-07-20

JavaFX 相容性

  • 修復內嵌 JavaFX 執行階段類別的 fat JAR 啟動失敗問題。相容性自動套用現在會讓內嵌的 JavaFX API、實作及 JNI 橋接命名空間保持未加密,避免與隨附的 JavaFX 模組產生重複歸屬衝突。
  • 改善使用 shaded JavaFX 執行階段之應用程式的相容性診斷及多語言指引。

6.0.0 2026-07-20

Protector4J 6.0 是建立在全新防護架構上的重大版本,並非 5.x 系列的一般增量更新。

架構與防護

  • 重新設計 Protector4J 的基礎架構,並引入全新的 P4JX 防護引擎。
  • 在封存檔產生、類別載入、執行階段、反偵錯及成品完整性等層面新增接近 100 道防護措施。
  • 大幅提高逆向分析門檻。新架構的目標是在使用先進 AI 輔助分析工具的情況下,也讓短期破解變得極其困難。
  • 強化授權請求、執行階段下載、成品驗證及跨平台安裝套件的安全性。

產品體驗

  • 支援 JDK 8、11、17、21 和 25,並為 Java、JavaFX、Spring Boot 和 Tomcat 應用程式提供圖形化封裝流程。
  • 新增相容性掃描、選擇性類別加密、相依 JAR 防護、YAML 工作匯入/匯出及多目標平台批次建置。
  • 重新設計桌面介面,支援 11 種語言並可持續儲存語言偏好。

遷移說明

Protector4J 6.0 與之前版本在使用方式上有較大差異。使用前請重新閱讀最新文件,並儘快使用 6.0 重新建置及遷移現有的加密應用程式,以獲得更強大的防護。

下載 Protector4J 6.0

早期版本

更新日誌

5.7.0 2026-03-07

  • 新增 JDK25 支援

5.6.2 2026-01-03

  • 修復 JRE 下載問題
  • 修復 pidkiller 問題

5.6.1 2025-08-13

  • 執行問題

5.6.0 2025-08-09

  • 修復 GraphQL 資源問題

5.5.1 2025-06-01

  • 修復資源下載問題

5.5.0 2025-04-19

  • 修復解碼器相關問題

5.4.1 2025-04-17

  • 使用最新版 Go 建構 pidchecker

5.4.0 2025-04-08

  • 更新 JDK17 至 17.0.14

5.3.5 2025-03-26

  • 更新可執行檔包裝器

5.3.4 2025-03-08

  • 修復在部分 Windows 系統上無法執行的問題

5.3.3 2025-02-20

  • 修復在部分 Windows 系統上無法執行的問題

5.3.2 2025-02-04

  • 修復 Java 函式庫加密引入的 META-INF 錯誤問題

5.3.1 2025-01-28

  • 修復在較低版本 CPU 上無法執行的問題

5.3.0 2025-01-25

  • 新增 jdk.naming.dns 模組

5.2.0 2025-01-19

  • 全新解碼器

5.1.0 2025-01-12

  • 修復 Windows 下解碼器的誤報問題

5.0.0 2024-12-28

  • 新增單獨加密 Java 函式庫的支援(預覽版),允許應用程式使用普通 JRE 執行

4.8.1 2024-12-08

  • 修復處理 Tomcat 任務時未檢查檔案類型的問題

4.8.0 2024-11-30

  • 修復在 Windows 7 上無法執行的問題
  • 修復 jdk.net 模組未匯入的問題

4.7.1 2024-09-19

  • 修復產生的 Linux 應用程式無法正常執行的問題

4.7.0 2024-09-08

  • 修復產生的程式在 macOS 下無法執行的問題
  • 修復安全軟體誤報的問題

4.6.2 2024-07-21

  • 新增選項:從 Spring Boot 應用程式的函式庫中移除 application.properties 檔案
  • 新增捲軸以解決視窗太小時元素未完整顯示的問題

4.6.1 2024-05-25

  • 修復 Mac 上重複下載 vlxjre8 的問題
  • 修復載入 TaskInfo 時遺失 JVM 選項的問題

4.6.0 2024-04-30

  • 更新 JDK 以解決登入模組遺失問題
  • 更新 add-permission-script.sh

4.5.3 2024-03-16

  • 新增 Tomcat 10.1.19

4.5.2 2024-03-02

  • 修復 Windows 下的包裝器問題

4.5.1 2024-03-01

  • 修復 Java 21 的簽名問題

4.5.0 2024-02-25

  • 修復虛擬執行緒無法運作的問題

4.4.0 2024-02-24

  • 修復解碼器相關問題

4.3.0 2024-02-06

  • 更新 Tomcat 至 9.0.85

4.2.2 2024-01-31

  • 移除無用的 wrapper.json 檔案

4.2.1 2024-01-25

  • 修復權限腳本問題

4.2.0 2024-01-23

  • 修復管道中斷導致應用程式退出的問題
  • 修復 /tmp 資料夾自動清理導致應用程式退出的問題
  • 修復 Java 8 在 macOS 上找不到 libfreetype 的問題
  • 修復存在多個 application.properties 時的衝突問題

4.1.0 2023-10-30

  • 修復 JDK8 的問題
  • 修復 Linux 和 macOS 上的管道中斷問題
  • 中國大陸使用者現在可以選擇伺服器為 https://protector4j.cn

4.0.1 2023-10-24

  • 升級解碼器

4.0.0 2023-10-17

  • 新增 Java 21 支援
  • 安全性增強以提供更強的保護

3.3.0 2023-09-29

  • 修復 Tomcat 專案無法正常啟動的問題
  • 專案中存在重複類別時發出警告

3.2.0 2023-08-24

  • 修復多語言環境下 Windows 編碼的問題

3.1.1 2023-08-02

  • 修復非英文路徑下的亂碼問題

3.1.0 2023-07-22

  • 修復 ZipInputStream 相關問題
  • 修復 ZipFileSystem 相關問題
  • 修復其他問題

3.0.2 2023-05-29

  • 修復 Windows 上的解碼問題

3.0.1 2023-05-25

  • 修復 mac-aarch64 版本的啟動問題

3.0.0 2023-05-20

  • 全新應用程式啟動系統
  • 全新解碼系統
  • Java 8 現在可以使用 -jar 命令執行程式

2.12.5 2023-05-12

  • 修復 macOS 上 JDK8 找不到 freetype 的問題

2.12.4 2023-02-28

  • 更新後端