ActionScript: Difference between revisions

Content deleted Content added
removed website as it now just shows a 404
Code protection: Make it clear a decompiler can't retrieve the original code, rather it's a very close approximation
Line 291:
 
==Code protection==
Like most [[bytecode]] file formats, Flash [[SWF]] files can be [[decompilation|decompiled]] into their source code and assets (similarly to how [[.NET Framework|Microsoft .NET]] files can be decompiled). Some decompilers are capable of nearly full reconstruction of the original source file, downapproximate to the actual code that was used during creation (although results vary on a case-by-case basis).<ref>{{cite web |url=http://www.flashmagazine.com/reviews/detail/review_trillix_flash_decompiler_3/ |title=Third party review of another decompiler |publisher=Flashmagazine.com |date=October 21, 2007 |access-date=April 22, 2013 |archive-url=https://web.archive.org/web/20170620134350/http://www.flashmagazine.com/reviews/detail/review_trillix_flash_decompiler_3/ |archive-date=June 20, 2017 |url-status=dead}}</ref><ref>{{cite web|url=http://www.topshareware.com/reviews/10386-1/flash-decompiler.htm |title=Customer comments on one Flash decompiler |publisher=Topshareware.com |access-date=April 22, 2013}}</ref><ref>[http://www.macupdate.com/reviews.php?id=11541 Customer comments on another Flash product] {{webarchive |url=https://web.archive.org/web/20060818085731/http://www.macupdate.com/reviews.php?id=11541 |date=August 18, 2006}}</ref>
 
In opposition to the decompilers, ActionScript [[obfuscated code|obfuscators]] have been introduced, which transform code into a form that breaks decompiler output while preserving the functionality and structure of the program. Higher-quality obfuscators implement lexical transformations such as identifier renaming, control flow transformation, and data abstraction transformation which collectively make it harder for decompilers to generate output likely to be useful to a human. Less robust obfuscators insert traps for decompilers. Such obfuscators either cause the decompiler software to crash unexpectedly or to generate unintelligible source code.{{Citation needed|date=March 2021}}