The point of my test program was to show how even a very simple flash swf became nearly indecipherable once compiled and I suspect a complex flash would be even more difficult. Sometimes you just cant take the sauce back off the spaghetti.

CB

Chris Hofstader wrote:
Perhaps you can get control text using your little test program and, if so, we can probably extract location and force a mouse click?

You could run the program using gdb in emacs and dump the data in a nice, easy way to both dissect and save.
On Jan 27, 2010, at 10:10 AM, Chris Blouch wrote:

On the unix side you can dump a file to the terminal with the more command. So the dump was simply the result of saying more md.swf. I believe that binary values that map to an ASCII character are simply output while other hex values are output with <> around the hex value. The results obtained are simply a boolean as to whether something is actively using MSAA. Usually that means Jaws or the like is running but you really don't know. It is used as part of my axs library which has a number of little methods for making web apps work more like desktop apps.

http://dev.aol.com/downloads/axs1.2/readme.html#md

CB

Chris Hofstader wrote:
Even though they are compiled, has anyone opened such a file with a hex editor and poked around looking for human readable text? Dumping it as ASCII will almost always give gibberish because of odd compilation artifacts. But a hex editor in a debugger will translate text information into ASCII nicely. There are lots of tools to do this on GNU/Linux platforms but I don't know about Macintosh.

Also, is the dump you included that of your little test program or of the results it obtained when used? The latter would be more interesting.

Happy Hacking,
cdh


cdh
information On Jan 26, 2010, at 3:12 PM, Chris Blouch wrote:

The difficulty is that the swf files are compiled binary data so there's not much there to read. I've heard there are various efforts to make a swf de-comopiler but I've not found one working yet. For example, attached (assuming attachments works) is a small 149 byte swf I made to detect MSAA being used on windows. The whole thing is just a few lines of actionscript on one frame:

//Load up JavaScript communications libraries
import flash.external.ExternalInterface;
//Look for MSAA use and pass to axs.md.cb javascript method
ExternalInterface.call("axs.md.cb",Accessibility.isActive());
//Only do this once
stop();

but if you try to view the md.swf as text it will just be gibberish. If I do a 'more' on md.swf in terminal I get

CW<B1>^...@^@^...@x<9C><AB>``<8D>g`<E0>_<C0><C0><C0><C3><C9><E0>"<C8>^...@^d<CE>L<FF><FF><FF>w`@<85><F6><CC>
<E5>@<A9>i^R^Ll^L0<E0><98><9C><9C>Z\<9C><99><94><99><93>YR<C9> 3<8D><8B><81>!<B3><D8>1<B9>$<B3>,<95>
!h<9A>8^CCbE<B1>^n<8A>^r^R^C;^SHCZNbq^FDajEIjQ^b^N<83><DF>4a^F^FW(<CF>3^OH<A7>%&<A7>^B<85><81><F6>$'
<E6><E4>0^D<89><B3>^C<AD>g...@^@<F5><A3>'U

If someone can use this as a Rosetta stone to decompile SWFs, more power to them.

CB

James & Nash wrote:
Hi list,

Can't something be done in UNIX? I.e. a Flash to text converter or something? I know that FF on Linux uses the Graphical User interface, but can Flash be used on a text-based distribution such as Gentoo? If so, perhaps something can be done in Darwin on Mac OS.
Just a thought
TC
James On 26 Jan 2010, at 19:20, Chris Blouch wrote:

Short of some browser plugin I think the flash container is pretty well sealed off from inspection in Safari. Maybe something else can be done in FF but then that doesn't get us anywhere for voiceover support. Too many gaping holes. Jump over one and land in another.

CB

Chris Hofstader wrote:

Q: Is MSAA info even accessible on the Mac?

A: All information can be found if one knows how and where to look for it. MSAA data is attached to the controls in one of their object description fields. Finding the controls will give us the place to find the MSAA information which, in most cases is as valuable as, "button 1," "button 2," etc. but that's all one gets on Windows too and with a little poking around, we can find the location information which maybe something we can pull out of the browser when it renders the Flash object.

This is all quite hypothetical, I haven't opened up a debugger to try to find anything within a Flash object yet (before or after it's rendered) so this more of a thought experiment than anything else.

cdh
CB

