Devo perdere tempo a prevenire la pirateria della mia app? [duplicare]

31

Il titolo dice tutto, più faccio ricerche sulla pirateria e gli strumenti utilizzati per rompere un'app più penso che sia solo tempo sprecato.

La mia più grande minaccia è che la mia app venga crackata e caricata di nuovo in pochi minuti dopo il rilascio. Ma non sono sicuro di quanto dannoso sarà per le mie entrate, se ci saranno anche entrate. Forse qualcuno può venire con una certa esperienza, è la mia prima app che pubblicherò e non ho esperienza con questo. La mia app sarà gratuita con gli annunci. Penso che questa sia un'altra linea di difesa perché, a mio parere, l'attenzione principale è sulle app a pagamento a causa del fatto che non sono disponibili in molti paesi ..

Il mio approccio attuale è che userò semplicemente proguard non tanto per renderlo più difficile da decifrare (più probabilmente comprenderò il codice), perché non hai nemmeno bisogno di capire il codice se semplicemente lo dimostri e carichi lo stesso applicazione al playstore, sarà sufficiente modificare il nome del pacchetto. Il mio principale punto di utilizzo di proguard è proprio quello di ridurre l'app.

È un approccio "buono"?

    
posta Mike 04.01.2015 - 01:59
fonte

8 risposte

51

No.

La maggior parte delle applicazioni di grandi sviluppatori con protezione da copia di livello industriale reale appare in torrent, crack, entro pochi giorni dal rilascio. È estremamente dubbio che uno sviluppatore più piccolo possa eguagliarlo. Tentare di sprecare il tuo tempo, lasciando meno tempo per te a sviluppare funzionalità / app che fanno soldi.

Potresti voler fare un lavoro banale per tenere a bada le copiatrici "disinvolte", ma per insignificante intendo qualcosa che puoi organizzare insieme in poche ore. (Ad esempio qualcosa come ProGuard.) Non fermerai le persone con conoscenze tecniche che vogliono attivamente decifrare la tua app.

    
risposta data 04.01.2015 - 02:46
fonte
30

Should I spend time preventing piracy of my app?

Stai facendo la domanda sbagliata. Le protezioni tecniche come proguard sono un must ma stanno cercando di risolvere il problema nel modo più duro.

La prima domanda dovrebbe essere "La mia app contiene qualcosa che ha davvero bisogno di protezione?" come un algoritmo complesso o proprietario. In questo caso, la soluzione migliore è spostare l'app dall'app verso un server con cui l'app parla. L'app diventa semplicemente un livello dell'interfaccia utente sopra il server. Ovviamente, questo significa che è necessario mantenere un server (o server) e un meccanismo di autenticazione appropriato per ogni utente (un intero altro post). Inoltre, è inappropriato per app disconnesse o altamente reattive.

La seconda domanda dovrebbe essere "Perché le persone potrebbero piratare la mia app?" se si tratta di una motivazione finanziaria, rilascia una versione gratuita dell'app con un set di funzionalità ridotto. Se si tratta di un gioco, fai in modo che il gioco principale e i primi livelli liberi vendano livelli / personaggi / aggiornamenti / qualsiasi altro tramite acquisti in-app. In alternativa, rilascia una versione gratuita finanziata nella pubblicità in-app (sì, so che molte persone lo odiano ma è il mondo in cui viviamo).

Non importa quello che fai, come dice Steven nella sua risposta, alcune persone lo faranno per una sfida tecnica e libereranno il crack per dimostrare la loro abilità. Non puoi fermarli, quindi non vale la pena preoccuparsi.

    
risposta data 04.01.2015 - 04:00
fonte
8

Molti anni fa, ho comprato un libro sullo sviluppo del gioco. Aveva un capitolo sulla pirateria. Comprendeva il seguente riepilogo:

It is not possible to prevent piracy with technology. The only way to prevent piracy is to make a game so cool and exciting that the pirates choose to go out and buy a copy.

Puoi mai impedire la pirateria. È possibile limitare la pirateria, è possibile monitorare la pirateria, ma non ci sono strumenti che possono veramente impedirlo. Lo sottolineo perché questa parola strong, "prevenire", può spingere le persone a raggiungere misure esorbitanti pensando "Se faccio solo X, posso prevenire la pirateria". Sono sempre rattristati dal risultato, ed è tutto a causa di una scelta di parole.

