Registro de alterações
6.0.9 2026-07-25
Correção de falha para aplicativos criptografados que exibem NullPointerException
- Corrigida uma falha da JVM que podia ocorrer quando um método protegido lançava uma
NullPointerExceptionimplícita e o aplicativo lia sua mensagem ou imprimia seu rastreamento de pilha. O recurso de "detalhe útil de NPE" do runtime tentava reconstruir o texto "because ... is null" a partir do bytecode criptografado do método, acessava memória inválida e travava a VM (observado em aplicativos JavaFX FXML). Os métodos protegidos agora ignoram a mensagem detalhada e recorrem a umaNullPointerExceptionpadrão; o tipo da exceção, o rastreamento de pilha e qualquer mensagem fornecida pelo aplicativo não são afetados. - Os runtimes para JDK 17, 21 e 25 são reconstruídos para VLX 1.0.16 com esta correção. O JDK 11 não é afetado porque o recurso de NPE útil não existe antes do JDK 14 e permanece em VLX 1.0.15; o JDK 8 permanece em VLX 1.0.11.
6.0.8 2026-07-24
Runtimes do Tomcat baixados sob demanda e padrões seguros para produção
- Foi corrigida a falha do codificador autoprotegido publicado ao empacotar WARs do Tomcat, pois as classes do Tomcat dentro de
app.p4jxdeixaram de ser visíveis como um JAR físico do classpath. O Tomcat 9.0.107 e o 10.1.53 agora são artefatos R2/COS imutáveis e versionados, selecionados de acordo com o namespace de Servlet, baixados no primeiro uso, armazenados no cache local e verificados por um SHA-256 exato e pelo manifesto dos JARs. Caches adulterados são descartados e baixados novamente. - Os JARs públicos de
WEB-INF/libagora são disponibilizados como recursos Web físicos, isolados por aplicação e vinculados por hash. Isso evita a leitura e a verificação repetidas do arquivo aninhado para cada classe durante a inicialização do Spring. - As novas compilações agora usam por padrão o endpoint de licença de produção
https://protector4j.com. O endpoint internohttp://10.10.10.16:16002só é usado quandoP4JX_LICENSE_MODE=devou-PlicenseMode=devé selecionado explicitamente.
6.0.7 2026-07-24
Dependências aninhadas do Tomcat e classes dinâmicas confiáveis
- Foram corrigidas as falhas de WARs protegidos do Tomcat ao carregar classes ou serviços de
WEB-INF/lib/*.jar. O Protector4J agora sela emapp.p4jxos metadados SHA-256 exatos dos JARs e das classes aninhados; dependências desconhecidas, substituídas ou adulteradas continuam sendo rejeitadas. - Foram corrigidas as falhas do Spring CGLIB e do Hibernate Byte Buddy no JDK 11 causadas pelo marcador de origem específico do JDK 11 usado por
MethodHandles.Lookup#defineClass. A confiança dinâmica ainda exige a proveniência da classe chamadora ou do carregador verificada pela VM; strings de marcador, nomes de classe, caminhos, pacotes eCodeSourcenão concedem confiança. - Foram publicados runtimes VLX 1.0.15 para JDK 11, 17, 21 e 25 em 24 combinações de plataformas compatíveis. Todos passaram pelos controles rigorosos L1-L5, incluindo FXML real, Swing/AWT, carregamento de dependências aninhadas do Tomcat e casos negativos de proveniência e adulteração. O JDK 8 permanece no VLX 1.0.11.
6.0.6 2026-07-22
Proveniência confiável da definição de classes
- Foram corrigidas as falhas de inicialização de aplicações JavaFX FXML protegidas:
MethodUtildefine o helperTrampoline, cuja proveniência foi verificada pela VM, por meio dedefineClass(byte[]). A confiança agora só se propaga a partir da proveniência de classe ou carregador verificada pela VM, não de nomes de classe, caminhos, pacotes ou stringsCodeSource. - Foi adicionada cobertura FXML real com
fx:controller, elementos de propriedade, injeção de Controller e inicialização do WebView, além de regressões para definições dinâmicas confiáveis, propagação em dois níveis, fontes desconhecidas, JARs não autorizados e substituição de nomes protected class. - Foram publicados runtimes VLX 1.0.14 para JDK 11, 17, 21 e 25. O JDK 8 permanece em VLX 1.0.11.
6.0.5 2026-07-21
Integridade do ambiente de execução nativo do JavaFX
- Foram corrigidas as falhas de inicialização do JavaFX WebView no Windows (
Graphics Device initialization failed/No toolkit found) colocando as DLLs empacotadas do JavaFX emvlxjre/bine ajustando a busca por bibliotecas nativas do iniciador. - A lista de permissões criptografada de
app.p4jxfoi ampliada para incluir bibliotecas nativas externas. Os arquivos nativos do JavaFX devem corresponder exatamente aos valores SHA-256, independentemente do caminho, e o Glass revalida o arquivo realmente carregado; arquivos não reconhecidos ou adulterados são rejeitados. - Foram publicados ambientes de execução Protector4J atualizados para JDK 11, 17, 21 e 25. As combinações de plataformas JavaFX compatíveis passaram pelo L5.1-L5.4, que cobre a inicialização do WebView e a rejeição de módulos JAR,
jdk.jsobjecte bibliotecas nativas do Glass adulterados.
6.0.4 2026-07-21
Integridade de módulos externos e compatibilidade do runtime JavaFX
- Foi removida a confiança baseada em caminho para módulos externos. Agora, cada JAR de módulo externo deve corresponder exatamente a uma entrada SHA-256 da lista de permissões incorporada em
app.p4jx; arquivos não reconhecidos ou adulterados são rejeitados independentemente da localização. - Foi adicionada a detecção automática do fechamento de dependências a partir de JavaFX
module-info.classe a admissão controlada de módulos JavaFX e JDK fixados, incluindojavafx.mediaejdk.jsobject. - Foram corrigidos os problemas de inicialização do JavaFX WebView e os erros E818 /
ClassFormatErrorapós a camada de inicialização nas versões de JDK e plataformas compatíveis com os novos runtimes P4JX.
6.0.3 2026-07-20
Compatibilidade do módulo JavaFX WebView
- Corrigida a resolução do módulo opcional
jdk.jsobjectpara runtimes P4JX compatíveis reconstruídos a partir da mesma versão de JDK/VLX. Um runtime compatível não é mais rejeitado apenas porque a imagem completalib/modulescontém bytes diferentes. - Permanecem a seleção de artefatos por linha do JDK e plataforma, a validação exata do SHA-256 e do nome do módulo e a nova verificação do fechamento das dependências após a instalação.
6.0.2 2026-07-20
Compatibilidade com JavaFX WebView
- Corrigidas as falhas de inicialização do JavaFX WebView ao empacotar
javafx.mediajunto comjavafx.webe resolver automaticamente o módulojdk.jsobjectque corresponde exatamente ao P4JX quando ele não está presente em um runtime reduzido. - Adicionados downloads de módulos opcionais fixados por SHA-256 e vinculados à versão, plataforma e runtime por meio do serviço público regional. Runtimes que já contêm o módulo ignoram o download.
6.0.1 2026-07-20
Compatibilidade com JavaFX
- Foram corrigidas as falhas de inicialização de fat JARs que incorporam classes do runtime JavaFX. A aplicação automática de compatibilidade agora mantém sem criptografia os namespaces da API, da implementação e da ponte JNI do JavaFX incorporado, evitando a atribuição duplicada com os módulos JavaFX empacotados.
- Foram aprimorados os diagnósticos de compatibilidade e as orientações multilíngues para aplicações com runtimes JavaFX incorporados.
6.0.0 2026-07-20
O Protector4J 6.0 é uma versão principal baseada em uma arquitetura de proteção totalmente reformulada, e não uma atualização incremental comum da série 5.x.
Arquitetura e proteção
- Reformulação da arquitetura fundamental do Protector4J e introdução do novo mecanismo de proteção P4JX.
- Adição de quase 100 medidas de proteção na geração de arquivos, no carregamento de classes, na execução, na proteção contra depuração e na integridade dos artefatos.
- Aumento significativo da barreira contra engenharia reversa. A nova arquitetura foi projetada para tornar a quebra em curto prazo extremamente difícil, mesmo com ferramentas avançadas de análise assistida por IA.
- Reforço das solicitações de licença, dos downloads de runtimes, da verificação de artefatos e da segurança dos instaladores multiplataforma.
Experiência do produto
- Suporte para JDK 8, 11, 17, 21 e 25, com fluxos gráficos de empacotamento para aplicações Java, JavaFX, Spring Boot e Tomcat.
- Adição de verificação de compatibilidade, criptografia seletiva de classes, proteção de JARs de dependências, importação/exportação de tarefas YAML e compilações em lote para várias plataformas de destino.
- Reformulação da interface para desktop, agora com suporte a 11 idiomas e preferência de idioma persistente.
Notas de migração
O uso do Protector4J 6.0 difere significativamente das versões anteriores. Antes de utilizá-lo, releia a documentação mais recente e recompile e migre suas aplicações criptografadas para a versão 6.0 assim que possível, a fim de aproveitar a proteção mais robusta.
Versões anteriores
Registro de Alterações
5.7.0 2026-03-07
- Adicionado suporte para JDK25
5.6.2 2026-01-03
- Corrigido problema de download do jre
- Corrigido problema do pidkiller
5.6.1 2025-08-13
- Problema de execução
5.6.0 2025-08-09
- Corrigido problema de recurso GraphQL
5.5.1 2025-06-01
- Corrigido problema de download de recursos
5.5.0 2025-04-19
- Corrigidos problemas sobre o decoder
5.4.1 2025-04-17
- Compilado pidchecker com a versão mais recente do Go
5.4.0 2025-04-08
- Atualizado JDK17 para 17.0.14
5.3.5 2025-03-26
- Atualizado o wrapper executável
5.3.4 2025-03-08
- Corrigido o problema de não poder executar em alguns sistemas Windows
5.3.3 2025-02-20
- Corrigido o problema de não executar em alguns sistemas Windows
5.3.2 2025-02-04
- Corrigido o problema de META-INF incorreto introduzido pela criptografia de biblioteca JAVA
5.3.1 2025-01-28
- Corrigido o problema de não poder executar em CPUs de versão inferior
5.3.0 2025-01-25
- Adicionado módulo jdk.naming.dns
5.2.0 2025-01-19
- Novo decoder
5.1.0 2025-01-12
- Corrigido o problema de falso positivo do decoder no Windows.
5.0.0 2024-12-28
- Adicionado suporte para criptografia de biblioteca Java isolada (Preview), permitindo que a aplicação execute com jre normal
4.8.1 2024-12-08
- Corrigido o problema de não verificar tipos de arquivo ao processar tarefas Tomcat.
4.8.0 2024-11-30
- Corrigido o problema de não poder executar no Windows 7
- Corrigido o problema do módulo jdk.net não ser importado
4.7.1 2024-09-19
- Corrigido o problema em que o aplicativo Linux gerado não executa corretamente
4.7.0 2024-09-08
- Corrigido o problema em que o programa gerado não consegue executar no macOS
- Corrigido o problema sobre falso positivo de software de segurança
4.6.2 2024-07-21
- Adicionada opção para remover o arquivo application.properties das bibliotecas para aplicações SpringBoot
- Adicionada uma barra de rolagem para resolver o problema em que os elementos na janela não são totalmente exibidos quando a janela é muito pequena.
4.6.1 2024-05-25
- Corrigido o problema de downloads repetidos de vlxjre8 no Mac.
- Corrigido o problema de falta de opções JVM ao carregar TaskInfo.
4.6.0 2024-04-30
- Atualizado jdk para resolver o problema do módulo de login ausente
- Atualizado add-permission-script.sh
4.5.3 2024-03-16
- Adicionado tomcat 10.1.19
4.5.2 2024-03-02
- Corrigido o problema do wrapper no Windows
4.5.1 2024-03-01
- Corrigido o problema de assinatura sobre Java 21
4.5.0 2024-02-25
- Corrigido o problema em que virtual thread não funciona
4.4.0 2024-02-24
- Corrigido problema sobre decoder
4.3.0 2024-02-06
- Atualizado Tomcat para 9.0.85
4.2.2 2024-01-31
- Removido o arquivo wrapper.json desnecessário
4.2.1 2024-01-25
- Corrigido o problema do script de permissão
4.2.0 2024-01-23
- Corrigido o problema em que broken pipe causa a saída do aplicativo
- Corrigido o problema em que a limpeza automática da pasta /tmp causa a saída do aplicativo
- Corrigido o problema em que Java 8 não consegue encontrar libfreetype no macOS
- Corrigido o problema em que conflitos existem quando múltiplos application.properties existem
4.1.0 2023-10-30
- Corrigido um problema com JDK8
- Corrigido um problema de broken pipe no Linux e macOS.
- Usuários chineses agora podem selecionar o servidor como https://protector4j.cn
4.0.1 2023-10-24
- Atualizado decoder
4.0.0 2023-10-17
- Adicionado suporte para Java 21
- Melhorias de segurança para proteções mais fortes
3.3.0 2023-09-29
- Corrigido um problema em que projetos Tomcat não iniciam corretamente.
- Avisa quando classes duplicadas existem em um projeto
3.2.0 2023-08-24
- Corrigido um problema com codificação do Windows em ambientes multilíngues
3.1.1 2023-08-02
- Corrigido código ilegível em caminhos que não são em inglês
3.1.0 2023-07-22
- Corrigidos problemas relacionados ao ZipInputStream.
- Corrigidos problemas relacionados ao ZipFileSystem
- Corrigidos outros problemas
3.0.2 2023-05-29
- Corrigidos problemas de decodificação no Windows
3.0.1 2023-05-25
- Corrigidos problemas de inicialização com a versão mac-aarch64
3.0.0 2023-05-20
- Novo sistema de inicialização de aplicação
- Novo sistema de decodificação
- Java 8 agora pode executar programas com o comando -jar
2.12.5 2023-05-12
- Corrigido jdk8 não encontrando freetype no macOS
2.12.4 2023-02-28
- Atualizado backend