Original: O que seu chefe diz? Descubra - faça isso.
Pediram-me para elaborar o texto acima:
Primeiro de tudo, acho que você tem mais de um dilema:
- Você deveria "consertar" outro código de pessoas?
- A implementação (daqui de A) das outras pessoas é ruim o suficiente para que seja substituída por outra coisa?
- Um obfuscator (daqui de B) será melhor para esse "incorporar licenciamento em nosso aplicativo"?
Primeiro de tudo, visto de um caso de negócio o problema IS resolvido. A está no lugar e é - muito provavelmente - uma solução "boa o suficiente" para o problema. Sua empresa pode estar feliz com isso, basicamente, apenas protegida o suficiente para que o esforço deliberado seja necessário para quebrá-la.
Isso significa que, mesmo que você não goste (e, acredite, verá muito pior em sua carreira ), ele faz o que é necessário. Assim, à medida que o problema é resolvido, você não deve "apenas fazê-lo", mas sim convencer a pessoa que está encarregada de atribuir seu trabalho que o preço a longo prazo desta implementação será alto o suficiente para justificar uma reversão e escolhendo um ofuscador de estoque. Isso exigirá um pouco de preparação de você e também notará que obfuscators também têm desvantagens que você precisa saber (outras respostas cobrem isso bem). Por exemplo. rastreamentos de pilha não são imediatamente utilizáveis, etc. Tudo depende de como é importante evitar a pirataria. Observe que o mais difícil de quebrar são aqueles que exigem que os dongles de hardware sejam executados e, provavelmente, são mais caros do que seus clientes gostarão.
Portanto, essa decisão não é sua, já que sua empresa precisa usar recursos adicionais para ir para B. Portanto, é necessário levar suas preocupações à pessoa responsável, explicar isso e qualquer outro termo de longo prazo.
Em outras palavras: O que seu chefe diz? Descubra - faça isso.
Note também que isso teria sido diferente se você tivesse levantado a questão antes, para que o desperdício de dinheiro pelo tempo gasto na implementação de A fosse menor. Em outras palavras, quando a escolha entre A e B deveria ser feita.
Por fim, gostaria de comentar sua pergunta sobre "apenas corrigir o código de outras pessoas". Esta não é uma pequena correção para o código existente (o que acho ótimo e incentivado, especialmente com testes no local). É uma reversão e reimplementação disruptiva e, mesmo em equipes com propriedade comum de código, isso não seria aceitável - pelo menos para mim - sem aprovação prévia.
Espero que isso esclareça o meu ponto de vista.