This tool is fantastic and saves me a huge amount of time, helping us find some interesting bugs (like why "delete myarr.pop()" was having such an odd side-effect when the array contained strings..).
I'm trying to get hold of the source code for this but my SVN clients can't connect, I've tried lots of different network configurations (from work, home and mobile connections) and both the SVN and HTTP connections, so I think the issue is on the Adobe/SoureForge end. Can anyone check/fix this?
The reason for wanting the source is to add a minor change to the Tag Viewer / Tag Information output. Currently I'm trying to work out what function is defined at offset 0x348B2 of my SWF file. I can see it in the hex editor but it's tricky to work out what this function name is: the class is defined in DoInitActions offset 200492 and length 24355 i.e. a big class.
What I'm hoping for is to add the offsets into each line in the DoInitActions 'Tag Information' panel, so e.g. instead of:
1522: if L63
1527: push $1
1527: push 'isMouseDown'
etc where the number at the start is the offset of this instruction within the DoInitActions tag.
If anyone with the source can do this and update the binaries then great but I suspect it's something I would have to do myself... but currently I can't get at the source without having to individually browse to and download every file :-(
A new version of SWF Investigator was released on Friday (version 0.6.2) and I will be updating the open-source repository in the next day or two. When the update is complete, I will respond to this thread so that you know to pull down the latest version of the source code.
For SVN access, I have used TortoiseSVN on Windows which is supported by SourceForge: http://sourceforge.net/apps/trac/sourceforge/wiki/TortoiseSVN%20instru ctions
The logic for your feature request already exists in SWF Investigator but it is currently commented out. For the next release, I can work on enabling it. If you want to play with the functionality in the meantime, then the code is in SWFInvestigator/src/decompiler/tools/Disassembler.as.Within that file there is a function called, "start." Within that function, there is an if-block which checks for "showOffset". You will need to uncomment the out.print() statement within the showOffset if-block. You will also want to set showOffset to true just before the if statement. Recompile the application and it will begin to show the information you want.
The source code in the public repository has been updated to reflect the current version: http://sourceforge.net/adobe/swfinvestigator/code/14/tree/