Domanda

Ho scritto (la maggior parte) di un'applicazione in Flex e mi preoccupo di proteggere il codice sorgente.Ho avviato una demo di Decompilatore swf Trillix e ho aperto il file swf che era installato nella mia directory Programmi.Ho visto che tutti i pacchetti ActionScript che ho scritto erano lì.Non mi preoccupo troppo dei pacchetti, anche se c'è una notevole quantità di codice, perché sembra ancora piuttosto inutilizzabile senza i file mxml.Penso che siano convertiti in ActionScript, o almeno spero.Tuttavia, mi piacerebbe ancora esplorare l’offuscamento.

Qualcuno ha esperienza con gli offuscatori Flash/Actionscript 3/Flex?Potete consigliarmi un buon prodotto?

È stato utile?

Soluzione

Ecco cosa farei.

  • Compila la tua applicazione in un file SWF.Quindi crittografa l'SWF utilizzando AES.

  • Crea un'applicazione "wrapper" che carichi l'SWF crittografato in un ByteArray utilizzando URLLoader

  • Usa il as3crypto libreria per decriptare il file swf in fase di runtime.

  • Una volta decrittografato, utilizzare Loader.loadBytes per caricare il file swf decrittografato nell'applicazione wrapper.

Ciò renderà molto più difficile ottenere il codice.Non impossibile, ma più difficile.

Per le applicazioni AIR potete lasciare il file SWF crittografato durante la consegna dell'applicazione all'utente finale.Quindi potresti fornire una chiave di registrazione che contiene la chiave utilizzata per decrittografare l'SWF.

Inoltre, ecco un collegamento a un offuscatore AS3.Non sono sicuro di come funzioni bene, però.http://www.ambiera.com/irrfuscator/index.html

Altri suggerimenti

La procedura suggerita da maclema non impedirà realmente a nessun utente malintenzionato di ottenere il sorgente: l'"applicazione wrapper" dovrà essere decrittografata in modo che l'utente malintenzionato possa scoprire che usi AES (o qualsiasi altro algoritmo) e otterrà il file chiave di decrittazione in modo simile (perché deve essere in chiaro da qualche parte).Una volta ottenuto questo, sarà in grado di decrittografare facilmente il tuo file SWF.

L'unica soluzione affidabile (beh...) è una sorta di offuscatore - usiamo Amayeta che funziona per Flex nell'ultima versione - vedi http://www.amayeta.com/software/swfencrypt/ .

Bene, secondo me, la soluzione più semplice e sicura è un mix di risposta maclema e Borek:

Offuscare il codice può essere un grosso grattacapo se non lo hai incluso nel processo fin dall'inizio e se la tua applicazione è piuttosto grande:è probabile che l'offuscamento renda la tua applicazione corrotta se hai utilizzato pacchetti remoti (e non lo hai dichiarato all'offuscatore) se hai utilizzato molte variabili non tipizzate in oggetti o classi dinamiche ....

COSÌ:se esegui la soluzione di maclema sulla tua grande applicazione e usi l'offuscamento sul tuo wrapper (che è una piccola app che probabilmente sarà molto facile da offuscare) il tuo codice sarà il più sicuro e il meno fastidioso.Solo un pirata molto arrabbiato si prenderebbe il tempo di decodificare l'offuscamento per poi decriptare il pacchetto....Beh, se qualcuno vuole così tanto il tuo codice di applicazione o è legato alla CIA o sei già molto ricco (o entrambe le cose)

grazie a tutti per le vostre risposte

Recentemente ho rilasciato un gioco iOS e Android utilizzando Flash.Ho cercato su Internet un buon programma gratuito per proteggere il codice sorgente nel mio SWF e non sono riuscito a trovare nulla, quindi ne ho scritto uno.È ancora in fase di sviluppo ed è "usalo a tuo rischio e pericolo", ma per me ha funzionato.

È rilasciato su github.Dai un'occhiata e fammi sapere cosa ne pensi.

https://github.com/Teesquared/flasturbate

Ho caricato un file binario di Windows ma ti consiglio di seguire le istruzioni per crearlo tu stesso se vuoi provarlo.

Questo offuscatore funziona direttamente sul file SWF.Attualmente rinomina solo i simboli, ma è costruito su un framework che potrebbe supportare l'alterazione dei bytecode in futuro.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top