Fonte de um programa recuperado do executável com verificação por bytecode, reorganizado em módulos e estendido com exercícios por IA.
O problema
O código-fonte de um programa em uso tinha se perdido; restavam apenas os dois executáveis distribuídos. Sem fonte não há correção, não há tradução nova e não há funcionalidade nova — e a recuperação por descompilação tem um risco próprio: produzir um código que parece certo, roda parecido e diverge em silêncio do original em algum ponto que ninguém testou.
A arquitetura
A recuperação foi tratada como problema de verificação, não de leitura. O passo decisivo é identificar a versão exata do Python embutido, porque o formato do bytecode muda a cada versão menor e todas as ferramentas seguintes dependem disso. Extraído o pacote e descompilado o módulo, a conferência não foi visual: uma ferramenta compara instrução a instrução o bytecode do fonte recuperado contra o extraído do executável, ignorando apenas as instruções que não mudam comportamento. Comentários e docstrings não sobrevivem à compilação e por isso não foram recuperados; todo o resto foi, inclusive a distribuição do código em linhas. Só depois de verificado o arquivo foi dividido em seis módulos, com a cópia fiel preservada ao lado como prova. A extensão veio depois: geração de exercícios por IA usando modelos gratuitos que respondem sem credencial, o que evita embutir chave no executável, com banco de frases pré-gerado para a funcionalidade existir na primeira execução e sem internet, e a chamada em thread separada para a janela não congelar.
O resultado
Fonte recuperado e verificado — 3.512 de 3.512 instruções na mesma linha do original, e recompilar produz bytecode idêntico ao extraído. A comparação também respondeu a uma pergunta de produto: o bytecode dos dois binários distribuídos era idêntico exceto por uma instrução, a importação da biblioteca de interface, provando que a única diferença entre as edições era essa. Hoje o mesmo código gera as duas edições, trocando a biblioteca no empacotamento. O programa ganhou três idiomas, desenho do teclado por layout, duas medidas de erro e exercícios por IA sem credencial embutida.

🔒 Código-fonte
git clone https://git.programandosolucoes.com.br/git/repos/touchtypingtrainer.git
Código-fonte privado. As credenciais de leitura são liberadas sob solicitação — me chame para conversar sobre o projeto.