1. Como o Protector4J funciona

    O Protector4J protege seu código-fonte Java convertendo arquivos jar em arquivos jarx criptografados privados. Adotamos múltiplas abordagens para garantir a segurança da sua aplicação tanto a nível de JVM quanto a nível binário, proporcionando proteção de aplicações de alta resistência.

  2. Os problemas da ofuscação de código

    Devido à alta semântica do bytecode JVM, é extremamente fácil de analisar e ler. É fácil analisar sua lógica de execução usando depuração dinâmica. Escrever uma ferramenta de depuração dinâmica não é uma tarefa muito complicada. Portanto, a ofuscação não é uma solução de proteção confiável.

  3. Os problemas da criptografia de classes

    Devido à existência do mecanismo de anexação JVM, todos os códigos supostamente criptografados que não foram separados da operação normal da JVM podem ser facilmente lidos usando ferramentas de anexação. Portanto, esta é a solução de proteção mais ineficaz.

  4. Os problemas da proteção VM

    A proteção por virtualização é o método de proteção de código mais seguro, mas devido ao seu impacto significativo no desempenho, não pode ser aplicada a todos os códigos de um programa. Só pode proteger código crítico, enquanto outros códigos ainda correm risco de exposição. Ao mirar em outras partes do código, pode-se obter informações funcionais sobre a parte virtualizada do código.

  5. Os problemas da compilação AOT

    A compilação AOT é difícil de configurar e compilar, e tem alta probabilidade de falha. Mesmo se a compilação for bem-sucedida, a lógica do código muda apenas da representação bytecode para a representação em código de máquina. Sua lógica operacional inerente ainda existe sem qualquer proteção especial. Se for possível compreender seu próprio mecanismo de compilação e execução, ainda é possível fazer engenharia reversa do código legível.

  6. Desofuscação com vlx-vmengine

    Desofuscar código Java com o motor de execução de bytecode JVM vlx-vmengine

  7. Motor de execução de bytecode JVM escrito em Java/Kotlin

    A depuração dinâmica Java tradicional só pode ser feita com base no código-fonte, e sem código-fonte ou com arquivos de classes Java ofuscados, a depuração dinâmica é impossível. A execução de programas Java é baseada na JVM, e a JVM usa bytecode como base de execução. Usamos Kotlin para construir um motor de execução de bytecode JVM, que pode ser usado com IDEs modernos, como IDEA, para depurar programas Java a nível de bytecode e observar o comportamento de execução do programa.

  8. Engenharia reversa do GraalVM NativeImage

    Para programas Java que entraram na era da compilação binária, seu código pode ser facilmente descompilado como na era do bytecode? Quais são as características dos arquivos binários compilados pelo NativeImage? A força da compilação binária é suficiente para proteger código importante? Para explorar as questões acima, recentemente escrevi uma ferramenta de análise NativeImage que alcançou um certo nível de derivação reversa.

  9. Hackeando uma aplicação Java criptografada com jhsdb (HotSpot Debugger)

    Uma solução para proteção de código Java é criptografar os arquivos de classes. Tais soluções carregam arquivos de classes ou jar criptografados via classloader personalizado. Devido à existência do mecanismo de anexação da JVM, este método não é eficaz e pode ser facilmente quebrado com ferramentas incluídas no JDK.

  10. Extração de informações de classes Java de binários compilados AOT

    AOT também é considerado uma solução para proteção de código Java, mas infelizmente, muitos programas Java não podem ser separados do framework. Devido à complexidade do framework, mesmo programas compilados por AOT devem incluir informações de classes no arquivo binário final gerado, e os arquivos de classes estão de fato organizados ordenadamente na área de recursos do arquivo binário.

  11. O que é um arquivo JARX

    O arquivo JARX é nosso formato de arquivo de arquivo proprietário, que usa o mesmo algoritmo de compressão Deflate do Zip e o algoritmo de criptografia AES para criptografar os dados.

  12. A melhor solução de proteção de código Java além da ofuscação

    Criptografar seu código protege sua propriedade intelectual e melhora enormemente a segurança das suas aplicações. Torna o roubo de PI, a manipulação de código e a descoberta de vulnerabilidades de segurança tão complexos e caros que um curioso casual armado com um descompilador Java gratuito não conseguirá fazê-lo.

  13. Alternativa ao Excelsior JET

    Protector4J é mais do que apenas um substituto do Excelsior JET