更新日誌
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/libJAR 現在會作為依應用程式隔離、受雜湊綁定的實體 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.media與jdk.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.media與javafx.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 重新建置及遷移現有的加密應用程式,以獲得更強大的防護。
早期版本
更新日誌
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
- 更新後端