Per riformulare i punti chiave di akton in una terminologia tradizionalmente utilizzata in Information Security: devi sviluppare un modello di minaccia che descriva i tuoi aggressori. se il tuo attaccante è uno script-kiddie che scarica alcuni script da sul Web, quindi puoi concentrare la tua sicurezza guardando in linea ciò che gli script-kiddies possono trovare e difendendoli. Se sei veramente interessato ai tuoi segreti e non alle mani del governo cinese e / o americano, scoprirai che devi fare un pochino di più sul fronte della sicurezza.

Una cosa bella del fraseggio come "modello di minaccia" è che sarai anche in una posizione eccellente per gestire correttamente i problemi di sicurezza, come accessi e numeri di carte di credito e quant'altro. Sarai al comando della curva.

Se tutto ciò che ti preoccupa sono gli script-kiddies, sarebbe utile non solo cercare su antiLVL di Google che hai menzionato nei tuoi commenti, ma giocare con alcuni di essi. Scopri cosa possono e cosa non possono fare. Conosci il tuo nemico.

    
risposta data 04.01.2015 - 08:40
fonte
5

Se possibile, dovresti seguire il consiglio in link e spostare il materiale che vuoi pagato a un server. E poi gestisci l'accesso lì. Si può presumere che l'app stessa sia rubata e pirata quanto vuole. Copiare il tuo server è più difficile.

Ovviamente questa soluzione ha il rovescio della medaglia di non essere bella o intelligente. Ma funziona.

    
risposta data 04.01.2015 - 06:15
fonte
2

È impossibile prevenire completamente la pirateria.

Devi accettare che il tuo codice verrà eseguito su macchine di altre persone. Queste persone possono prendere il tuo codice sulle loro macchine e fare qualsiasi cosa con esso, compresi i cambiamenti e (illegalmente) ridistribuirlo.

Puoi sfruttare il sistema legale del tuo paese se ritieni che i tuoi diritti siano stati violati; ad esempio, un cittadino americano può emettere una richiesta di rimozione DMCA contro un'entità che sta distribuendo il suo lavoro. Tuttavia, sarà più difficile smantellare una rete distribuita internazionale, come quelle composte da collegamenti torrent.

In alternativa, puoi rivedere la tua filosofia sulla distribuzione del software. Considerando che è già possibile per i tuoi utenti fare qualsiasi cosa con il tuo programma, potresti accettare quella realtà. Quindi, abbraccia quella realtà e concedi ai tuoi utenti la libertà di eseguire, copiare, distribuire, studiare, modificare e migliorare il software. Questo in genere si ottiene dichiarando il tuo programma "software libero" (e quando dico "libero", sono Parlo in termini di "libertà e libertà", non in termini di "prezzo").

Il rilascio del programma come "software libero" presenta numerosi vantaggi:

  • I tuoi utenti potranno facilmente modificare il tuo programma.
    • Se apprezzi le loro modifiche, puoi unirle di nuovo nel progetto principale e, di conseguenza, avrà più valore.
    • Se I dovesse modificare il tuo programma, la prima cosa che farei sarebbe rimuovere gli annunci, perché li trovo abbastanza fastidiosi. Potresti considerare questo come un'indicazione che la tua applicazione sarebbe migliore senza pubblicità, il che ti spingerebbe ad immaginare un modello di entrate migliore ("migliore" sia in termini di gradimento dei tuoi utenti che di profitti).
  • I tuoi utenti saranno liberi di ridistribuire il tuo programma.
    • Se vuoi che il tuo programma "diventi virale", rimuovere tutte le barriere legali alla viralità sarebbe una buona cosa.
    • Le persone possono già ridistribuire il tuo programma. O sono "cattivi" o sono benevoli per condividere le cose con i loro vicini, che è una caratteristica umana fondamentale che ci rende più efficaci delle specie senza compassione. Ora possono sentirsi bene, come dovrebbero.
  • Altre persone saranno in grado di studiare il tuo lavoro e imparare da esso.
    • Ho imparato una quantità enorme di programmazione dalla ricerca della fonte dei giochi RPGMaker, per i quali il codice di gioco è solitamente libero di navigare. In effetti, sono consapevole che un'intera comunità di sviluppatori di giochi è emersa dalla condivisione e dall'apprendimento delle cose dal codice degli altri, ed è cresciuta e sta conducendo carriere di successo e offrendo prodotti di alta qualità. Puoi essere felice sapendo che il tuo programma ha avvantaggiato più persone di te.

Rendere il tuo programma "proprietario", come hai intenzione di fare, ti dà la falsa rassicurazione che le persone devono prima pagarti per ottenere e utilizzare il tuo software. Sei consapevole che questo non è vero, a causa della pirateria.

