Obfuscação de código, vocês costumam utilizar?
Neste vasto universo da programação, em algum momento vamos nos deparar com a prática fascinante e, muitas vezes, controversa da obfuscação de código, onde para alguns, é uma técnica valiosa para proteger a propriedade intelectual e dificultar a engenharia reversa e para outros pode parecer desnecessária e até mesmo um despercídio de tempo.
Ao longo de minha jornada como programador, tenho me deparado com situações em que a obfuscação de código se tornou uma opção a ser considerada, particularmente em projetos onde o próprio cliente cuida da infraestrutura e tem acesso total aos artefatos do sistema. (Diferentemente de um SaaS por exemplo, onde os cliente não possuem acesso ao "binário" em si)
Recentemente tive algumas experiências com javascript-obfuscator para JavaScript e IonCube para PHP, e em ambas, sempre após a obfuscação do código, quando rodamos os testes E2E, temos algumas funcionalidades que "param de funcionar", onde temos que reajustar os parâmetros da obfuscação até tudo funcionar corretamente.
Essa configuração leva um bom tempo para deixar liso na pipeline, mas com isso, sempre fico mais tranquilo do que "jogar o código puro" para os clientes, correndo o risco de tentarem fazer uma engenharia reversa encima.
Isso levanta as questões:
Vocês, colegas desenvolvedores, já tiveram experiências com a obfuscação de código?
É uma prática que faz parte regular do seu arsenal de desenvolvimento?
Você já fez ou participou de uma engenharia reversa em algum software?