This page is under permanent construction.
To continue learning Flex/AIR, to better understand how Flash engine and undocumented Flex classes works, and for fun, Nemo 440 tool has been created. It's free ABC code diassembler implemented as AIR-based application. This is my first experience with AIR platform. Nemo 440 can read SWF files compiled with Flex 2/Flex 3/Flex 4 and translates ActionScript 3 byte code to more understandable text dump. Actually similar tool was created year or so before by other people, I only added minor changes and started connecting these ideas with user interface.
There are good programs like Flare and Flasm tools from Igor Kogan. Unfortunately with ActionScript 3/Flash 9/Flex 2 it doesn't work anymore.
With Flex 3 Adobe provides Java "swfutils.jar" tool to disassemble SWF content. Gordon Smith published good article describing this functionality: Disassembling a SWF with swfdump . Interesting fact that for early Flex 2 builds (around alpha version), we used similar tool located in "swfkit.jar", but it had problem with parsing runtime and for 30% of classes in other libraries. With Flex 2 Beta version it started to work worse. Sounds like now Adobe again reborned this tool. Hope it will work well in future.
Nemo 440 is free tool, USE IT AT YOUR OWN RISK, NO WARRANTIES ARE EXTENDED. It is not going to be commercial product in future. Ideally it would be nice to get something like Lutz Roeder's Reflector for .NET, disassembler, decompiler and more in one box, but for Flex. At this moment I am completely busy and probably won't do any good progress in these fields...
Nemo 440 is AIR based application, it requires in Adobe AIR 1.0+ runtime to be installed on user PC. Then download Nemo 440 AIR file to local disk, and start installation by openning it. I used generic certificates, so you will get red security messages during setup process.
Nemo 440 can load files from URL via HTTP or from disk ("Open URL..."/"Open File..." commands accordingly). Supported binary formats are:
Or to investigate certain class/interface/function in package browser. Just select necessary target in left pane, and see result in right one. To add new data window, invoke "New Data Window" command.
Select "Clear All" command to clean package browser panel.
Nemo 440 in life:
Nemo 440 uses the following open source libraries, many thanks for creators:
Adobe published AVM2 documentation, in addition to AVM structure and ABC2 format description, it contains complete AVM2 instructions reference:
Copyright © 2007-2009, Vadim Melnik, e-mail: vmelnikREPLACEITdocsultant.com
Last updated: Jan 21, 2009. Return to my homepage: http://www.docsultant.com/