Chris Hofstader wrote:
Could it be possible, if we know what we're looking for, to find the MSAA 
information in a Flash object? It could give us the names and locations 
relative to the Flash window from which we could easily calculate the raw 
screen coordinates and provide a crufty facility for users to click buttons and 
such.

cdh
On Jan 26, 2010, at 12:58 PM, Chris Blouch wrote:

I don't know how much access the Flash object gives to  external scripts so you 
might hit similar roadblocks in Applescript. You can probably get general infor 
about the entire flash object (height, width etc) but being able to trigger 
internal actionscripts probably requires some glue code inside the flash object.

CB

Yuma Antoine Decaux wrote:
Yep, there's got to be a callback between js and flash, and i don't know which 
part of the api is set to open on a per publication basis.

I'm wondering if there isn't a way to access it differently, as in js firs 
extracting the labels, and calling applescript's OSAX which is the extended 
suite of commands, which then move the mouse cursor to the label called by js, 
then the user clicks. It's a bit GUI scripting, but that method might work 
since the mouse cursor can access flash buttons without the use of voice over, 
which in this method is just an external call inherent to the system.

I might get my devver to check this out when he's got time. I myself don't have 
time right now.

Cheers


--
You received this message because you are subscribed to the Google Groups 
"MacVisionaries" group.
To post to this group, send email to macvisionar...@googlegroups.com.
To unsubscribe from this group, send email to 
macvisionaries+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/macvisionaries?hl=en.



--
You received this message because you are subscribed to the Google Groups "MacVisionaries" group. To post to this group, send email to macvisionaries@googlegroups.com <mailto:macvisionaries@googlegroups.com>. To unsubscribe from this group, send email to macvisionaries+unsubscr...@googlegroups.com <mailto:macvisionaries+unsubscr...@googlegroups.com>. For more options, visit this group at http://groups.google.com/group/macvisionaries?hl=en.

--
You received this message because you are subscribed to the Google Groups "MacVisionaries" group. To post to this group, send email to macvisionar...@googlegroups.com. To unsubscribe from this group, send email to macvisionaries+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/macvisionaries?hl=en.

--
You received this message because you are subscribed to the Google Groups "MacVisionaries" group. To post to this group, send email to macvisionaries@googlegroups.com <mailto:macvisionaries@googlegroups.com>. To unsubscribe from this group, send email to macvisionaries+unsubscr...@googlegroups.com <mailto:macvisionaries+unsubscr...@googlegroups.com>. For more options, visit this group at http://groups.google.com/group/macvisionaries?hl=en.

--
You received this message because you are subscribed to the Google Groups "MacVisionaries" group.
To post to this group, send email to macvisionar...@googlegroups.com.
To unsubscribe from this group, send email to macvisionaries+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/macvisionaries?hl=en.

--
You received this message because you are subscribed to the Google Groups "MacVisionaries" group. To post to this group, send email to macvisionaries@googlegroups.com <mailto:macvisionaries@googlegroups.com>. To unsubscribe from this group, send email to macvisionaries+unsubscr...@googlegroups.com <mailto:macvisionaries+unsubscr...@googlegroups.com>. For more options, visit this group at http://groups.google.com/group/macvisionaries?hl=en.
<md.swf>

--
You received this message because you are subscribed to the Google Groups "MacVisionaries" group.
To post to this group, send email to macvisionar...@googlegroups.com.
To unsubscribe from this group, send email to macvisionaries+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/macvisionaries?hl=en.

--
You received this message because you are subscribed to the Google Groups "MacVisionaries" group. To post to this group, send email to macvisionaries@googlegroups.com <mailto:macvisionaries@googlegroups.com>. To unsubscribe from this group, send email to macvisionaries+unsubscr...@googlegroups.com <mailto:macvisionaries+unsubscr...@googlegroups.com>. For more options, visit this group at http://groups.google.com/group/macvisionaries?hl=en.

--
You received this message because you are subscribed to the Google Groups "MacVisionaries" group.
To post to this group, send email to macvisionar...@googlegroups.com.
To unsubscribe from this group, send email to macvisionaries+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/macvisionaries?hl=en.

--
You received this message because you are subscribed to the Google Groups 
"MacVisionaries" group.
To post to this group, send email to macvisionar...@googlegroups.com.
To unsubscribe from this group, send email to 
macvisionaries+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/macvisionaries?hl=en.

Reply via email to