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.