A robust ActionScript 3 bytecode assembler/disassembler and SWF manipulation toolkit for reverse engineering and modification.
RABCDAsm is a toolkit for disassembling and assembling ActionScript 3 bytecode (ABC) and manipulating SWF files. It provides a suite of command-line utilities that allow developers to extract, modify, and reinject bytecode into Flash files, solving the need for reliable low-level editing of SWF content.
Reverse engineers, security researchers, and Flash developers who need to analyze, debug, or modify compiled SWF files at the bytecode level.
Developers choose RABCDAsm for its robustness, speed, and ability to handle obfuscated or malformed SWF files that other tools might fail on, offering a textual representation close to the ABC format for precise control.
Robust ABC (ActionScript Bytecode) [Dis-]Assembler
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Can assemble projects over 200,000 lines of code in under a second on modern machines, as highlighted in the motivation, ensuring efficient workflow for large files.
Guarantees editing of any SWF file loadable by Adobe AVM, even if obfuscated or malformed, as stated in the philosophy and motivation sections.
Disassembles each class to its own file in a package hierarchy, making it easier to navigate and edit complex codebases, as described in the usage and syntax overview.
Includes tools for zlib, 7-Zip, and LZMA compression, allowing for file size optimization and handling of modern SWF formats, with specific utilities like swf7zcompress and swflzmacompress.
Features a preprocessor-like system with directives and variables, enabling code reuse and simplification of repetitive bytecode edits, as detailed in the macros section.
Requires deep understanding of AVM2 concepts like multinames and namespaces; the syntax is verbose and closely tied to the binary format, making it inaccessible for casual users.
Tools like swf7zcompress need 7-Zip installed and in PATH, and swflzmacompress requires liblzma, adding setup complexity and potential compatibility issues across systems.
Outputs bytecode assembly, not human-readable ActionScript source, which limits usability for those wanting high-level code analysis without manual bytecode interpretation.
Lacks a graphical user interface, which can be cumbersome for users accustomed to visual tools for SWF editing and debugging, relying entirely on terminal commands.