Quindi considera l'inverso: cosa accadrebbe se offrissi il software ai clienti per primo e dicessi loro che se ne ricavassero un valore, allora ti pagherebbero?

Se una persona "onesta" era disposta a pagarti per il tuo software prima , poteva usarla, quindi (purché tu stia fornendo un prodotto di alta qualità) perché non dovrebbe essere proprio come disposto a pagarti dopo che gli è piaciuto? (Ho pagato l'autore del plugin AdBlock di Chrome, che è un software gratuito disponibile gratuitamente, perché ne ho ricavato un immenso valore.)

Per quanto riguarda una persona "disonesta" che scaricherebbe una versione modificata del tuo programma da una fonte illegale, non è certamente disposto a pagare in anticipo. Ora hai l'opportunità di acquisire entrate da quella persona, perché il "freeloader" potrebbe ricavare valore dal tuo programma e quindi decidere di pagarti. Se i pirati rappresentano una considerevole "minaccia" per il tuo programma, potresti prendere in considerazione la possibilità di trasformare le tabelle in modo che i tuoi pirati diventino potenziali clienti.

Raccomando l'approccio "software libero". Potresti continuare a creare software proprietario e probabilmente guadagnerai ancora un sacco di soldi, come fanno molte persone che producono software proprietario; anche se dovresti ignorare i "problemi", sia finanziari che morali, che esistono inevitabilmente e incurabilmente a causa della natura delle opere creative. Questi "problemi" diventano veicoli per la valorizzazione del tuo prodotto quando si adottano le filosofie del software libero; avresti un vantaggio sui concorrenti che non riescono a capire questo potere.

    
risposta data 05.01.2015 - 03:24
fonte
0

No, è inutile. In definitiva, l'analisi costi / benefici non funziona.

Per cominciare, devi indirizzare una piattaforma su cui è integrata la sicurezza. Realisticamente, indipendentemente da quanto ti potrebbe piacere la piattaforma Android non è così sicura, è progettata per essere aperta.

Il costo di implementare qualsiasi sicurezza utile è probabilmente più di qualsiasi profitto tu possa vedere poiché Android ha la spesa più bassa per utente di tutte le piattaforme mobili, le uniche persone per cui guadagnerà soldi sono Google. Coloro che non acquistano i telefoni economici sono spesso dei puristi che pensano che la libera (espressione di idee) sia specificamente la parte libera (come nella birra), quindi farà tutto il possibile per evitare di pagare puramente come una sfida.

Tutto ciò che devi fare per proteggere la tua applicazione deve influenzare il nucleo dell'esperienza utente e non essere una protezione imbullonata dopo il fatto. Le app che fanno bene a tale riguardo sono quelle in cui il prodotto acquistato è il contenuto, non l'app stessa.

Poiché la tua preoccupazione principale (in base ai commenti) è correlata all'autenticazione (versioni crackizzate e riconfezionate) della tua app nelle appstore ... questo è principalmente il problema dell'appstore da risolvere e potresti star meglio a cercare modi per un'app per registrare automaticamente che è stato riconfezionato anziché scoraggiare la copia.

    
risposta data 04.01.2015 - 16:11
fonte
0

Conclusione

La mia conclusione, per non entrare in conflitto con Q&A Format , dopo tutte queste grandi risposte non è investire molto tempo nel renderlo il più difficile possibile per rompere la mia app. Per questa app, userò solo proguard a causa dell'effetto shrink e perché è più difficile capire il codice se qualcuno vuole modificarlo ...

Preferisco trascorrere più tempo in SEO / implementando più features come Steven sottolineato e dopo la pubblicazione cercherò di dare un supporto migliore ai miei utenti di quanto non facciano i pirati! ;) Penso che farà la differenza ed è uno dei modi migliori per combatterli.

Qualsiasi altra cosa che accadrà è un'esperienza aggiuntiva e cambierà o non cambierà il modo in cui pubblico le mie app in futuro. Grazie!

    
risposta data 04.01.2015 - 18:37
fonte
-1

Dalla mia esperienza: molte persone amano il software originale ed è molto difficile prevenire il crack. La cosa migliore per prevenire la pirateria è sempre quella di consegnare una versione gratuita con meno funzioni del software, e avvisare le persone che il software crack potrebbe minacciarli (virus, trojan quasi sicuramente). Quindi, se alla gente piace il tuo software usando la versione gratuita (pulita, senza minacce) la compreranno.

    
risposta data 04.01.2015 - 11:39
fonte

Leggi altre domande sui tag