Criptografia em Java

Olá a todos, gostaria de saber se alguém conhece alguma apostila ou conteúdo sobre cifragem de programa, ou seja, criptografia de programas. Estou procurando sobre criptografia em Java e tudo o que acho é apenas voltado a textos, mas eu gostaria de criptografar um programa e não textos.

Então quem conhecer apostilas ou qualquer material sobre criptografia de programas usando Java, por favor me indique.

Mas um código fonte é um texto, não?

Se você não quer que seu código sofra engenharia reversa, o máximo que você pode fazer é ofuscar os nomes das variáveis, porque o bytecode ainda vai ser o mesmo.

Não sou desenvolvedor/programador e posso estar errado, mas criptografar programas pode não ser uma boa prática.
Se parar pra pensar, vai ver que há vários programas de grandes empresas para os quais não há preocupação em esconder a codificação, mas que tem a sua integridade assegurada com outras técnicas.
Existem ainda instituições que norteiam a construção de um programa/ativo por meio de normas, que tratam de tudo inclusive sobre segurança/integridade (ISO, ABNT, etc).
Mas se quer mesmo criptografar um programa você não o terá funcional, pois a criptografia em sua essência altera a mensagem inicial, assim, você teria que criar um descompilador do outro lado para ler seu programa é uma tarefa pouco funcional.
Ex. de abordagem:
ler os bytes de um programa em blocos, realizar a criptografia destes blocos usando ferramentas conhecidas preferencialmente e gravar até o último byte.
Classes recomendadas: classes que manipulam stream.
É simplesmente uma tarefa ingrata.
Então o que aconteceria alguém “clonasse” um código fonte de um programa conhecido e o lança-se com pequenas alterações? provavelmente ele seria processado, pois a marca é registrada.