Quindi ci siamo passati diverse volte, rilasciamo un gioco (a buon mercato) e qualcuno lo hackera e lo mette su uno specchio. Abbiamo impostato Google Alert per tutte le nostre app, quindi ogni giorno ci viene detto chi sta facendo l'hacking. Finora, abbiamo implementato il servizio di licenza come suggerito da Google, il nostro salt viene effettuato casualmente ogni volta che la licenza viene avviata con l'ID dispositivo univoco. Eseguiamo il servizio di controllo una volta, quando l'applicazione viene avviata per la prima volta. Generiamo quindi un hash di 512 caratteri per la chiave e il valore memorizzato che viene confrontato in SharedPreferences da lì in poi.
Ora, so che il controllo una volta è probabilmente dove l'applicazione viene bloccata. Molto probabilmente il nostro bytecode è stato esaminato e ricompilato senza la riga che avvia il controllo.
Da qui, non voglio offuscare il nostro codice come ho visto prima rotto. Voglio qualcosa di un po 'più solido e voglio anche imparare a farlo correttamente. Sono più interessato a imparare che a fare soldi a questo punto poiché solo il 2% delle persone cercherà mai una versione compromessa.
Finora, da solo, ho ideato un generatore di numeri casuali che si trova in diverse aree di avvio del gioco. Quando avviata (diciamo, 1 su 50 volte) la licenza viene controllata. So che questo renderebbe più difficile l'hacking perché il cracker dovrebbe eliminare ogni caso, compilare, eliminare, compilare. Questo metodo, tuttavia, è ancora crackabile ... quindi cosa suggerite voi ragazzi? Ancora una volta, sono davvero interessato a questo processo di sicurezza, quindi per favore educa, non trasformarlo in una discussione sull'offuscamento o sul controllo periodico basato su un timestamp.
Grazie