2012-03-12 5 views
10

Ho usato Dotfuscator per proteggere la mia applicazione dal reverse engineering Ho crittografato i file dll nell'applicazione Windows, ma come posso farlo in OSX/MonoTouch?MonoTouch: Come proteggere la mia applicazione

Estrarre la DLL da ipa, quindi confondere le DLL in Windows e reimballare le DLL crittografate in IPA, quindi pubblicarle nell'appstore?

Esiste una soluzione semplice?

risposta

16

Foremost è necessario ricordare che iOS non consente JIT (just in time) la compilazione. Ciò significa che tutto deve passare attraverso il compilatore AOT (anticipo).

Il risultato è che tutto il codice IL da assembly viene convertito in ARM nativo (v6, v7 e/o il pollice) istruzioni e che l'IL si non è richiesto più.

Ciò significa che, quando si sta creando per Release|iPhone, il codice IL verrà rimosso dagli assiemi. Dal momento che viene rimosso, non sarà presente (da decompilare) nell'applicazione che pubblichi.

NOTE

  • i complessi saranno ancora all'interno dell'applicazione perché è ancora necessaria metadati (ad esempio System.Reflection ha bisogno). Quindi i nomi dei simboli e i file delle risorse non saranno manomessi/criptati come fanno generalmente gli offuscatori;

  • È possibile smontare assembly ARM (che sarebbe vero anche se offuscato le assemblee prima della compilazione AOT), ma è molto più più difficile da capire (e tornare a C#) di IL è.

  • Estrazione assemblee del IPA e procesing li romperà almeno firma dell'applicazione (è possibile ri-firmarlo). Sarà anche probabile che interrompa molte altre cose (poiché il codice farà riferimento a nomi/strutture che potrebbero essere cambiati). Non penso che funzionerà (ma dipende dalle opzioni che useresti dal tuo obfuscator).

+1

grazie. riflettore – BlueSky

+3

grazie. Sì, capisco che è un compilatore AOT in monotipo. ma ho sbagliato, perché ieri ho messo le DLL (dal pacchetto ipa) negli strumenti riflettore, ho visto molto codice C#. Ora lo rivedo, è solo un metodo di stub, nessun codice di logica aziendale. grazie mille, grazie al team di xamarin che ha portato un prodotto così buono. – BlueSky