Quali sono i vantaggi di offuscare il codice di rilascio?

12

L'esempio specifico che ho in mente riguarda il gioco alfa al momento Minecraft, ma questa è una domanda generale che a mio avviso merita una conversazione.

Minecraft è scritto in Java e le tracce di stack di solito assomigliano a questo (esempio reale):

java.lang.NullPointerException
    at d.a(SourceFile:247)
    at gi.b(SourceFile:92)
    at bd.a(SourceFile:33)
    at bn.a(SourceFile:69)
    at bn.e(SourceFile:115)
    at bn.d(SourceFile:103)
    at net.minecraft.client.Minecraft.i(SourceFile:1007)
    at net.minecraft.client.Minecraft.run(SourceFile:596)
    at java.lang.Thread.run(Unknown Source)

Ovviamente questi non sono i nomi dei pacchetti e dei metodi reali che lo sviluppatore usa quando scrive. Dato che si trova in una fase alpha, sembra che lo sviluppatore dovrebbe essere in grado di dare un senso alle sue tracce di stack, specialmente se qualcuno è in grado di fornirne uno per una segnalazione di bug. Così com'è, è per lo più privo di significato.

Quale vantaggio si potrebbe sperare di ottenere offuscando il suo codice in questo modo per superare gli svantaggi dell'identificazione dei bachi più difficile?

    
posta StrixVaria 09.11.2010 - 21:44
fonte

2 risposte

22

Ne offuschiamo anche il codice Java ...

Il vantaggio è che rende più difficile il reverse engineering (se sei preoccupato per qualcuno che ruba il tuo codice base e lo usa come base per creare un prodotto concorrente simile, ad esempio, ecc.)

Puoi recuperare la traccia dello stack originale: ci sono strumenti di offuscamento che creano file di riferimento speciali che puoi usare per eseguire le tracce dello stack offuscate, e esce con la traccia dello stack dell'origine originale. Questi sono generati dal processo di offuscamento stesso, quindi non puoi recuperare la traccia dello stack originale a meno che tu non abbia le mani sul file di riferimento che hai usato per offuscare il codice in primo luogo.

Questo non ha davvero svantaggi. :)

    
risposta data 09.11.2010 - 21:53
fonte
3
  • protezione della proprietà intellettuale

La maggior parte degli obfuscator ottimizza il tuo codice , rimuove i metadati non utilizzati o il codice non utilizzato, la compressione, l'eliminazione del codice morto o l'eliminazione dei duplicati.

    
risposta data 09.11.2010 - 22:19
fonte

Leggi altre domande sui tag