timknip / pyswf

A Python library to read and write SWF files

Home Page:https://github.com/timknip/pyswf/wiki

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Not decompiling Actions?

andresriancho opened this issue · comments

Hi there!

I'm trying to decompile the flash that's available here [0] and it's not working as expected. I tried adding some debugging code to the action factory in actions.py and all I see is ONE call to it with a 0x07 (Stop) code; after that and for some unknown reason no more calls to the factory are made.

I also tried to modify the factory method in order to add the ActionGetURL class and it did not work (because the factory is called only once).

Any idea on what could be wrong? I'm willing to debug and help with the testing process :)

[0] http://demo.testfire.net/subscribe.swf

Hi!
Sorry for late response.
Afraid actions aren't decompiled yet.... As you noticed only one or two actions get decompiled (one of 'm 'stop')
Rest of the actions are simply skipped.

No problem for the late response. I understand that decompiling bytecode isn't the objective of pyswf at this moment. During the last days and after reporting the bug I did some analysis, that even though I know it will be most likely ignored at this moment, I supposed it should be posted somewhere public just in case someone else wants to continue from the point I was:

The problem is that the Tag 0x34 (DefineButton2) does not exist, which in Claus' version (original version where this code was ported from) is in TagDefineButton2.as . Because of this, what happens is that everything that's inside the button (among other things the getURL function call) are not parsed.

Tried to add the"class DefineButton2(DefinitionTag):" and it's "def parse()" but it wasn't a 5 minute job. I don't really see this as a pyswf bug, but an improvement.

Also note this code in tag.py:

   elif type == 33: return TagDefineText2()
   elif type == 35: return TagDefineBitsJPEG3()

pyswf is not including 34 and is also missing many others.

The button tag appears at offset 3054 from the subscribe.swf file once it's decompressed.