Flex / Air obfuscation [zamknięte]

Napisałem (większość) aplikację w Flexie i zajmuję się ochroną kodu źródłowego. Odpaliłem demo Trillix SWF decompiler i otworzyłem plik swf, który został zainstalowany w moim katalogu Program Files. Widziałem, że wszystkie pakiety actionscript, które napisałem, tam były. Nie jestem zbyt zainteresowany pakietami, mimo że jest spora ilość kodu, ponieważ nadal wydaje się całkiem bezużyteczny bez plików mxml. Myślę, że są nawrócone do actionscript, a przynajmniej mam nadzieję. Jednak nadal chciałbym zbadać zaciemnienie.

Czy ktoś ma jakieś doświadczenie z obfuscatorami Flash / Actionscript 3 / Flex? Czy możesz polecić dobry produkt?

Author: Shawn, 2008-08-07

4 answers

Oto co bym zrobił.

  • Skompiluj aplikację do pliku SWF. Następnie Zaszyfruj plik SWF za pomocą AES.

  • Tworzenie aplikacji "wrapper", która ładuje zaszyfrowany plik SWF do Bajtearray za pomocą URLLoader

  • Użyj biblioteki as3crypto do odszyfrowania plików swf w czasie wykonywania.

  • Po odszyfrowaniu użyj Loader.loadBytes, aby załadować odszyfrowany plik swf do aplikacji owijarki.

To będzie o wiele trudniejsze do uzyskania Twój kod. Nie niemożliwe, ale trudniejsze.

W przypadku aplikacji AIR można pozostawić plik SWF zaszyfrowany podczas dostarczania aplikacji użytkownikowi końcowemu. Następnie możesz podać klucz rejestracyjny zawierający klucz używany do odszyfrowania pliku SWF.

Również, tutaj jest link do AS3 obfuscator. Nie jestem pewien, jak dobrze to działa. http://www.ambiera.com/irrfuscator/index.html

 13
Author: Matt MacLean,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-08-07 16:28:34

Procedura zaproponowana przez maclemę nie powstrzyma żadnego atakującego przed uzyskaniem źródła - "aplikacja wrappera" będzie musiała być niezaszyfrowana, więc atakujący będzie mógł dowiedzieć się, że używasz AES (lub innego algorytmu) i uzyska klucz deszyfrujący w podobny sposób (ponieważ musi być gdzieś w tekście jawnym). Gdy już to zdobędzie, będzie mógł łatwo odszyfrować plik SWF.

Jedynym niezawodnym rozwiązaniem (dobrze...) jest jakimś obfuscatorem - używamy Amayeta, która działa na Flex w najnowszej wersji-Zobacz http://www.amayeta.com/software/swfencrypt /.

 20
Author: Borek Bernard,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-25 11:03:36

Moim zdaniem najprostszym i najbezpieczniejszym rozwiązaniem jest mieszanka maclema i Borka odpowiedz:

Zaciemnianie kodu może być dużym problemem, jeśli nie włączyłeś go do procesu od samego początku i jeśli Twoja aplikacja jest dość duża: prawdopodobnie zaciemnianie spowoduje uszkodzenie aplikacji, jeśli użyłeś zdalnych pakietów (i nie zadeklarowałeś tego do obfuscatora), jeśli używałeś wielu nietypowanych zmiennych w obiektach lub klasach dynamicznych ....

Więc: jeśli zrobisz rozwiązanie maclema na twoja duża aplikacja i użyj zaciemniania na swoim opakowaniu (który jest małą aplikacją, która może być bardzo łatwa do zaciemnienia) Twój kod będzie najbezpieczniejszy, a hasle najmniej. Tylko bardzo zły pirat poświęciłby czas na odwrócenie procesu zaciemniania, aby odszyfrować pakiet .... Cóż, jeśli ktoś chce twój kod aplikacji soo bad to albo cia związane lub jesteś już bardzo bogaty (lub oba)

Dziękuję wszystkim za odpowiedzi

 3
Author: RR404,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-04-29 16:33:33

Niedawno wydałem grę na iOS i Androida za pomocą Flasha. Rozglądałem się po Internecie za dobrym darmowym programem do ochrony kodu źródłowego w moim SWF i nie mogłem nic znaleźć, więc napisałem jeden. Jest nadal w fazie rozwoju i jest "używaj na własne ryzyko", ale u mnie zadziałało.

Jest wydany na GitHubie. Sprawdź to i daj mi znać, co myślisz.

Https://github.com/Teesquared/flasturbate

Wgrałem plik binarny windows, ale polecam instrukcje, aby zbudować go samodzielnie, jeśli chcesz spróbować.

Ten obfuscator działa bezpośrednio na pliku SWF. Obecnie tylko zmienia nazwy symboli, ale jest zbudowany na frameworku, który może wspierać modyfikowanie bajtowych kodów w przyszłości.

 0
Author: Teesquared,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-01-12 17:31:28