Obfuscatie de tip Flex / Air

Am scris (cea mai mare parte) o aplicație în Flex și mă preocupă de protejarea codului sursă. Am lansat un demo de Trillix swf decompiler și am deschis fișierul swf care a fost instalat în fișierele mele program director. Am văzut că toate pachetele de acțiuni pe care le-am scris erau acolo. Nu mă prea preocupă de pachete, chiar dacă există o cantitate substanțială de cod, deoarece încă pare destul de inutilizabilă fără fișierele mxml. Cred că ei sunt convertiți în acțiuni sau atleast sper. Cu toate acestea, aș dori să explorez obfuscația.

Are cineva vreo experiență cu Flash / Actionscript 3 / Flex obfuscators? Vă puteți recomanda un produs bun?

0
fr hi bn

4 răspunsuri

Iată ce aș face.

  • Compilați aplicația într-un fișier SWF. Apoi criptați SWF folosind AES.

  • Faceți o aplicație "wrapper" care încarcă SWF criptat într-un ByteArray utilizând URLLoader

  • Utilizați biblioteca as3crypto pentru a decripta SWF în timpul rulării.

  • După ce este decriptat, utilizați Loader.loadBytes pentru a încărca swf decriptat în aplicația de împachetare.

Acest lucru va face mult mai greu pentru a obține codul. Nu imposibil, dar mai greu.

Pentru aplicațiile AIR, puteți lăsa SWF criptat la livrarea aplicației către utilizatorul final. Apoi, puteți furniza o cheie de înregistrare care conține cheia utilizată pentru a decripta SWF.

Also, here is a link to an AS3 obfuscator. I am not sure how well it works though. http://www.ambiera.com/irrfuscator/index.html

0
adăugat

Procedura sugerată de maclema nu va opri nici un atacator de la obținerea sursei - "aplicația de împachetare" va trebui să fie necriptată, astfel încât atacatorul să poată afla că utilizați AES (sau orice alt algoritm) și că el va obține cheia de decriptare într-un mod similar (pentru că trebuie să fie în textul undeva). Odată ce are acest lucru, va putea decripta fișierul SWF cu ușurință.

Singura soluție fiabilă (bine ...) este un fel de obfuscator - folosim Amayeta care lucrează pentru Flex în cea mai recentă versiune - vă rugăm să consultați http://www.amayeta.com/software/swfencrypt/ .

0
adăugat
Cred că acesta este răspunsul care trebuie acceptat.
adăugat autor Snow Blind, sursa

Ei bine, în opinia mea, cea mai ușoară și mai sigură soluție este un amestec de maclema și răspunsul lui Borek:

Codul de codificare poate fi un avantaj dacă nu l-ați inclus în procesul dvs. de la început și dacă aplicația dvs. este destul de mare: este posibil ca obfuscația să facă ca aplicația dvs. să fie coruptă dacă utilizați pachete la distanță (și nu ați declarat acest lucru obfuscatorului) dacă ați folosit pentru multe variabile unTyped în Obiecte sau în clase dinamice ....

Deci, dacă faceți soluția maclemei pe aplicația dvs. mare și folosiți obfuscation pe ambalajul dvs. (care este o aplicație mică, care este probabil să fie foarte ușor de încurcat), sunteți codul cel mai sigur și cel mai mic. Numai un pirat foarte furios ar lua timp pentru a inversa ingineria obfuscatiei apoi sa decripteze pachetul .... Ei bine, daca cineva doreste codul tau de aplicatie atat de rau, fie ca este legat de CIA, fie ca esti deja foarte bogat (sau ambele)

vă mulțumesc tuturor pentru răspunsurile dvs.

0
adăugat

Am lansat recent un joc iOS și Android folosind Flash. M-am uitat în jurul valorii de internet pentru un bun program gratuit pentru a proteja codul sursă în SWF-ul meu și nu am putut găsi nimic, așa că am scris unul. Este încă în dezvoltare și este "folosiți pe propriul risc", dar a funcționat pentru mine.

E lansat pe github. Verifică-l și spune-mi ce crezi.

https://github.com/Teesquared/flasturbate

Am încărcat o fereastră binară, dar vă recomandăm să urmați instrucțiunile pentru ao construi singur dacă doriți să încercați.

Acest obfuscator funcționează direct pe fișierul SWF. În prezent, el redenumeste simbolurile, dar este construit pe un cadru care ar putea suporta modificarea bytecodes în viitor.

0
adăugat