2021-11-10 – Knowledge Tester – Exames com password incluída, argumentos forçados, versões mínimas, protecções físicas, etc…
Estão aqui algumas novidades, no meu software de estudo e formação “Knowledge Tester”, podem clicar na imagem acima para ver melhor. Em breve deixo de mexer nele durante um ano pois já serve os meus propósitos, eu gosto como sabem de usar as minhas próprias ferramentas, os meus próprios softwares, e por isso tenho de os criar.
Podem ver na imagem que já vai com 22K linhas de código, 80K palavras, e 827K de tamanho o código (e isto contando só .cpp e não .h), e notem que isto maioritariamente em C++ (e não apenas C), é muito código, e obviamente tenho-o optimizado e sem redundâncias.
Uma das melhorias foi o tornar os exames, independentes de password, ou seja, apesar de estarem encriptados, e requererem passwords para serem desencriptados ou verem os seus relatórios de exame desencriptados, têm agora passwords incluídas nos próprios ficheiros de exame, o que permitem a que possam correr sem que o aluno/formando tenha de escrever a password na linha de comandos com o parâmetro “–password”.
Obviamente, a password original não é guardada no ficheiro, e mesmo a informação extra que permite que isto tudo funcione sem password apesar de estar tudo encriptado com uma password que não pode ser dada, está encriptada, pelo que está tudo 100% seguro com a força do AES 256.
Assim, os alunos/formandos podem executar exames, sem ter de meter passwords, e sem nunca a saberem, só podendo o formador desencriptar os exames e os relatórios dos mesmos, ou até alterar os exames.
A outra nova feature, é o “–forceArguments”, que faz com que possamos forçar a activação de vários parâmetros/argumentos, como por exemplo usar um “–forceArguments ficheiro –examMode” que fará com que o ficheiro de testes só possa correr no modo de exame, e podem ver na imagem em anexo um “(Forced)” à frente de certos parâmetros, o que significa que mesmo que o utilizador defina tais parâmetros à mão na linha de comandos, não se sobreporão a estes que estão forçados e registados e encriptados no próprio ficheiro de exame.
Isto é muito útil para por exemplo evitar que alunos queiram correr o exame sem ser em modo de exame (vendo assim respostas e ajudas) e dizer no fim ao professor/formador “olhe enganei-me e fiz o exame todo assim”. As opções são forçadas, e assim não há forma de o aluno contrariar isto, pois só pode correr o exame com tais opções forçadas e não podendo fazer nada para alterar isso.
Pode ser usado para outras coisas, como forçar com que um exame corra sem ser em modo shuffle, quando é um laboratório de múltiplas perguntas que têm de seguir na ordem correcta, ou desligar outras coisas, etc.
Estas opções são embutidas no próprio exame, e ninguém sem a password principal as poderá desencriptar e desligar.
Outra melhoria é o “–runOnlyOnce”, que é uma opção que pode ser gravada no próprio exame, e fará com que o exame se for corrido uma segunda vez, dê erro e não corra mais, ou seja, só pode ser corrido uma única vez, para que formandos em formação remota não possam correr o ficheiro mais do que essa vez. Esta protecção está preparada apenas para máquinas Linux, e não a fiz tão perfeita quanto queria por falta de tempo, talvez para o ano a faça (embebida no próprio exame em si, além da máquina como agora).
Outra melhoria é a tag “–minVersion”, que faz com que alunos/formandos não possam correr exames recentes com máquinas antigas, sendo que o exame se tiver encriptada esta opção, dizendo que só corre com a versão 0.99, não vá correr com um software com a versão 0.98, e evitar assim que se tire proveito de softwares antigos para evitar funcionalidades novas.
Existe a opção agora “–writeReport”, para desligar relatórios em exames, ou correr relatórios fora de exames, o que antes não era possível.
Existe também agora a “–removeRunOnlyOnceProtections”, para remover protecções contra correr o exame mais do que uma vez, e que só poderá ser conseguido através da password principal do administrador.
Entre outras coisas.
O software está agora pronto para exames remotos, em formação remota, e praticamente acabado na sua primeira versão, e deu muito mais trabalho do que parece, mas agora estando funcional, posso usá-lo durante décadas sem problemas, mas claro que um dia o melhorarei ainda mais, e até criarei GUIs, etc, mas durante um ano a ver se não mexo mais nisto, nesta semana irei ver bugs finais, que pode haver muita coisa por ver, que com tanta encriptação e protecção sobre encriptação e protecção, é complicado ver tudo.
E após uns ajustes finais na próxima semana, irei dar como concluído em breve, e voltar à criação de videojogos, ou desenvolvimento do meu Game Engine em C/C++, entre outras coisas de que gosto mais, que já ando cansado de encriptações e exames. 🙂
Mais notícias em breve.
2021-11-10.
Partilhado no LinkedIn em 2021-11-10, em:
«Estão aqui algumas novidades, no meu software de estudo e formação “Knowledge Tester”, podem clicar na imagem acima para ver melhor. Em breve deixo de mexer nele durante um ano pois já serve os meus propósitos.
Podem ver na imagem que já vai com 22K linhas de código, 80K palavras, e 827K de tamanho o código (e isto contando só .cpp e não .h), e notem que isto maioritariamente em C++ (e não apenas C), é muito código.
Uma das melhorias foi o tornar os exames, independentes de password, ou seja, apesar de estarem encriptados, e requererem passwords para serem desencriptados ou verem os seus relatórios de exame desencriptados, têm agora passwords incluídas nos próprios ficheiros de exame, o que permitem a que possam correr sem que o aluno/formando tenha de escrever a password na linha de comandos com o parâmetro “–password”.
Obviamente, a password original não é guardada no ficheiro, e mesmo a informação extra que permite que isto tudo funcione sem password apesar de estar tudo encriptado com uma password que não pode ser dada, está encriptada, pelo que está tudo 100% seguro com a força do AES 256.
Assim, os formandos podem executar exames, sem ter de meter passwords, e sem nunca a saberem, só podendo o formador desencriptar os exames e os relatórios dos mesmos, ou até alterá-los.
A outra nova feature, é o “–forceArguments”, que faz com que possamos forçar a activação de vários parâmetros/argumentos, como por exemplo usar um “–forceArguments ficheiro –examMode” que fará com que o ficheiro de testes só possa correr no modo de exame.
Isto é muito útil para por exemplo evitar que alunos queiram correr o exame sem ser em modo de exame (vendo assim respostas e ajudas) e dizer no fim ao formador “olhe enganei-me e fiz o exame todo assim”. As opções são forçadas, e assim não há forma de o aluno contrariar isto, pois só pode correr o exame com tais opções forçadas e não podendo fazer nada para alterar isso, embutidas nos exames.
Entre outras, como a “–runOnlyOnce” e “–removeRunOnlyOnceProtections” para adicionar e remover protecções para exames correrem só uma vez, a “–minVersion” para não deixar exames correrem em softwares antigos, a “–writeReport” para deixar gravar relatórios fora dos exames ou o inverso, e outras.
Poderão ler mais no meu site, que aqui não há espaço para tudo, em:
https://lnkd.in/emV4eChT
O software está agora pronto para exames remotos, em formação remota, e praticamente acabado na sua primeira versão, e deu muito mais trabalho do que parece, mas agora estando funcional, posso usá-lo durante décadas sem problemas.
E após uns ajustes finais na próxima semana, irei dar como concluído em breve, e voltar à criação de videojogos, ou desenvolvimento do meu Game Engine em C/C++, entre outras coisas de que gosto mais, que já ando cansado de encriptações e exames.
Mais notícias em breve.
2021-11-10.»
(Este texto acima foi a versão do LinkedIn, a versão completa está no começo da página).