Gostaria de saber se é possível no Java, ignorar a data alterada do sistema, tipo
Hoje é dia 06/11/2018
O vencimento do meu sistema é dia 06/12/2018
Quando chegar no dia 07/12/2018 o usuário irá alterar a data para 06/11/2018, sendo assim voltou a data podendo utilizar novamente, teria alguma opção para pegar a data correta, sem a utilização da internet?, caso não poderia me passar também via internet obrigado
Se seu sistema vai executar sem acesso à internet, não vejo como você poder obter a data atual.
Nesse caso eu partiria para alguma outra estratégia.
Por exemplo se seu sistema funciona por uma certa quantidade de dias, você poderia contabilizar o tempo restante para o sistema ser bloqueado.
Essa informação você guarda em algum arquivo oculto ou registro do sistema operacional, de repente de forma encriptada.
Enquanto seu sistema executa você pode ter um relógio interno que vai decrementando esse arquivo a cada minuto por exemplo.
Quando a informação no arquivo estiver zerada, você bloqueia seu sistema.
Isso foi só uma dica de como você poderia fazer, não necessariamente é a melhor forma, mas pode ser que atenda sua necessidade.
Entendi a forma que explicou, mas, para o meu caso não iria resolver, pensei que tivesse alguma forma de pegar a data na BIOS ou algo do tipo, se não tiver outra maneira acho que devo colocar para buscar em um servidor online
Se for código em aplicação Java local, não importa o que fizer, podem descompilar facilmente e burlar qualquer regra que esteja impedindo a continuidade da execução.
Isso nao impede de eliminar a parte do código que está impedindo a continuidade da execução nesses bloqueios, ofuscado ou não, vai debugando e comenta.
Não, não impede, mas até hoje nunca vi ninguém conseguir recompilar um sistema em Java que foi ofuscado, principalmente se o ofuscador insere const, goto e faça aggressive overloading.
O ofuscador não compila arquivos .java, ele modifica instruções diretamente no .class.
Seria necessário desenvolver um compilador que aceite arquivos .java com instruções inválidas para o compilador mas válidas para a JVM.
Impossível não é, mas é tão trabalhoso.
Se desenvolvem vários ofuscadores entregando isso pra JVM, longe de impossível. Aqui é proibido desenvolver em Java ou .NET desktop para por exemplo conectar diretamente a banco de dados, é uma falha de segurança muito básica.