You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@flex.apache.org by mark goldin <ma...@gmail.com> on 2014/08/29 16:59:19 UTC

Decompile SWF module

Is it possible to do it? The  source code has been lost. I tried Sothink,
but because it's a module it does not do it.

Thanks

Re: Decompile SWF module

Posted by Alex Harui <ah...@adobe.com>.
OK, I guess I should have emphasized that your code would not be in the
first ABC block.  It should be in block 2 if this is a release SWF or you
are using Flex 3, which it looks like you are.  In a Flex 4 debug SWF all
of the code from a class will be in its own doABC block and there should
be lots of them.

Anyway, I also just noticed your test module didn't really have any method
bodies so let's just look at a Flex method body that is in your dump.

Here is RSLItem.as:itemCompleteHandler's source:

public function itemCompleteHandler(event:Event):void
    {
    completed = true;
        
    // Notify an external listener
    if (chainedCompleteHandler != null)
        chainedCompleteHandler(event);
    }


And ABC from the dump:

function mx.core:RSLItem:::itemCompleteHandler(flash.events:Event)::void
    maxStack:2 localCount:2 initScopeDepth:4 maxScopeDepth:5
        debugfile  
	"C:\autobuild\3.x\frameworks\projects\framework\src;mx\core;RSLItem.as"
        debugline     	240
        getlocal0     	
        pushscope     	
        debug         	1 619 0 240
        debugline     	242
        findproperty  	private:completed
        pushtrue      	
        initproperty  	private:completed
        debugline     	245
        getlex        	mx.core:RSLItem:chainedCompleteHandler
        pushnull      	
        ifeq          	L0

        debugline     	246
        findpropstrict	mx.core:RSLItem:chainedCompleteHandler
        getlocal1     	
        callpropvoid  	mx.core:RSLItem:chainedCompleteHandler (1)
    L0: debugline     	247
        returnvoid    	
    0 Extras
    0 Traits Entries

The AVM is stack-based.  Things get pushed and popped of a stack.  Every
method starts with

debugfile
debugline
getlocal0 (this is the 'this' pointer)
pushscope


The pattern:
   findproperty,
   <Push some value>
   initproperty

initializes a variable, in this case "complete = true"

getlex reads a variable

ifXXX is an if statement on the last two things on the stack and if the
condition XXX is met, jumps to the label (see the L0: later in the dump).

The ABC code is documented here:
http://www.adobe.com/content/dam/Adobe/en/devnet/actionscript/articles/avm2
overview.pdf

Any AS decompiler tries to find patterns and generate source from them.
If you are trying to resurrect tons of code, you may need to write your
own if none of the available decompilers are working.  But hopefully, you
have some version of the sources.  If you do, I would build that source
and dump it, and compare the method bodies with the dump from the module
you want to decompile, then decode the differences and alter the source as
needed.


-Alex

On 8/29/14 1:38 PM, "mark goldin" <ma...@gmail.com> wrote:

>Here:
>http://pastebin.com/bAWAx8wf
>
>
>On Fri, Aug 29, 2014 at 3:25 PM, Alex Harui <ah...@adobe.com> wrote:
>
>> Just post an excerpt from a doABC block on pastebin.  Or try dropbox.
>>The
>> word 'function' should be in there now.
>>
>> On 8/29/14 12:48 PM, "mark goldin" <ma...@gmail.com> wrote:
>>
>> >Yes, I realized that I am using a wrong parameter. Well, even test is
>>too
>> >big for pastebin.
>> >
>> >
>> >On Fri, Aug 29, 2014 at 2:38 PM, Alex Harui <ah...@adobe.com> wrote:
>> >
>> >> Hi,
>> >>
>> >> The output looks like you did not use the -abc option on SWFDump.
>>And
>> >>the
>> >> next dump will be huge so please post it somewhere like pastebin and
>> >>just
>> >> post a link to it.
>> >>
>> >> The command line should be something like <path to flex
>>sdk>/bin/swfdump
>> >> -abc d:/prism27/prismweb/modules/test.swf
>> >>
>> >> Thanks,
>> >> -Alex
>> >>
>> >> On 8/29/14 12:33 PM, "mark goldin" <ma...@gmail.com> wrote:
>> >>
>> >> >Here is a dump:
>> >> ><!-- Parsing swf file:/d:/prism27/prismweb/modules/test.swf -->
>> >> ><!-- ?xml version="1.0" encoding="UTF-8"? -->
>> >> ><swf xmlns='http://macromedia/2003/swfx' version='10' framerate='24'
>> >> >size='10000x7500' compressed='true' >
>> >> >  <!-- framecount=2 length=641425 -->
>> >> >  <FileAttributes useDirectBlit='false' useGPU='false'
>> >>hasMetadata='true'
>> >> >actionScript3='true' suppressCrossDomainCaching='false'
>> >> >swfRelativeUrls='false' useNetwork='true'/>
>> >> >  <Metadata>
>> >> >    <rdf:RDF
>> >>
>> >>>xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#
>> '><rdf:Description
>> >> >rdf:about=''
>> >> >xmlns:dc='http://purl.org/dc/elements/1.1
>> >> '><dc:format>application/x-shockw
>> >> >ave-flash</dc:format><dc:title>Adobe
>> >> >Flex 3 Application</dc:title><dc:description>
>> >> >http://www.adobe.com/products/flex
>> >> </dc:description><dc:publisher>unknown</
>> >>
>> 
>>>>>dc:publisher><dc:creator>unknown</dc:creator><dc:language>EN</dc:langu
>>>>>ag
>> >>>e>
>> >> ><dc:date>Aug
>> >> >29, 2014</dc:date></rdf:Description></rdf:RDF>
>> >> >  </Metadata>
>> >> >  <EnableDebugger2 password='$1$kK$8GUQIK0YfhL3UKTf2tz7C.'
>> >> >reserved='0x1975'/>
>> >> >  <!-- error: SWD not found at url
>> >> >file:/d:/prism27/prismweb/modules/test.swd -->
>> >> >  <DebugID uuid='F8EB705C0DEFC0580DF39E1511D2BA68'/>
>> >> >  <ScriptLimits scriptRecursionLimit='1000' scriptTimeLimit='60'/>
>> >> >  <SetBackgroundColor color='#869CA7'/>
>> >> >  <ProductInfo product='Adobe Flex' edition='' version='3.6'
>> >>build='16995'
>> >> >compileDate='8/29/14 2:31 PM'/>
>> >> >  <FrameLabel label='_test_mx_core_FlexModuleFactory'/>
>> >> >  <DoABC2 name='frame1'>
>> >> >  </DoABC2>
>> >> >  <SymbolClass>
>> >> >    <Symbol idref='0' className='_test_mx_core_FlexModuleFactory' />
>> >> >  </SymbolClass>
>> >> >  <ShowFrame/>
>> >> >  <FrameLabel label='modules_test'/>
>> >> >  <DefineShape3 id='1' bounds='(-180,-180),(200,210)'>
>> >> >    <fillstyle type='18' typeName='radial' gradient='200 #00000066
>>255
>> >> >#00000000' matrix='s0.011917114,0.011917114 t10,20' />
>> >> >    <styleChange dx='190' dy='0' fillStyle0='1' />
>> >> >    <curve cdx='0' cdy='75' dx='-53' dy='52' />
>> >> >    <curve cdx='-52' cdy='53' dx='-75' dy='0' />
>> >> >    <curve cdx='-75' cdy='0' dx='-52' dy='-53' />
>> >> >    <curve cdx='-53' cdy='-52' dx='0' dy='-75' />
>> >> >    <curve cdx='0' cdy='-48' dx='22' dy='-39' />
>> >> >    <curve cdx='-32' cdy='46' dx='0' dy='61' />
>> >> >    <curve cdx='0' cdy='79' dx='55' dy='55' />
>> >> >    <curve cdx='56' cdy='56' dx='79' dy='0' />
>> >> >    <curve cdx='79' cdy='0' dx='56' dy='-56' />
>> >> >    <curve cdx='55' cdy='-55' dx='0' dy='-79' />
>> >> >    <curve cdx='0' cdy='-60' dx='-31' dy='-46' />
>> >> >    <curve cdx='21' cdy='39' dx='0' dy='47' />
>> >> >    <styleChange dx='0' dy='0' fillStyle0='0' fillStyle1='0'
>> >> >lineStyle='0' >
>> >> >      <fillstyle type='0' color='#FFFFFF80' />
>> >> >    </styleChange>
>> >> >    <styleChange dx='190' dy='0' fillStyle1='1' />
>> >> >    <curve cdx='0' cdy='75' dx='-53' dy='52' />
>> >> >    <curve cdx='-52' cdy='53' dx='-75' dy='0' />
>> >> >    <curve cdx='-75' cdy='0' dx='-52' dy='-53' />
>> >> >    <curve cdx='-53' cdy='-52' dx='0' dy='-75' />
>> >> >    <curve cdx='0' cdy='-75' dx='53' dy='-52' />
>> >> >    <curve cdx='52' cdy='-53' dx='75' dy='0' />
>> >> >    <curve cdx='75' cdy='0' dx='52' dy='53' />
>> >> >    <curve cdx='53' cdy='52' dx='0' dy='75' />
>> >> >    <styleChange dx='0' dy='0' fillStyle0='0' fillStyle1='0'
>> >> >lineStyle='0' >
>> >> >      <fillstyle type='16' gradient='0 #6F7777FF 255 #2B3C3CFF'
>> >> >matrix='s0.0,0.0 r0.009765625,-0.009765625 t10,0' />
>> >> >    </styleChange>
>> >> >    <styleChange dx='-150' dy='0' fillStyle1='1' />
>> >> >    <curve cdx='0' cdy='-67' dx='47' dy='-46' />
>> >> >    <curve cdx='46' cdy='-47' dx='67' dy='0' />
>> >> >    <curve cdx='66' cdy='0' dx='47' dy='47' />
>> >> >    <curve cdx='47' cdy='46' dx='0' dy='67' />
>> >> >    <curve cdx='0' cdy='66' dx='-47' dy='47' />
>> >> >    <curve cdx='-47' cdy='47' dx='-66' dy='0' />
>> >> >    <curve cdx='-67' cdy='0' dx='-46' dy='-47' />
>> >> >    <curve cdx='-47' cdy='-47' dx='0' dy='-66' />
>> >> >    <styleChange dx='0' dy='0' fillStyle0='0' fillStyle1='0'
>> >> >lineStyle='0' >
>> >> >      <fillstyle type='0' color='#FFFFFFFF' />
>> >> >    </styleChange>
>> >> >    <styleChange dx='130' dy='0' fillStyle1='1' />
>> >> >    <curve cdx='0' cdy='50' dx='-35' dy='35' />
>> >> >    <curve cdx='-35' cdy='35' dx='-50' dy='0' />
>> >> >    <curve cdx='-51' cdy='0' dx='-34' dy='-35' />
>> >> >    <curve cdx='-35' cdy='-35' dx='0' dy='-50' />
>> >> >    <curve cdx='0' cdy='-51' dx='35' dy='-34' />
>> >> >    <curve cdx='34' cdy='-35' dx='51' dy='0' />
>> >> >    <curve cdx='50' cdy='0' dx='35' dy='35' />
>> >> >    <curve cdx='35' cdy='34' dx='0' dy='51' />
>> >> >  </DefineShape3>
>> >> >  <DefineSprite id='2'>
>> >> >    <!-- sprite framecount=1 -->
>> >> >    <PlaceObject2 idref='1' depth='4' matrix='t0,0'/>
>> >> >    <ShowFrame/>
>> >> >  </DefineSprite>
>> >> >  <DefineBitsLossless2 id='3' encoding='base64'>
>> >> >
>> >>
>> 
>>>>>//CHh//xkJD/9KWl//GQkP/wg4P/7nd3/+53d//sX1//5Soq/7kWFv+QEREAAAAA/9gZGf
>>>>>/z
>> >>>nJ
>> >> >z/
>> >>
>> 
>>>>>/v39//3y8v/85eX/9re3/+5vb/+5Fhb/kBERAAAAAAAAAAAAAAAA/9gZGf/62dn//fT0//
>>>>>rV
>> >>>1f
>> >> >/1
>> >>
>> 
>>>>>rq7/2BkZ/5AREQAAAAAAAAAAAAAAAAAAAAAAAAAA/+YzM//85eX/9rm5/+lMTP+QEREAAA
>>>>>AA
>> >>>AA
>> >> >AA
>> >>
>> 
>>>>>AAAAAAAAAAAAAAAAAAAAAAAAAAAA/9gZGf/znp7/qxQUAAAAAAAAAAAAAAAAAAAAAAAAAA
>>>>>AA
>> >>>AA
>> >> >AA
>> >>
>> 
>>>>>AAAAAAAAAAD/2BkZ/+lMTP+XEhIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP
>>>>>/Y
>> >>>GR
>> >> >n/
>> >>
>> 
>>>>>2BkZ/4cQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/9gZGf+iExP/LgUFAA
>>>>>AA
>> >>>AA
>> >> >AA
>> >>
>> 
>>>>>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/2BkZ/4cQEP8nBAQAAAAAAAAAAAAAAAAAAA
>>>>>AA
>> >> >  </DefineBitsLossless2>
>> >> >  <DefineBitsLossless2 id='4' encoding='base64'>
>> >> >
>> >>
>> 
>>>>>/8C4wP+/v7//0MjQ/7+/v/+1t7X/sbCw/7GwsP+hoaH/gICA/19fX/8/SD8AAAAA/3Bxcf
>>>>>/A
>> >>>yM
>> >> >D/
>> >>
>> 
>>>>>//////X78P/y8vL/0NjQ/7CosP9fX1//P0g/AAAAAAAAAAAAAAAA/3Bxcf/w6PD///j//+
>>>>>Pp
>> >>>7/
>> >> >/R
>> >>
>> 
>>>>>0ND/cHFx/z9IPwAAAAAAAAAAAAAAAAAAAAAAAAAA/4CIgP/y8vL/0Njg/5CYkP8/SD8AAA
>>>>>AA
>> >>>AA
>> >> >AA
>> >>
>> 
>>>>>AAAAAAAAAAAAAAAAAAAAAAAAAAAA/3Bxcf/AyND/TllLAAAAAAAAAAAAAAAAAAAAAAAAAA
>>>>>AA
>> >>>AA
>> >> >AA
>> >>
>> 
>>>>>AAAAAAAAAAD/cHFx/5CYkP9QSFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP
>>>>>9w
>> >>>cX
>> >> >H/
>> >>
>> 
>>>>>cHFx/0FBQQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/3Bxcf9QUFD/EAgQAA
>>>>>AA
>> >>>AA
>> >> >AA
>> >>
>> 
>>>>>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/cHFx/0FBQf8ACAAAAAAAAAAAAAAAAAAAAA
>>>>>AA
>> >> >  </DefineBitsLossless2>
>> >> >  <ExportAssets>
>> >> >    <Export idref='2' name='mx.skins.cursor.BusyCursor' />
>> >> >    <Export idref='3'
>> >>
>> 
>>>>>name='_dataGridFilterButtonActiveStyle__embed_css_assets_icons_filter_
>>>>>ac
>> >>>ti
>> >> >ve_png_112587754'
>> >> >/>
>> >> >    <Export idref='4'
>> >>
>> 
>>>>>name='_dataGridFilterButtonStyle__embed_css_assets_icons_filter_png_95
>>>>>65
>> >>>88
>> >> >96'
>> >> >/>
>> >> >  </ExportAssets>
>> >> >  <DoABC2 name='frame2'>
>> >> >  </DoABC2>
>> >> >  <!-- error: SymbolClass: symbol 2 already exported as
>> >> >mx.skins.cursor.BusyCursor -->
>> >> >  <SymbolClass>
>> >> >    <Symbol idref='4'
>> >>
>> 
>>>>>className='_dataGridFilterButtonStyle__embed_css_assets_icons_filter_p
>>>>>ng
>> >>>_9
>> >> >5658896'
>> >> >/>
>> >> >    <Symbol idref='3'
>> >>
>> 
>>>>>className='_dataGridFilterButtonActiveStyle__embed_css_assets_icons_fi
>>>>>lt
>> >>>er
>> >> >_active_png_112587754'
>> >> >/>
>> >> >    <Symbol idref='2'
>> >>
>> 
>>>>>className='_CursorManagerStyle__embed_css_Assets_swf_mx_skins_cursor_B
>>>>>us
>> >>>yC
>> >> >ursor_170125376'
>> >> >/>
>> >> >  </SymbolClass>
>> >> >  <ShowFrame/>
>> >> ></swf>
>> >> >
>> >> > and here is actual code:
>> >> ><?xml version="1.0" encoding="utf-8"?>
>> >> ><mx:Module xmlns:mx="http://www.adobe.com/2006/mxml"
>>layout="absolute"
>> >> >width="400" height="300">
>> >> ><mx:Script>
>> >> ><![CDATA[
>> >> >private function test1(val:String):void
>> >> >{
>> >> > }
>> >> >private function test2(val:String):void
>> >> >{
>> >> > }
>> >> >]]>
>> >> ></mx:Script>
>> >> >
>> >> ></mx:Module>
>> >> >
>> >> >
>> >> >
>> >> >On Fri, Aug 29, 2014 at 2:08 PM, mark goldin <ma...@gmail.com>
>> >> >wrote:
>> >> >
>> >> >> Ok, will do. Thanks
>> >> >>
>> >> >>
>> >> >> On Fri, Aug 29, 2014 at 2:07 PM, Alex Harui <ah...@adobe.com>
>> wrote:
>> >> >>
>> >> >>> Good point.  How tight is your company?  Can you make a test
>>module
>> >> >>>with a
>> >> >>> few functions and dump that?  Or grab a module demo off the
>>internet
>> >> >>>and
>> >> >>> dump that?
>> >> >>>
>> >> >>> On 8/29/14 12:03 PM, "mark goldin" <ma...@gmail.com> wrote:
>> >> >>>
>> >> >>> >I am afraid of doing it because it's company's code.
>> >> >>> >
>> >> >>> >
>> >> >>> >On Fri, Aug 29, 2014 at 2:01 PM, Alex Harui <ah...@adobe.com>
>> >>wrote:
>> >> >>> >
>> >> >>> >> Post the entire dump somewhere on the internet (but not on
>>this
>> >> >>>mailing
>> >> >>> >> list) and post the link.  Some folks use pastebin and things
>>like
>> >> >>>that.
>> >> >>> >>
>> >> >>> >> On 8/29/14 11:58 AM, "mark goldin" <ma...@gmail.com>
>> wrote:
>> >> >>> >>
>> >> >>> >> >I dont any line that would have a word function.
>> >> >>> >> >
>> >> >>> >> >
>> >> >>> >> >On Fri, Aug 29, 2014 at 1:54 PM, Alex Harui
>><ah...@adobe.com>
>> >> >>>wrote:
>> >> >>> >> >
>> >> >>> >> >> Take a small method that you are sure doesn't contain any
>> >> >>> >>confidential
>> >> >>> >> >> information and post the ABC code.
>> >> >>> >> >>
>> >> >>> >> >> -Alex
>> >> >>> >> >>
>> >> >>> >> >> On 8/29/14 11:50 AM, "mark goldin" <ma...@gmail.com>
>> >> wrote:
>> >> >>> >> >>
>> >> >>> >> >> >Still not sure I understand what do I do with abc code :(
>> >> >>> >> >> >
>> >> >>> >> >> >
>> >> >>> >> >> >On Fri, Aug 29, 2014 at 1:43 PM, Alex Harui
>> >><ah...@adobe.com>
>> >> >>> >>wrote:
>> >> >>> >> >> >
>> >> >>> >> >> >> ABC is ActionScript Byte Code, the compiled output of
>> >> >>> >>ActionScript.
>> >> >>> >> >> >>Each
>> >> >>> >> >> >> Flex module should contain two doABC blocks or more if a
>> >>debug
>> >> >>> >>SWF.
>> >> >>> >> >>The
>> >> >>> >> >> >> rest of SWFDump output describes other stuff, framerate,
>> >> >>>fonts,
>> >> >>> >> >>embedded
>> >> >>> >> >> >> graphics, etc.
>> >> >>> >> >> >>
>> >> >>> >> >> >> -Alex
>> >> >>> >> >> >>
>> >> >>> >> >> >> On 8/29/14 11:17 AM, "mark goldin"
>><ma...@gmail.com>
>> >> >>> wrote:
>> >> >>> >> >> >>
>> >> >>> >> >> >> >Sorry for stupid question but what DoAbc block(s)  is?
>> >> >>> >> >> >> >
>> >> >>> >> >> >> >
>> >> >>> >> >> >> >On Fri, Aug 29, 2014 at 1:11 PM, Alex Harui
>> >> >>><ah...@adobe.com>
>> >> >>> >> >>wrote:
>> >> >>> >> >> >> >
>> >> >>> >> >> >> >> If you use the -abc option, the DoAbc block(s) will
>>give
>> >> >>>you
>> >> >>> >>some
>> >> >>> >> >> >>clue
>> >> >>> >> >> >> >>as
>> >> >>> >> >> >> >> to what the method bodies looked like.  It will look
>> >>more
>> >> >>>like
>> >> >>> >> >> >>assembly
>> >> >>> >> >> >> >> language than ActionScript, but depending on if it
>>was
>> >>an
>> >> >>> >> >>optimized
>> >> >>> >> >> >> >> release SWF, you can usually figure it out.  To learn
>> >>the
>> >> >>> >> >>patterns,
>> >> >>> >> >> >>look
>> >> >>> >> >> >> >> at the abc code for some method you do have source
>>for,
>> >> >>>like a
>> >> >>> >> >>Flex
>> >> >>> >> >> >> >>class.
>> >> >>> >> >> >> >>
>> >> >>> >> >> >> >> -Alex
>> >> >>> >> >> >> >>
>> >> >>> >> >> >> >> On 8/29/14 10:55 AM, "mark goldin"
>> >><ma...@gmail.com>
>> >> >>> >>wrote:
>> >> >>> >> >> >> >>
>> >> >>> >> >> >> >> >Ok, I got a dump file. What do I do with it?
>> >> >>> >> >> >> >> >
>> >> >>> >> >> >> >> >
>> >> >>> >> >> >> >> >On Fri, Aug 29, 2014 at 10:20 AM, Alex Harui
>> >> >>> >><ah...@adobe.com>
>> >> >>> >> >> >>wrote:
>> >> >>> >> >> >> >> >
>> >> >>> >> >> >> >> >> I don't think you can get all the way back to
>>source
>> >> >>> >>(private
>> >> >>> >> >> >> >>variable
>> >> >>> >> >> >> >> >> names for instance) unless you have a debug SWF.
>>But
>> >> >>> >>SWFDump
>> >> >>> >> >>-abc
>> >> >>> >> >> >> >>will
>> >> >>> >> >> >> >> >> give you something.
>> >> >>> >> >> >> >> >>
>> >> >>> >> >> >> >> >> -Alex
>> >> >>> >> >> >> >> >>
>> >> >>> >> >> >> >> >> On 8/29/14 7:59 AM, "mark goldin"
>> >> >>><ma...@gmail.com>
>> >> >>> >> >>wrote:
>> >> >>> >> >> >> >> >>
>> >> >>> >> >> >> >> >> >Is it possible to do it? The  source code has
>>been
>> >> >>>lost. I
>> >> >>> >> >>tried
>> >> >>> >> >> >> >> >>Sothink,
>> >> >>> >> >> >> >> >> >but because it's a module it does not do it.
>> >> >>> >> >> >> >> >> >
>> >> >>> >> >> >> >> >> >Thanks
>> >> >>> >> >> >> >> >>
>> >> >>> >> >> >> >> >>
>> >> >>> >> >> >> >>
>> >> >>> >> >> >> >>
>> >> >>> >> >> >>
>> >> >>> >> >> >>
>> >> >>> >> >>
>> >> >>> >> >>
>> >> >>> >>
>> >> >>> >>
>> >> >>>
>> >> >>>
>> >> >>
>> >>
>> >>
>>
>>


Re: Decompile SWF module

Posted by mark goldin <ma...@gmail.com>.
Here:
http://pastebin.com/bAWAx8wf


On Fri, Aug 29, 2014 at 3:25 PM, Alex Harui <ah...@adobe.com> wrote:

> Just post an excerpt from a doABC block on pastebin.  Or try dropbox.  The
> word 'function' should be in there now.
>
> On 8/29/14 12:48 PM, "mark goldin" <ma...@gmail.com> wrote:
>
> >Yes, I realized that I am using a wrong parameter. Well, even test is too
> >big for pastebin.
> >
> >
> >On Fri, Aug 29, 2014 at 2:38 PM, Alex Harui <ah...@adobe.com> wrote:
> >
> >> Hi,
> >>
> >> The output looks like you did not use the -abc option on SWFDump.  And
> >>the
> >> next dump will be huge so please post it somewhere like pastebin and
> >>just
> >> post a link to it.
> >>
> >> The command line should be something like <path to flex sdk>/bin/swfdump
> >> -abc d:/prism27/prismweb/modules/test.swf
> >>
> >> Thanks,
> >> -Alex
> >>
> >> On 8/29/14 12:33 PM, "mark goldin" <ma...@gmail.com> wrote:
> >>
> >> >Here is a dump:
> >> ><!-- Parsing swf file:/d:/prism27/prismweb/modules/test.swf -->
> >> ><!-- ?xml version="1.0" encoding="UTF-8"? -->
> >> ><swf xmlns='http://macromedia/2003/swfx' version='10' framerate='24'
> >> >size='10000x7500' compressed='true' >
> >> >  <!-- framecount=2 length=641425 -->
> >> >  <FileAttributes useDirectBlit='false' useGPU='false'
> >>hasMetadata='true'
> >> >actionScript3='true' suppressCrossDomainCaching='false'
> >> >swfRelativeUrls='false' useNetwork='true'/>
> >> >  <Metadata>
> >> >    <rdf:RDF
> >>
> >>>xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#
> '><rdf:Description
> >> >rdf:about=''
> >> >xmlns:dc='http://purl.org/dc/elements/1.1
> >> '><dc:format>application/x-shockw
> >> >ave-flash</dc:format><dc:title>Adobe
> >> >Flex 3 Application</dc:title><dc:description>
> >> >http://www.adobe.com/products/flex
> >> </dc:description><dc:publisher>unknown</
> >>
> >>>dc:publisher><dc:creator>unknown</dc:creator><dc:language>EN</dc:languag
> >>>e>
> >> ><dc:date>Aug
> >> >29, 2014</dc:date></rdf:Description></rdf:RDF>
> >> >  </Metadata>
> >> >  <EnableDebugger2 password='$1$kK$8GUQIK0YfhL3UKTf2tz7C.'
> >> >reserved='0x1975'/>
> >> >  <!-- error: SWD not found at url
> >> >file:/d:/prism27/prismweb/modules/test.swd -->
> >> >  <DebugID uuid='F8EB705C0DEFC0580DF39E1511D2BA68'/>
> >> >  <ScriptLimits scriptRecursionLimit='1000' scriptTimeLimit='60'/>
> >> >  <SetBackgroundColor color='#869CA7'/>
> >> >  <ProductInfo product='Adobe Flex' edition='' version='3.6'
> >>build='16995'
> >> >compileDate='8/29/14 2:31 PM'/>
> >> >  <FrameLabel label='_test_mx_core_FlexModuleFactory'/>
> >> >  <DoABC2 name='frame1'>
> >> >  </DoABC2>
> >> >  <SymbolClass>
> >> >    <Symbol idref='0' className='_test_mx_core_FlexModuleFactory' />
> >> >  </SymbolClass>
> >> >  <ShowFrame/>
> >> >  <FrameLabel label='modules_test'/>
> >> >  <DefineShape3 id='1' bounds='(-180,-180),(200,210)'>
> >> >    <fillstyle type='18' typeName='radial' gradient='200 #00000066 255
> >> >#00000000' matrix='s0.011917114,0.011917114 t10,20' />
> >> >    <styleChange dx='190' dy='0' fillStyle0='1' />
> >> >    <curve cdx='0' cdy='75' dx='-53' dy='52' />
> >> >    <curve cdx='-52' cdy='53' dx='-75' dy='0' />
> >> >    <curve cdx='-75' cdy='0' dx='-52' dy='-53' />
> >> >    <curve cdx='-53' cdy='-52' dx='0' dy='-75' />
> >> >    <curve cdx='0' cdy='-48' dx='22' dy='-39' />
> >> >    <curve cdx='-32' cdy='46' dx='0' dy='61' />
> >> >    <curve cdx='0' cdy='79' dx='55' dy='55' />
> >> >    <curve cdx='56' cdy='56' dx='79' dy='0' />
> >> >    <curve cdx='79' cdy='0' dx='56' dy='-56' />
> >> >    <curve cdx='55' cdy='-55' dx='0' dy='-79' />
> >> >    <curve cdx='0' cdy='-60' dx='-31' dy='-46' />
> >> >    <curve cdx='21' cdy='39' dx='0' dy='47' />
> >> >    <styleChange dx='0' dy='0' fillStyle0='0' fillStyle1='0'
> >> >lineStyle='0' >
> >> >      <fillstyle type='0' color='#FFFFFF80' />
> >> >    </styleChange>
> >> >    <styleChange dx='190' dy='0' fillStyle1='1' />
> >> >    <curve cdx='0' cdy='75' dx='-53' dy='52' />
> >> >    <curve cdx='-52' cdy='53' dx='-75' dy='0' />
> >> >    <curve cdx='-75' cdy='0' dx='-52' dy='-53' />
> >> >    <curve cdx='-53' cdy='-52' dx='0' dy='-75' />
> >> >    <curve cdx='0' cdy='-75' dx='53' dy='-52' />
> >> >    <curve cdx='52' cdy='-53' dx='75' dy='0' />
> >> >    <curve cdx='75' cdy='0' dx='52' dy='53' />
> >> >    <curve cdx='53' cdy='52' dx='0' dy='75' />
> >> >    <styleChange dx='0' dy='0' fillStyle0='0' fillStyle1='0'
> >> >lineStyle='0' >
> >> >      <fillstyle type='16' gradient='0 #6F7777FF 255 #2B3C3CFF'
> >> >matrix='s0.0,0.0 r0.009765625,-0.009765625 t10,0' />
> >> >    </styleChange>
> >> >    <styleChange dx='-150' dy='0' fillStyle1='1' />
> >> >    <curve cdx='0' cdy='-67' dx='47' dy='-46' />
> >> >    <curve cdx='46' cdy='-47' dx='67' dy='0' />
> >> >    <curve cdx='66' cdy='0' dx='47' dy='47' />
> >> >    <curve cdx='47' cdy='46' dx='0' dy='67' />
> >> >    <curve cdx='0' cdy='66' dx='-47' dy='47' />
> >> >    <curve cdx='-47' cdy='47' dx='-66' dy='0' />
> >> >    <curve cdx='-67' cdy='0' dx='-46' dy='-47' />
> >> >    <curve cdx='-47' cdy='-47' dx='0' dy='-66' />
> >> >    <styleChange dx='0' dy='0' fillStyle0='0' fillStyle1='0'
> >> >lineStyle='0' >
> >> >      <fillstyle type='0' color='#FFFFFFFF' />
> >> >    </styleChange>
> >> >    <styleChange dx='130' dy='0' fillStyle1='1' />
> >> >    <curve cdx='0' cdy='50' dx='-35' dy='35' />
> >> >    <curve cdx='-35' cdy='35' dx='-50' dy='0' />
> >> >    <curve cdx='-51' cdy='0' dx='-34' dy='-35' />
> >> >    <curve cdx='-35' cdy='-35' dx='0' dy='-50' />
> >> >    <curve cdx='0' cdy='-51' dx='35' dy='-34' />
> >> >    <curve cdx='34' cdy='-35' dx='51' dy='0' />
> >> >    <curve cdx='50' cdy='0' dx='35' dy='35' />
> >> >    <curve cdx='35' cdy='34' dx='0' dy='51' />
> >> >  </DefineShape3>
> >> >  <DefineSprite id='2'>
> >> >    <!-- sprite framecount=1 -->
> >> >    <PlaceObject2 idref='1' depth='4' matrix='t0,0'/>
> >> >    <ShowFrame/>
> >> >  </DefineSprite>
> >> >  <DefineBitsLossless2 id='3' encoding='base64'>
> >> >
> >>
> >>>//CHh//xkJD/9KWl//GQkP/wg4P/7nd3/+53d//sX1//5Soq/7kWFv+QEREAAAAA/9gZGf/z
> >>>nJ
> >> >z/
> >>
> >>>/v39//3y8v/85eX/9re3/+5vb/+5Fhb/kBERAAAAAAAAAAAAAAAA/9gZGf/62dn//fT0//rV
> >>>1f
> >> >/1
> >>
> >>>rq7/2BkZ/5AREQAAAAAAAAAAAAAAAAAAAAAAAAAA/+YzM//85eX/9rm5/+lMTP+QEREAAAAA
> >>>AA
> >> >AA
> >>
> >>>AAAAAAAAAAAAAAAAAAAAAAAAAAAA/9gZGf/znp7/qxQUAAAAAAAAAAAAAAAAAAAAAAAAAAAA
> >>>AA
> >> >AA
> >>
> >>>AAAAAAAAAAD/2BkZ/+lMTP+XEhIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/Y
> >>>GR
> >> >n/
> >>
> >>>2BkZ/4cQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/9gZGf+iExP/LgUFAAAA
> >>>AA
> >> >AA
> >>
> >>>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/2BkZ/4cQEP8nBAQAAAAAAAAAAAAAAAAAAAAA
> >> >  </DefineBitsLossless2>
> >> >  <DefineBitsLossless2 id='4' encoding='base64'>
> >> >
> >>
> >>>/8C4wP+/v7//0MjQ/7+/v/+1t7X/sbCw/7GwsP+hoaH/gICA/19fX/8/SD8AAAAA/3Bxcf/A
> >>>yM
> >> >D/
> >>
> >>>//////X78P/y8vL/0NjQ/7CosP9fX1//P0g/AAAAAAAAAAAAAAAA/3Bxcf/w6PD///j//+Pp
> >>>7/
> >> >/R
> >>
> >>>0ND/cHFx/z9IPwAAAAAAAAAAAAAAAAAAAAAAAAAA/4CIgP/y8vL/0Njg/5CYkP8/SD8AAAAA
> >>>AA
> >> >AA
> >>
> >>>AAAAAAAAAAAAAAAAAAAAAAAAAAAA/3Bxcf/AyND/TllLAAAAAAAAAAAAAAAAAAAAAAAAAAAA
> >>>AA
> >> >AA
> >>
> >>>AAAAAAAAAAD/cHFx/5CYkP9QSFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP9w
> >>>cX
> >> >H/
> >>
> >>>cHFx/0FBQQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/3Bxcf9QUFD/EAgQAAAA
> >>>AA
> >> >AA
> >>
> >>>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/cHFx/0FBQf8ACAAAAAAAAAAAAAAAAAAAAAAA
> >> >  </DefineBitsLossless2>
> >> >  <ExportAssets>
> >> >    <Export idref='2' name='mx.skins.cursor.BusyCursor' />
> >> >    <Export idref='3'
> >>
> >>>name='_dataGridFilterButtonActiveStyle__embed_css_assets_icons_filter_ac
> >>>ti
> >> >ve_png_112587754'
> >> >/>
> >> >    <Export idref='4'
> >>
> >>>name='_dataGridFilterButtonStyle__embed_css_assets_icons_filter_png_9565
> >>>88
> >> >96'
> >> >/>
> >> >  </ExportAssets>
> >> >  <DoABC2 name='frame2'>
> >> >  </DoABC2>
> >> >  <!-- error: SymbolClass: symbol 2 already exported as
> >> >mx.skins.cursor.BusyCursor -->
> >> >  <SymbolClass>
> >> >    <Symbol idref='4'
> >>
> >>>className='_dataGridFilterButtonStyle__embed_css_assets_icons_filter_png
> >>>_9
> >> >5658896'
> >> >/>
> >> >    <Symbol idref='3'
> >>
> >>>className='_dataGridFilterButtonActiveStyle__embed_css_assets_icons_filt
> >>>er
> >> >_active_png_112587754'
> >> >/>
> >> >    <Symbol idref='2'
> >>
> >>>className='_CursorManagerStyle__embed_css_Assets_swf_mx_skins_cursor_Bus
> >>>yC
> >> >ursor_170125376'
> >> >/>
> >> >  </SymbolClass>
> >> >  <ShowFrame/>
> >> ></swf>
> >> >
> >> > and here is actual code:
> >> ><?xml version="1.0" encoding="utf-8"?>
> >> ><mx:Module xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"
> >> >width="400" height="300">
> >> ><mx:Script>
> >> ><![CDATA[
> >> >private function test1(val:String):void
> >> >{
> >> > }
> >> >private function test2(val:String):void
> >> >{
> >> > }
> >> >]]>
> >> ></mx:Script>
> >> >
> >> ></mx:Module>
> >> >
> >> >
> >> >
> >> >On Fri, Aug 29, 2014 at 2:08 PM, mark goldin <ma...@gmail.com>
> >> >wrote:
> >> >
> >> >> Ok, will do. Thanks
> >> >>
> >> >>
> >> >> On Fri, Aug 29, 2014 at 2:07 PM, Alex Harui <ah...@adobe.com>
> wrote:
> >> >>
> >> >>> Good point.  How tight is your company?  Can you make a test module
> >> >>>with a
> >> >>> few functions and dump that?  Or grab a module demo off the internet
> >> >>>and
> >> >>> dump that?
> >> >>>
> >> >>> On 8/29/14 12:03 PM, "mark goldin" <ma...@gmail.com> wrote:
> >> >>>
> >> >>> >I am afraid of doing it because it's company's code.
> >> >>> >
> >> >>> >
> >> >>> >On Fri, Aug 29, 2014 at 2:01 PM, Alex Harui <ah...@adobe.com>
> >>wrote:
> >> >>> >
> >> >>> >> Post the entire dump somewhere on the internet (but not on this
> >> >>>mailing
> >> >>> >> list) and post the link.  Some folks use pastebin and things like
> >> >>>that.
> >> >>> >>
> >> >>> >> On 8/29/14 11:58 AM, "mark goldin" <ma...@gmail.com>
> wrote:
> >> >>> >>
> >> >>> >> >I dont any line that would have a word function.
> >> >>> >> >
> >> >>> >> >
> >> >>> >> >On Fri, Aug 29, 2014 at 1:54 PM, Alex Harui <ah...@adobe.com>
> >> >>>wrote:
> >> >>> >> >
> >> >>> >> >> Take a small method that you are sure doesn't contain any
> >> >>> >>confidential
> >> >>> >> >> information and post the ABC code.
> >> >>> >> >>
> >> >>> >> >> -Alex
> >> >>> >> >>
> >> >>> >> >> On 8/29/14 11:50 AM, "mark goldin" <ma...@gmail.com>
> >> wrote:
> >> >>> >> >>
> >> >>> >> >> >Still not sure I understand what do I do with abc code :(
> >> >>> >> >> >
> >> >>> >> >> >
> >> >>> >> >> >On Fri, Aug 29, 2014 at 1:43 PM, Alex Harui
> >><ah...@adobe.com>
> >> >>> >>wrote:
> >> >>> >> >> >
> >> >>> >> >> >> ABC is ActionScript Byte Code, the compiled output of
> >> >>> >>ActionScript.
> >> >>> >> >> >>Each
> >> >>> >> >> >> Flex module should contain two doABC blocks or more if a
> >>debug
> >> >>> >>SWF.
> >> >>> >> >>The
> >> >>> >> >> >> rest of SWFDump output describes other stuff, framerate,
> >> >>>fonts,
> >> >>> >> >>embedded
> >> >>> >> >> >> graphics, etc.
> >> >>> >> >> >>
> >> >>> >> >> >> -Alex
> >> >>> >> >> >>
> >> >>> >> >> >> On 8/29/14 11:17 AM, "mark goldin" <ma...@gmail.com>
> >> >>> wrote:
> >> >>> >> >> >>
> >> >>> >> >> >> >Sorry for stupid question but what DoAbc block(s)  is?
> >> >>> >> >> >> >
> >> >>> >> >> >> >
> >> >>> >> >> >> >On Fri, Aug 29, 2014 at 1:11 PM, Alex Harui
> >> >>><ah...@adobe.com>
> >> >>> >> >>wrote:
> >> >>> >> >> >> >
> >> >>> >> >> >> >> If you use the -abc option, the DoAbc block(s) will give
> >> >>>you
> >> >>> >>some
> >> >>> >> >> >>clue
> >> >>> >> >> >> >>as
> >> >>> >> >> >> >> to what the method bodies looked like.  It will look
> >>more
> >> >>>like
> >> >>> >> >> >>assembly
> >> >>> >> >> >> >> language than ActionScript, but depending on if it was
> >>an
> >> >>> >> >>optimized
> >> >>> >> >> >> >> release SWF, you can usually figure it out.  To learn
> >>the
> >> >>> >> >>patterns,
> >> >>> >> >> >>look
> >> >>> >> >> >> >> at the abc code for some method you do have source for,
> >> >>>like a
> >> >>> >> >>Flex
> >> >>> >> >> >> >>class.
> >> >>> >> >> >> >>
> >> >>> >> >> >> >> -Alex
> >> >>> >> >> >> >>
> >> >>> >> >> >> >> On 8/29/14 10:55 AM, "mark goldin"
> >><ma...@gmail.com>
> >> >>> >>wrote:
> >> >>> >> >> >> >>
> >> >>> >> >> >> >> >Ok, I got a dump file. What do I do with it?
> >> >>> >> >> >> >> >
> >> >>> >> >> >> >> >
> >> >>> >> >> >> >> >On Fri, Aug 29, 2014 at 10:20 AM, Alex Harui
> >> >>> >><ah...@adobe.com>
> >> >>> >> >> >>wrote:
> >> >>> >> >> >> >> >
> >> >>> >> >> >> >> >> I don't think you can get all the way back to source
> >> >>> >>(private
> >> >>> >> >> >> >>variable
> >> >>> >> >> >> >> >> names for instance) unless you have a debug SWF.  But
> >> >>> >>SWFDump
> >> >>> >> >>-abc
> >> >>> >> >> >> >>will
> >> >>> >> >> >> >> >> give you something.
> >> >>> >> >> >> >> >>
> >> >>> >> >> >> >> >> -Alex
> >> >>> >> >> >> >> >>
> >> >>> >> >> >> >> >> On 8/29/14 7:59 AM, "mark goldin"
> >> >>><ma...@gmail.com>
> >> >>> >> >>wrote:
> >> >>> >> >> >> >> >>
> >> >>> >> >> >> >> >> >Is it possible to do it? The  source code has been
> >> >>>lost. I
> >> >>> >> >>tried
> >> >>> >> >> >> >> >>Sothink,
> >> >>> >> >> >> >> >> >but because it's a module it does not do it.
> >> >>> >> >> >> >> >> >
> >> >>> >> >> >> >> >> >Thanks
> >> >>> >> >> >> >> >>
> >> >>> >> >> >> >> >>
> >> >>> >> >> >> >>
> >> >>> >> >> >> >>
> >> >>> >> >> >>
> >> >>> >> >> >>
> >> >>> >> >>
> >> >>> >> >>
> >> >>> >>
> >> >>> >>
> >> >>>
> >> >>>
> >> >>
> >>
> >>
>
>

Re: Decompile SWF module

Posted by Alex Harui <ah...@adobe.com>.
Just post an excerpt from a doABC block on pastebin.  Or try dropbox.  The
word 'function' should be in there now.

On 8/29/14 12:48 PM, "mark goldin" <ma...@gmail.com> wrote:

>Yes, I realized that I am using a wrong parameter. Well, even test is too
>big for pastebin.
>
>
>On Fri, Aug 29, 2014 at 2:38 PM, Alex Harui <ah...@adobe.com> wrote:
>
>> Hi,
>>
>> The output looks like you did not use the -abc option on SWFDump.  And
>>the
>> next dump will be huge so please post it somewhere like pastebin and
>>just
>> post a link to it.
>>
>> The command line should be something like <path to flex sdk>/bin/swfdump
>> -abc d:/prism27/prismweb/modules/test.swf
>>
>> Thanks,
>> -Alex
>>
>> On 8/29/14 12:33 PM, "mark goldin" <ma...@gmail.com> wrote:
>>
>> >Here is a dump:
>> ><!-- Parsing swf file:/d:/prism27/prismweb/modules/test.swf -->
>> ><!-- ?xml version="1.0" encoding="UTF-8"? -->
>> ><swf xmlns='http://macromedia/2003/swfx' version='10' framerate='24'
>> >size='10000x7500' compressed='true' >
>> >  <!-- framecount=2 length=641425 -->
>> >  <FileAttributes useDirectBlit='false' useGPU='false'
>>hasMetadata='true'
>> >actionScript3='true' suppressCrossDomainCaching='false'
>> >swfRelativeUrls='false' useNetwork='true'/>
>> >  <Metadata>
>> >    <rdf:RDF
>> 
>>>xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'><rdf:Description
>> >rdf:about=''
>> >xmlns:dc='http://purl.org/dc/elements/1.1
>> '><dc:format>application/x-shockw
>> >ave-flash</dc:format><dc:title>Adobe
>> >Flex 3 Application</dc:title><dc:description>
>> >http://www.adobe.com/products/flex
>> </dc:description><dc:publisher>unknown</
>> 
>>>dc:publisher><dc:creator>unknown</dc:creator><dc:language>EN</dc:languag
>>>e>
>> ><dc:date>Aug
>> >29, 2014</dc:date></rdf:Description></rdf:RDF>
>> >  </Metadata>
>> >  <EnableDebugger2 password='$1$kK$8GUQIK0YfhL3UKTf2tz7C.'
>> >reserved='0x1975'/>
>> >  <!-- error: SWD not found at url
>> >file:/d:/prism27/prismweb/modules/test.swd -->
>> >  <DebugID uuid='F8EB705C0DEFC0580DF39E1511D2BA68'/>
>> >  <ScriptLimits scriptRecursionLimit='1000' scriptTimeLimit='60'/>
>> >  <SetBackgroundColor color='#869CA7'/>
>> >  <ProductInfo product='Adobe Flex' edition='' version='3.6'
>>build='16995'
>> >compileDate='8/29/14 2:31 PM'/>
>> >  <FrameLabel label='_test_mx_core_FlexModuleFactory'/>
>> >  <DoABC2 name='frame1'>
>> >  </DoABC2>
>> >  <SymbolClass>
>> >    <Symbol idref='0' className='_test_mx_core_FlexModuleFactory' />
>> >  </SymbolClass>
>> >  <ShowFrame/>
>> >  <FrameLabel label='modules_test'/>
>> >  <DefineShape3 id='1' bounds='(-180,-180),(200,210)'>
>> >    <fillstyle type='18' typeName='radial' gradient='200 #00000066 255
>> >#00000000' matrix='s0.011917114,0.011917114 t10,20' />
>> >    <styleChange dx='190' dy='0' fillStyle0='1' />
>> >    <curve cdx='0' cdy='75' dx='-53' dy='52' />
>> >    <curve cdx='-52' cdy='53' dx='-75' dy='0' />
>> >    <curve cdx='-75' cdy='0' dx='-52' dy='-53' />
>> >    <curve cdx='-53' cdy='-52' dx='0' dy='-75' />
>> >    <curve cdx='0' cdy='-48' dx='22' dy='-39' />
>> >    <curve cdx='-32' cdy='46' dx='0' dy='61' />
>> >    <curve cdx='0' cdy='79' dx='55' dy='55' />
>> >    <curve cdx='56' cdy='56' dx='79' dy='0' />
>> >    <curve cdx='79' cdy='0' dx='56' dy='-56' />
>> >    <curve cdx='55' cdy='-55' dx='0' dy='-79' />
>> >    <curve cdx='0' cdy='-60' dx='-31' dy='-46' />
>> >    <curve cdx='21' cdy='39' dx='0' dy='47' />
>> >    <styleChange dx='0' dy='0' fillStyle0='0' fillStyle1='0'
>> >lineStyle='0' >
>> >      <fillstyle type='0' color='#FFFFFF80' />
>> >    </styleChange>
>> >    <styleChange dx='190' dy='0' fillStyle1='1' />
>> >    <curve cdx='0' cdy='75' dx='-53' dy='52' />
>> >    <curve cdx='-52' cdy='53' dx='-75' dy='0' />
>> >    <curve cdx='-75' cdy='0' dx='-52' dy='-53' />
>> >    <curve cdx='-53' cdy='-52' dx='0' dy='-75' />
>> >    <curve cdx='0' cdy='-75' dx='53' dy='-52' />
>> >    <curve cdx='52' cdy='-53' dx='75' dy='0' />
>> >    <curve cdx='75' cdy='0' dx='52' dy='53' />
>> >    <curve cdx='53' cdy='52' dx='0' dy='75' />
>> >    <styleChange dx='0' dy='0' fillStyle0='0' fillStyle1='0'
>> >lineStyle='0' >
>> >      <fillstyle type='16' gradient='0 #6F7777FF 255 #2B3C3CFF'
>> >matrix='s0.0,0.0 r0.009765625,-0.009765625 t10,0' />
>> >    </styleChange>
>> >    <styleChange dx='-150' dy='0' fillStyle1='1' />
>> >    <curve cdx='0' cdy='-67' dx='47' dy='-46' />
>> >    <curve cdx='46' cdy='-47' dx='67' dy='0' />
>> >    <curve cdx='66' cdy='0' dx='47' dy='47' />
>> >    <curve cdx='47' cdy='46' dx='0' dy='67' />
>> >    <curve cdx='0' cdy='66' dx='-47' dy='47' />
>> >    <curve cdx='-47' cdy='47' dx='-66' dy='0' />
>> >    <curve cdx='-67' cdy='0' dx='-46' dy='-47' />
>> >    <curve cdx='-47' cdy='-47' dx='0' dy='-66' />
>> >    <styleChange dx='0' dy='0' fillStyle0='0' fillStyle1='0'
>> >lineStyle='0' >
>> >      <fillstyle type='0' color='#FFFFFFFF' />
>> >    </styleChange>
>> >    <styleChange dx='130' dy='0' fillStyle1='1' />
>> >    <curve cdx='0' cdy='50' dx='-35' dy='35' />
>> >    <curve cdx='-35' cdy='35' dx='-50' dy='0' />
>> >    <curve cdx='-51' cdy='0' dx='-34' dy='-35' />
>> >    <curve cdx='-35' cdy='-35' dx='0' dy='-50' />
>> >    <curve cdx='0' cdy='-51' dx='35' dy='-34' />
>> >    <curve cdx='34' cdy='-35' dx='51' dy='0' />
>> >    <curve cdx='50' cdy='0' dx='35' dy='35' />
>> >    <curve cdx='35' cdy='34' dx='0' dy='51' />
>> >  </DefineShape3>
>> >  <DefineSprite id='2'>
>> >    <!-- sprite framecount=1 -->
>> >    <PlaceObject2 idref='1' depth='4' matrix='t0,0'/>
>> >    <ShowFrame/>
>> >  </DefineSprite>
>> >  <DefineBitsLossless2 id='3' encoding='base64'>
>> >
>> 
>>>//CHh//xkJD/9KWl//GQkP/wg4P/7nd3/+53d//sX1//5Soq/7kWFv+QEREAAAAA/9gZGf/z
>>>nJ
>> >z/
>> 
>>>/v39//3y8v/85eX/9re3/+5vb/+5Fhb/kBERAAAAAAAAAAAAAAAA/9gZGf/62dn//fT0//rV
>>>1f
>> >/1
>> 
>>>rq7/2BkZ/5AREQAAAAAAAAAAAAAAAAAAAAAAAAAA/+YzM//85eX/9rm5/+lMTP+QEREAAAAA
>>>AA
>> >AA
>> 
>>>AAAAAAAAAAAAAAAAAAAAAAAAAAAA/9gZGf/znp7/qxQUAAAAAAAAAAAAAAAAAAAAAAAAAAAA
>>>AA
>> >AA
>> 
>>>AAAAAAAAAAD/2BkZ/+lMTP+XEhIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/Y
>>>GR
>> >n/
>> 
>>>2BkZ/4cQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/9gZGf+iExP/LgUFAAAA
>>>AA
>> >AA
>> 
>>>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/2BkZ/4cQEP8nBAQAAAAAAAAAAAAAAAAAAAAA
>> >  </DefineBitsLossless2>
>> >  <DefineBitsLossless2 id='4' encoding='base64'>
>> >
>> 
>>>/8C4wP+/v7//0MjQ/7+/v/+1t7X/sbCw/7GwsP+hoaH/gICA/19fX/8/SD8AAAAA/3Bxcf/A
>>>yM
>> >D/
>> 
>>>//////X78P/y8vL/0NjQ/7CosP9fX1//P0g/AAAAAAAAAAAAAAAA/3Bxcf/w6PD///j//+Pp
>>>7/
>> >/R
>> 
>>>0ND/cHFx/z9IPwAAAAAAAAAAAAAAAAAAAAAAAAAA/4CIgP/y8vL/0Njg/5CYkP8/SD8AAAAA
>>>AA
>> >AA
>> 
>>>AAAAAAAAAAAAAAAAAAAAAAAAAAAA/3Bxcf/AyND/TllLAAAAAAAAAAAAAAAAAAAAAAAAAAAA
>>>AA
>> >AA
>> 
>>>AAAAAAAAAAD/cHFx/5CYkP9QSFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP9w
>>>cX
>> >H/
>> 
>>>cHFx/0FBQQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/3Bxcf9QUFD/EAgQAAAA
>>>AA
>> >AA
>> 
>>>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/cHFx/0FBQf8ACAAAAAAAAAAAAAAAAAAAAAAA
>> >  </DefineBitsLossless2>
>> >  <ExportAssets>
>> >    <Export idref='2' name='mx.skins.cursor.BusyCursor' />
>> >    <Export idref='3'
>> 
>>>name='_dataGridFilterButtonActiveStyle__embed_css_assets_icons_filter_ac
>>>ti
>> >ve_png_112587754'
>> >/>
>> >    <Export idref='4'
>> 
>>>name='_dataGridFilterButtonStyle__embed_css_assets_icons_filter_png_9565
>>>88
>> >96'
>> >/>
>> >  </ExportAssets>
>> >  <DoABC2 name='frame2'>
>> >  </DoABC2>
>> >  <!-- error: SymbolClass: symbol 2 already exported as
>> >mx.skins.cursor.BusyCursor -->
>> >  <SymbolClass>
>> >    <Symbol idref='4'
>> 
>>>className='_dataGridFilterButtonStyle__embed_css_assets_icons_filter_png
>>>_9
>> >5658896'
>> >/>
>> >    <Symbol idref='3'
>> 
>>>className='_dataGridFilterButtonActiveStyle__embed_css_assets_icons_filt
>>>er
>> >_active_png_112587754'
>> >/>
>> >    <Symbol idref='2'
>> 
>>>className='_CursorManagerStyle__embed_css_Assets_swf_mx_skins_cursor_Bus
>>>yC
>> >ursor_170125376'
>> >/>
>> >  </SymbolClass>
>> >  <ShowFrame/>
>> ></swf>
>> >
>> > and here is actual code:
>> ><?xml version="1.0" encoding="utf-8"?>
>> ><mx:Module xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"
>> >width="400" height="300">
>> ><mx:Script>
>> ><![CDATA[
>> >private function test1(val:String):void
>> >{
>> > }
>> >private function test2(val:String):void
>> >{
>> > }
>> >]]>
>> ></mx:Script>
>> >
>> ></mx:Module>
>> >
>> >
>> >
>> >On Fri, Aug 29, 2014 at 2:08 PM, mark goldin <ma...@gmail.com>
>> >wrote:
>> >
>> >> Ok, will do. Thanks
>> >>
>> >>
>> >> On Fri, Aug 29, 2014 at 2:07 PM, Alex Harui <ah...@adobe.com> wrote:
>> >>
>> >>> Good point.  How tight is your company?  Can you make a test module
>> >>>with a
>> >>> few functions and dump that?  Or grab a module demo off the internet
>> >>>and
>> >>> dump that?
>> >>>
>> >>> On 8/29/14 12:03 PM, "mark goldin" <ma...@gmail.com> wrote:
>> >>>
>> >>> >I am afraid of doing it because it's company's code.
>> >>> >
>> >>> >
>> >>> >On Fri, Aug 29, 2014 at 2:01 PM, Alex Harui <ah...@adobe.com>
>>wrote:
>> >>> >
>> >>> >> Post the entire dump somewhere on the internet (but not on this
>> >>>mailing
>> >>> >> list) and post the link.  Some folks use pastebin and things like
>> >>>that.
>> >>> >>
>> >>> >> On 8/29/14 11:58 AM, "mark goldin" <ma...@gmail.com> wrote:
>> >>> >>
>> >>> >> >I dont any line that would have a word function.
>> >>> >> >
>> >>> >> >
>> >>> >> >On Fri, Aug 29, 2014 at 1:54 PM, Alex Harui <ah...@adobe.com>
>> >>>wrote:
>> >>> >> >
>> >>> >> >> Take a small method that you are sure doesn't contain any
>> >>> >>confidential
>> >>> >> >> information and post the ABC code.
>> >>> >> >>
>> >>> >> >> -Alex
>> >>> >> >>
>> >>> >> >> On 8/29/14 11:50 AM, "mark goldin" <ma...@gmail.com>
>> wrote:
>> >>> >> >>
>> >>> >> >> >Still not sure I understand what do I do with abc code :(
>> >>> >> >> >
>> >>> >> >> >
>> >>> >> >> >On Fri, Aug 29, 2014 at 1:43 PM, Alex Harui
>><ah...@adobe.com>
>> >>> >>wrote:
>> >>> >> >> >
>> >>> >> >> >> ABC is ActionScript Byte Code, the compiled output of
>> >>> >>ActionScript.
>> >>> >> >> >>Each
>> >>> >> >> >> Flex module should contain two doABC blocks or more if a
>>debug
>> >>> >>SWF.
>> >>> >> >>The
>> >>> >> >> >> rest of SWFDump output describes other stuff, framerate,
>> >>>fonts,
>> >>> >> >>embedded
>> >>> >> >> >> graphics, etc.
>> >>> >> >> >>
>> >>> >> >> >> -Alex
>> >>> >> >> >>
>> >>> >> >> >> On 8/29/14 11:17 AM, "mark goldin" <ma...@gmail.com>
>> >>> wrote:
>> >>> >> >> >>
>> >>> >> >> >> >Sorry for stupid question but what DoAbc block(s)  is?
>> >>> >> >> >> >
>> >>> >> >> >> >
>> >>> >> >> >> >On Fri, Aug 29, 2014 at 1:11 PM, Alex Harui
>> >>><ah...@adobe.com>
>> >>> >> >>wrote:
>> >>> >> >> >> >
>> >>> >> >> >> >> If you use the -abc option, the DoAbc block(s) will give
>> >>>you
>> >>> >>some
>> >>> >> >> >>clue
>> >>> >> >> >> >>as
>> >>> >> >> >> >> to what the method bodies looked like.  It will look
>>more
>> >>>like
>> >>> >> >> >>assembly
>> >>> >> >> >> >> language than ActionScript, but depending on if it was
>>an
>> >>> >> >>optimized
>> >>> >> >> >> >> release SWF, you can usually figure it out.  To learn
>>the
>> >>> >> >>patterns,
>> >>> >> >> >>look
>> >>> >> >> >> >> at the abc code for some method you do have source for,
>> >>>like a
>> >>> >> >>Flex
>> >>> >> >> >> >>class.
>> >>> >> >> >> >>
>> >>> >> >> >> >> -Alex
>> >>> >> >> >> >>
>> >>> >> >> >> >> On 8/29/14 10:55 AM, "mark goldin"
>><ma...@gmail.com>
>> >>> >>wrote:
>> >>> >> >> >> >>
>> >>> >> >> >> >> >Ok, I got a dump file. What do I do with it?
>> >>> >> >> >> >> >
>> >>> >> >> >> >> >
>> >>> >> >> >> >> >On Fri, Aug 29, 2014 at 10:20 AM, Alex Harui
>> >>> >><ah...@adobe.com>
>> >>> >> >> >>wrote:
>> >>> >> >> >> >> >
>> >>> >> >> >> >> >> I don't think you can get all the way back to source
>> >>> >>(private
>> >>> >> >> >> >>variable
>> >>> >> >> >> >> >> names for instance) unless you have a debug SWF.  But
>> >>> >>SWFDump
>> >>> >> >>-abc
>> >>> >> >> >> >>will
>> >>> >> >> >> >> >> give you something.
>> >>> >> >> >> >> >>
>> >>> >> >> >> >> >> -Alex
>> >>> >> >> >> >> >>
>> >>> >> >> >> >> >> On 8/29/14 7:59 AM, "mark goldin"
>> >>><ma...@gmail.com>
>> >>> >> >>wrote:
>> >>> >> >> >> >> >>
>> >>> >> >> >> >> >> >Is it possible to do it? The  source code has been
>> >>>lost. I
>> >>> >> >>tried
>> >>> >> >> >> >> >>Sothink,
>> >>> >> >> >> >> >> >but because it's a module it does not do it.
>> >>> >> >> >> >> >> >
>> >>> >> >> >> >> >> >Thanks
>> >>> >> >> >> >> >>
>> >>> >> >> >> >> >>
>> >>> >> >> >> >>
>> >>> >> >> >> >>
>> >>> >> >> >>
>> >>> >> >> >>
>> >>> >> >>
>> >>> >> >>
>> >>> >>
>> >>> >>
>> >>>
>> >>>
>> >>
>>
>>


Re: Decompile SWF module

Posted by mark goldin <ma...@gmail.com>.
Yes, I realized that I am using a wrong parameter. Well, even test is too
big for pastebin.


On Fri, Aug 29, 2014 at 2:38 PM, Alex Harui <ah...@adobe.com> wrote:

> Hi,
>
> The output looks like you did not use the -abc option on SWFDump.  And the
> next dump will be huge so please post it somewhere like pastebin and just
> post a link to it.
>
> The command line should be something like <path to flex sdk>/bin/swfdump
> -abc d:/prism27/prismweb/modules/test.swf
>
> Thanks,
> -Alex
>
> On 8/29/14 12:33 PM, "mark goldin" <ma...@gmail.com> wrote:
>
> >Here is a dump:
> ><!-- Parsing swf file:/d:/prism27/prismweb/modules/test.swf -->
> ><!-- ?xml version="1.0" encoding="UTF-8"? -->
> ><swf xmlns='http://macromedia/2003/swfx' version='10' framerate='24'
> >size='10000x7500' compressed='true' >
> >  <!-- framecount=2 length=641425 -->
> >  <FileAttributes useDirectBlit='false' useGPU='false' hasMetadata='true'
> >actionScript3='true' suppressCrossDomainCaching='false'
> >swfRelativeUrls='false' useNetwork='true'/>
> >  <Metadata>
> >    <rdf:RDF
> >xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'><rdf:Description
> >rdf:about=''
> >xmlns:dc='http://purl.org/dc/elements/1.1
> '><dc:format>application/x-shockw
> >ave-flash</dc:format><dc:title>Adobe
> >Flex 3 Application</dc:title><dc:description>
> >http://www.adobe.com/products/flex
> </dc:description><dc:publisher>unknown</
> >dc:publisher><dc:creator>unknown</dc:creator><dc:language>EN</dc:language>
> ><dc:date>Aug
> >29, 2014</dc:date></rdf:Description></rdf:RDF>
> >  </Metadata>
> >  <EnableDebugger2 password='$1$kK$8GUQIK0YfhL3UKTf2tz7C.'
> >reserved='0x1975'/>
> >  <!-- error: SWD not found at url
> >file:/d:/prism27/prismweb/modules/test.swd -->
> >  <DebugID uuid='F8EB705C0DEFC0580DF39E1511D2BA68'/>
> >  <ScriptLimits scriptRecursionLimit='1000' scriptTimeLimit='60'/>
> >  <SetBackgroundColor color='#869CA7'/>
> >  <ProductInfo product='Adobe Flex' edition='' version='3.6' build='16995'
> >compileDate='8/29/14 2:31 PM'/>
> >  <FrameLabel label='_test_mx_core_FlexModuleFactory'/>
> >  <DoABC2 name='frame1'>
> >  </DoABC2>
> >  <SymbolClass>
> >    <Symbol idref='0' className='_test_mx_core_FlexModuleFactory' />
> >  </SymbolClass>
> >  <ShowFrame/>
> >  <FrameLabel label='modules_test'/>
> >  <DefineShape3 id='1' bounds='(-180,-180),(200,210)'>
> >    <fillstyle type='18' typeName='radial' gradient='200 #00000066 255
> >#00000000' matrix='s0.011917114,0.011917114 t10,20' />
> >    <styleChange dx='190' dy='0' fillStyle0='1' />
> >    <curve cdx='0' cdy='75' dx='-53' dy='52' />
> >    <curve cdx='-52' cdy='53' dx='-75' dy='0' />
> >    <curve cdx='-75' cdy='0' dx='-52' dy='-53' />
> >    <curve cdx='-53' cdy='-52' dx='0' dy='-75' />
> >    <curve cdx='0' cdy='-48' dx='22' dy='-39' />
> >    <curve cdx='-32' cdy='46' dx='0' dy='61' />
> >    <curve cdx='0' cdy='79' dx='55' dy='55' />
> >    <curve cdx='56' cdy='56' dx='79' dy='0' />
> >    <curve cdx='79' cdy='0' dx='56' dy='-56' />
> >    <curve cdx='55' cdy='-55' dx='0' dy='-79' />
> >    <curve cdx='0' cdy='-60' dx='-31' dy='-46' />
> >    <curve cdx='21' cdy='39' dx='0' dy='47' />
> >    <styleChange dx='0' dy='0' fillStyle0='0' fillStyle1='0'
> >lineStyle='0' >
> >      <fillstyle type='0' color='#FFFFFF80' />
> >    </styleChange>
> >    <styleChange dx='190' dy='0' fillStyle1='1' />
> >    <curve cdx='0' cdy='75' dx='-53' dy='52' />
> >    <curve cdx='-52' cdy='53' dx='-75' dy='0' />
> >    <curve cdx='-75' cdy='0' dx='-52' dy='-53' />
> >    <curve cdx='-53' cdy='-52' dx='0' dy='-75' />
> >    <curve cdx='0' cdy='-75' dx='53' dy='-52' />
> >    <curve cdx='52' cdy='-53' dx='75' dy='0' />
> >    <curve cdx='75' cdy='0' dx='52' dy='53' />
> >    <curve cdx='53' cdy='52' dx='0' dy='75' />
> >    <styleChange dx='0' dy='0' fillStyle0='0' fillStyle1='0'
> >lineStyle='0' >
> >      <fillstyle type='16' gradient='0 #6F7777FF 255 #2B3C3CFF'
> >matrix='s0.0,0.0 r0.009765625,-0.009765625 t10,0' />
> >    </styleChange>
> >    <styleChange dx='-150' dy='0' fillStyle1='1' />
> >    <curve cdx='0' cdy='-67' dx='47' dy='-46' />
> >    <curve cdx='46' cdy='-47' dx='67' dy='0' />
> >    <curve cdx='66' cdy='0' dx='47' dy='47' />
> >    <curve cdx='47' cdy='46' dx='0' dy='67' />
> >    <curve cdx='0' cdy='66' dx='-47' dy='47' />
> >    <curve cdx='-47' cdy='47' dx='-66' dy='0' />
> >    <curve cdx='-67' cdy='0' dx='-46' dy='-47' />
> >    <curve cdx='-47' cdy='-47' dx='0' dy='-66' />
> >    <styleChange dx='0' dy='0' fillStyle0='0' fillStyle1='0'
> >lineStyle='0' >
> >      <fillstyle type='0' color='#FFFFFFFF' />
> >    </styleChange>
> >    <styleChange dx='130' dy='0' fillStyle1='1' />
> >    <curve cdx='0' cdy='50' dx='-35' dy='35' />
> >    <curve cdx='-35' cdy='35' dx='-50' dy='0' />
> >    <curve cdx='-51' cdy='0' dx='-34' dy='-35' />
> >    <curve cdx='-35' cdy='-35' dx='0' dy='-50' />
> >    <curve cdx='0' cdy='-51' dx='35' dy='-34' />
> >    <curve cdx='34' cdy='-35' dx='51' dy='0' />
> >    <curve cdx='50' cdy='0' dx='35' dy='35' />
> >    <curve cdx='35' cdy='34' dx='0' dy='51' />
> >  </DefineShape3>
> >  <DefineSprite id='2'>
> >    <!-- sprite framecount=1 -->
> >    <PlaceObject2 idref='1' depth='4' matrix='t0,0'/>
> >    <ShowFrame/>
> >  </DefineSprite>
> >  <DefineBitsLossless2 id='3' encoding='base64'>
> >
> >//CHh//xkJD/9KWl//GQkP/wg4P/7nd3/+53d//sX1//5Soq/7kWFv+QEREAAAAA/9gZGf/znJ
> >z/
> >/v39//3y8v/85eX/9re3/+5vb/+5Fhb/kBERAAAAAAAAAAAAAAAA/9gZGf/62dn//fT0//rV1f
> >/1
> >rq7/2BkZ/5AREQAAAAAAAAAAAAAAAAAAAAAAAAAA/+YzM//85eX/9rm5/+lMTP+QEREAAAAAAA
> >AA
> >AAAAAAAAAAAAAAAAAAAAAAAAAAAA/9gZGf/znp7/qxQUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
> >AA
> >AAAAAAAAAAD/2BkZ/+lMTP+XEhIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/YGR
> >n/
> >2BkZ/4cQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/9gZGf+iExP/LgUFAAAAAA
> >AA
> >AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/2BkZ/4cQEP8nBAQAAAAAAAAAAAAAAAAAAAAA
> >  </DefineBitsLossless2>
> >  <DefineBitsLossless2 id='4' encoding='base64'>
> >
> >/8C4wP+/v7//0MjQ/7+/v/+1t7X/sbCw/7GwsP+hoaH/gICA/19fX/8/SD8AAAAA/3Bxcf/AyM
> >D/
> >//////X78P/y8vL/0NjQ/7CosP9fX1//P0g/AAAAAAAAAAAAAAAA/3Bxcf/w6PD///j//+Pp7/
> >/R
> >0ND/cHFx/z9IPwAAAAAAAAAAAAAAAAAAAAAAAAAA/4CIgP/y8vL/0Njg/5CYkP8/SD8AAAAAAA
> >AA
> >AAAAAAAAAAAAAAAAAAAAAAAAAAAA/3Bxcf/AyND/TllLAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
> >AA
> >AAAAAAAAAAD/cHFx/5CYkP9QSFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP9wcX
> >H/
> >cHFx/0FBQQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/3Bxcf9QUFD/EAgQAAAAAA
> >AA
> >AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/cHFx/0FBQf8ACAAAAAAAAAAAAAAAAAAAAAAA
> >  </DefineBitsLossless2>
> >  <ExportAssets>
> >    <Export idref='2' name='mx.skins.cursor.BusyCursor' />
> >    <Export idref='3'
> >name='_dataGridFilterButtonActiveStyle__embed_css_assets_icons_filter_acti
> >ve_png_112587754'
> >/>
> >    <Export idref='4'
> >name='_dataGridFilterButtonStyle__embed_css_assets_icons_filter_png_956588
> >96'
> >/>
> >  </ExportAssets>
> >  <DoABC2 name='frame2'>
> >  </DoABC2>
> >  <!-- error: SymbolClass: symbol 2 already exported as
> >mx.skins.cursor.BusyCursor -->
> >  <SymbolClass>
> >    <Symbol idref='4'
> >className='_dataGridFilterButtonStyle__embed_css_assets_icons_filter_png_9
> >5658896'
> >/>
> >    <Symbol idref='3'
> >className='_dataGridFilterButtonActiveStyle__embed_css_assets_icons_filter
> >_active_png_112587754'
> >/>
> >    <Symbol idref='2'
> >className='_CursorManagerStyle__embed_css_Assets_swf_mx_skins_cursor_BusyC
> >ursor_170125376'
> >/>
> >  </SymbolClass>
> >  <ShowFrame/>
> ></swf>
> >
> > and here is actual code:
> ><?xml version="1.0" encoding="utf-8"?>
> ><mx:Module xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"
> >width="400" height="300">
> ><mx:Script>
> ><![CDATA[
> >private function test1(val:String):void
> >{
> > }
> >private function test2(val:String):void
> >{
> > }
> >]]>
> ></mx:Script>
> >
> ></mx:Module>
> >
> >
> >
> >On Fri, Aug 29, 2014 at 2:08 PM, mark goldin <ma...@gmail.com>
> >wrote:
> >
> >> Ok, will do. Thanks
> >>
> >>
> >> On Fri, Aug 29, 2014 at 2:07 PM, Alex Harui <ah...@adobe.com> wrote:
> >>
> >>> Good point.  How tight is your company?  Can you make a test module
> >>>with a
> >>> few functions and dump that?  Or grab a module demo off the internet
> >>>and
> >>> dump that?
> >>>
> >>> On 8/29/14 12:03 PM, "mark goldin" <ma...@gmail.com> wrote:
> >>>
> >>> >I am afraid of doing it because it's company's code.
> >>> >
> >>> >
> >>> >On Fri, Aug 29, 2014 at 2:01 PM, Alex Harui <ah...@adobe.com> wrote:
> >>> >
> >>> >> Post the entire dump somewhere on the internet (but not on this
> >>>mailing
> >>> >> list) and post the link.  Some folks use pastebin and things like
> >>>that.
> >>> >>
> >>> >> On 8/29/14 11:58 AM, "mark goldin" <ma...@gmail.com> wrote:
> >>> >>
> >>> >> >I dont any line that would have a word function.
> >>> >> >
> >>> >> >
> >>> >> >On Fri, Aug 29, 2014 at 1:54 PM, Alex Harui <ah...@adobe.com>
> >>>wrote:
> >>> >> >
> >>> >> >> Take a small method that you are sure doesn't contain any
> >>> >>confidential
> >>> >> >> information and post the ABC code.
> >>> >> >>
> >>> >> >> -Alex
> >>> >> >>
> >>> >> >> On 8/29/14 11:50 AM, "mark goldin" <ma...@gmail.com>
> wrote:
> >>> >> >>
> >>> >> >> >Still not sure I understand what do I do with abc code :(
> >>> >> >> >
> >>> >> >> >
> >>> >> >> >On Fri, Aug 29, 2014 at 1:43 PM, Alex Harui <ah...@adobe.com>
> >>> >>wrote:
> >>> >> >> >
> >>> >> >> >> ABC is ActionScript Byte Code, the compiled output of
> >>> >>ActionScript.
> >>> >> >> >>Each
> >>> >> >> >> Flex module should contain two doABC blocks or more if a debug
> >>> >>SWF.
> >>> >> >>The
> >>> >> >> >> rest of SWFDump output describes other stuff, framerate,
> >>>fonts,
> >>> >> >>embedded
> >>> >> >> >> graphics, etc.
> >>> >> >> >>
> >>> >> >> >> -Alex
> >>> >> >> >>
> >>> >> >> >> On 8/29/14 11:17 AM, "mark goldin" <ma...@gmail.com>
> >>> wrote:
> >>> >> >> >>
> >>> >> >> >> >Sorry for stupid question but what DoAbc block(s)  is?
> >>> >> >> >> >
> >>> >> >> >> >
> >>> >> >> >> >On Fri, Aug 29, 2014 at 1:11 PM, Alex Harui
> >>><ah...@adobe.com>
> >>> >> >>wrote:
> >>> >> >> >> >
> >>> >> >> >> >> If you use the -abc option, the DoAbc block(s) will give
> >>>you
> >>> >>some
> >>> >> >> >>clue
> >>> >> >> >> >>as
> >>> >> >> >> >> to what the method bodies looked like.  It will look more
> >>>like
> >>> >> >> >>assembly
> >>> >> >> >> >> language than ActionScript, but depending on if it was an
> >>> >> >>optimized
> >>> >> >> >> >> release SWF, you can usually figure it out.  To learn the
> >>> >> >>patterns,
> >>> >> >> >>look
> >>> >> >> >> >> at the abc code for some method you do have source for,
> >>>like a
> >>> >> >>Flex
> >>> >> >> >> >>class.
> >>> >> >> >> >>
> >>> >> >> >> >> -Alex
> >>> >> >> >> >>
> >>> >> >> >> >> On 8/29/14 10:55 AM, "mark goldin" <ma...@gmail.com>
> >>> >>wrote:
> >>> >> >> >> >>
> >>> >> >> >> >> >Ok, I got a dump file. What do I do with it?
> >>> >> >> >> >> >
> >>> >> >> >> >> >
> >>> >> >> >> >> >On Fri, Aug 29, 2014 at 10:20 AM, Alex Harui
> >>> >><ah...@adobe.com>
> >>> >> >> >>wrote:
> >>> >> >> >> >> >
> >>> >> >> >> >> >> I don't think you can get all the way back to source
> >>> >>(private
> >>> >> >> >> >>variable
> >>> >> >> >> >> >> names for instance) unless you have a debug SWF.  But
> >>> >>SWFDump
> >>> >> >>-abc
> >>> >> >> >> >>will
> >>> >> >> >> >> >> give you something.
> >>> >> >> >> >> >>
> >>> >> >> >> >> >> -Alex
> >>> >> >> >> >> >>
> >>> >> >> >> >> >> On 8/29/14 7:59 AM, "mark goldin"
> >>><ma...@gmail.com>
> >>> >> >>wrote:
> >>> >> >> >> >> >>
> >>> >> >> >> >> >> >Is it possible to do it? The  source code has been
> >>>lost. I
> >>> >> >>tried
> >>> >> >> >> >> >>Sothink,
> >>> >> >> >> >> >> >but because it's a module it does not do it.
> >>> >> >> >> >> >> >
> >>> >> >> >> >> >> >Thanks
> >>> >> >> >> >> >>
> >>> >> >> >> >> >>
> >>> >> >> >> >>
> >>> >> >> >> >>
> >>> >> >> >>
> >>> >> >> >>
> >>> >> >>
> >>> >> >>
> >>> >>
> >>> >>
> >>>
> >>>
> >>
>
>

Re: Decompile SWF module

Posted by Alex Harui <ah...@adobe.com>.
Hi,

The output looks like you did not use the -abc option on SWFDump.  And the
next dump will be huge so please post it somewhere like pastebin and just
post a link to it.

The command line should be something like <path to flex sdk>/bin/swfdump
-abc d:/prism27/prismweb/modules/test.swf

Thanks,
-Alex

On 8/29/14 12:33 PM, "mark goldin" <ma...@gmail.com> wrote:

>Here is a dump:
><!-- Parsing swf file:/d:/prism27/prismweb/modules/test.swf -->
><!-- ?xml version="1.0" encoding="UTF-8"? -->
><swf xmlns='http://macromedia/2003/swfx' version='10' framerate='24'
>size='10000x7500' compressed='true' >
>  <!-- framecount=2 length=641425 -->
>  <FileAttributes useDirectBlit='false' useGPU='false' hasMetadata='true'
>actionScript3='true' suppressCrossDomainCaching='false'
>swfRelativeUrls='false' useNetwork='true'/>
>  <Metadata>
>    <rdf:RDF 
>xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'><rdf:Description
>rdf:about='' 
>xmlns:dc='http://purl.org/dc/elements/1.1'><dc:format>application/x-shockw
>ave-flash</dc:format><dc:title>Adobe
>Flex 3 Application</dc:title><dc:description>
>http://www.adobe.com/products/flex</dc:description><dc:publisher>unknown</
>dc:publisher><dc:creator>unknown</dc:creator><dc:language>EN</dc:language>
><dc:date>Aug
>29, 2014</dc:date></rdf:Description></rdf:RDF>
>  </Metadata>
>  <EnableDebugger2 password='$1$kK$8GUQIK0YfhL3UKTf2tz7C.'
>reserved='0x1975'/>
>  <!-- error: SWD not found at url
>file:/d:/prism27/prismweb/modules/test.swd -->
>  <DebugID uuid='F8EB705C0DEFC0580DF39E1511D2BA68'/>
>  <ScriptLimits scriptRecursionLimit='1000' scriptTimeLimit='60'/>
>  <SetBackgroundColor color='#869CA7'/>
>  <ProductInfo product='Adobe Flex' edition='' version='3.6' build='16995'
>compileDate='8/29/14 2:31 PM'/>
>  <FrameLabel label='_test_mx_core_FlexModuleFactory'/>
>  <DoABC2 name='frame1'>
>  </DoABC2>
>  <SymbolClass>
>    <Symbol idref='0' className='_test_mx_core_FlexModuleFactory' />
>  </SymbolClass>
>  <ShowFrame/>
>  <FrameLabel label='modules_test'/>
>  <DefineShape3 id='1' bounds='(-180,-180),(200,210)'>
>    <fillstyle type='18' typeName='radial' gradient='200 #00000066 255
>#00000000' matrix='s0.011917114,0.011917114 t10,20' />
>    <styleChange dx='190' dy='0' fillStyle0='1' />
>    <curve cdx='0' cdy='75' dx='-53' dy='52' />
>    <curve cdx='-52' cdy='53' dx='-75' dy='0' />
>    <curve cdx='-75' cdy='0' dx='-52' dy='-53' />
>    <curve cdx='-53' cdy='-52' dx='0' dy='-75' />
>    <curve cdx='0' cdy='-48' dx='22' dy='-39' />
>    <curve cdx='-32' cdy='46' dx='0' dy='61' />
>    <curve cdx='0' cdy='79' dx='55' dy='55' />
>    <curve cdx='56' cdy='56' dx='79' dy='0' />
>    <curve cdx='79' cdy='0' dx='56' dy='-56' />
>    <curve cdx='55' cdy='-55' dx='0' dy='-79' />
>    <curve cdx='0' cdy='-60' dx='-31' dy='-46' />
>    <curve cdx='21' cdy='39' dx='0' dy='47' />
>    <styleChange dx='0' dy='0' fillStyle0='0' fillStyle1='0'
>lineStyle='0' >
>      <fillstyle type='0' color='#FFFFFF80' />
>    </styleChange>
>    <styleChange dx='190' dy='0' fillStyle1='1' />
>    <curve cdx='0' cdy='75' dx='-53' dy='52' />
>    <curve cdx='-52' cdy='53' dx='-75' dy='0' />
>    <curve cdx='-75' cdy='0' dx='-52' dy='-53' />
>    <curve cdx='-53' cdy='-52' dx='0' dy='-75' />
>    <curve cdx='0' cdy='-75' dx='53' dy='-52' />
>    <curve cdx='52' cdy='-53' dx='75' dy='0' />
>    <curve cdx='75' cdy='0' dx='52' dy='53' />
>    <curve cdx='53' cdy='52' dx='0' dy='75' />
>    <styleChange dx='0' dy='0' fillStyle0='0' fillStyle1='0'
>lineStyle='0' >
>      <fillstyle type='16' gradient='0 #6F7777FF 255 #2B3C3CFF'
>matrix='s0.0,0.0 r0.009765625,-0.009765625 t10,0' />
>    </styleChange>
>    <styleChange dx='-150' dy='0' fillStyle1='1' />
>    <curve cdx='0' cdy='-67' dx='47' dy='-46' />
>    <curve cdx='46' cdy='-47' dx='67' dy='0' />
>    <curve cdx='66' cdy='0' dx='47' dy='47' />
>    <curve cdx='47' cdy='46' dx='0' dy='67' />
>    <curve cdx='0' cdy='66' dx='-47' dy='47' />
>    <curve cdx='-47' cdy='47' dx='-66' dy='0' />
>    <curve cdx='-67' cdy='0' dx='-46' dy='-47' />
>    <curve cdx='-47' cdy='-47' dx='0' dy='-66' />
>    <styleChange dx='0' dy='0' fillStyle0='0' fillStyle1='0'
>lineStyle='0' >
>      <fillstyle type='0' color='#FFFFFFFF' />
>    </styleChange>
>    <styleChange dx='130' dy='0' fillStyle1='1' />
>    <curve cdx='0' cdy='50' dx='-35' dy='35' />
>    <curve cdx='-35' cdy='35' dx='-50' dy='0' />
>    <curve cdx='-51' cdy='0' dx='-34' dy='-35' />
>    <curve cdx='-35' cdy='-35' dx='0' dy='-50' />
>    <curve cdx='0' cdy='-51' dx='35' dy='-34' />
>    <curve cdx='34' cdy='-35' dx='51' dy='0' />
>    <curve cdx='50' cdy='0' dx='35' dy='35' />
>    <curve cdx='35' cdy='34' dx='0' dy='51' />
>  </DefineShape3>
>  <DefineSprite id='2'>
>    <!-- sprite framecount=1 -->
>    <PlaceObject2 idref='1' depth='4' matrix='t0,0'/>
>    <ShowFrame/>
>  </DefineSprite>
>  <DefineBitsLossless2 id='3' encoding='base64'>
>
>//CHh//xkJD/9KWl//GQkP/wg4P/7nd3/+53d//sX1//5Soq/7kWFv+QEREAAAAA/9gZGf/znJ
>z/
>/v39//3y8v/85eX/9re3/+5vb/+5Fhb/kBERAAAAAAAAAAAAAAAA/9gZGf/62dn//fT0//rV1f
>/1
>rq7/2BkZ/5AREQAAAAAAAAAAAAAAAAAAAAAAAAAA/+YzM//85eX/9rm5/+lMTP+QEREAAAAAAA
>AA
>AAAAAAAAAAAAAAAAAAAAAAAAAAAA/9gZGf/znp7/qxQUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
>AA
>AAAAAAAAAAD/2BkZ/+lMTP+XEhIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/YGR
>n/
>2BkZ/4cQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/9gZGf+iExP/LgUFAAAAAA
>AA
>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/2BkZ/4cQEP8nBAQAAAAAAAAAAAAAAAAAAAAA
>  </DefineBitsLossless2>
>  <DefineBitsLossless2 id='4' encoding='base64'>
>
>/8C4wP+/v7//0MjQ/7+/v/+1t7X/sbCw/7GwsP+hoaH/gICA/19fX/8/SD8AAAAA/3Bxcf/AyM
>D/
>//////X78P/y8vL/0NjQ/7CosP9fX1//P0g/AAAAAAAAAAAAAAAA/3Bxcf/w6PD///j//+Pp7/
>/R
>0ND/cHFx/z9IPwAAAAAAAAAAAAAAAAAAAAAAAAAA/4CIgP/y8vL/0Njg/5CYkP8/SD8AAAAAAA
>AA
>AAAAAAAAAAAAAAAAAAAAAAAAAAAA/3Bxcf/AyND/TllLAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
>AA
>AAAAAAAAAAD/cHFx/5CYkP9QSFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP9wcX
>H/
>cHFx/0FBQQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/3Bxcf9QUFD/EAgQAAAAAA
>AA
>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/cHFx/0FBQf8ACAAAAAAAAAAAAAAAAAAAAAAA
>  </DefineBitsLossless2>
>  <ExportAssets>
>    <Export idref='2' name='mx.skins.cursor.BusyCursor' />
>    <Export idref='3'
>name='_dataGridFilterButtonActiveStyle__embed_css_assets_icons_filter_acti
>ve_png_112587754'
>/>
>    <Export idref='4'
>name='_dataGridFilterButtonStyle__embed_css_assets_icons_filter_png_956588
>96'
>/>
>  </ExportAssets>
>  <DoABC2 name='frame2'>
>  </DoABC2>
>  <!-- error: SymbolClass: symbol 2 already exported as
>mx.skins.cursor.BusyCursor -->
>  <SymbolClass>
>    <Symbol idref='4'
>className='_dataGridFilterButtonStyle__embed_css_assets_icons_filter_png_9
>5658896'
>/>
>    <Symbol idref='3'
>className='_dataGridFilterButtonActiveStyle__embed_css_assets_icons_filter
>_active_png_112587754'
>/>
>    <Symbol idref='2'
>className='_CursorManagerStyle__embed_css_Assets_swf_mx_skins_cursor_BusyC
>ursor_170125376'
>/>
>  </SymbolClass>
>  <ShowFrame/>
></swf>
>
> and here is actual code:
><?xml version="1.0" encoding="utf-8"?>
><mx:Module xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"
>width="400" height="300">
><mx:Script>
><![CDATA[
>private function test1(val:String):void
>{
> }
>private function test2(val:String):void
>{
> }
>]]>
></mx:Script>
>
></mx:Module>
>
>
>
>On Fri, Aug 29, 2014 at 2:08 PM, mark goldin <ma...@gmail.com>
>wrote:
>
>> Ok, will do. Thanks
>>
>>
>> On Fri, Aug 29, 2014 at 2:07 PM, Alex Harui <ah...@adobe.com> wrote:
>>
>>> Good point.  How tight is your company?  Can you make a test module
>>>with a
>>> few functions and dump that?  Or grab a module demo off the internet
>>>and
>>> dump that?
>>>
>>> On 8/29/14 12:03 PM, "mark goldin" <ma...@gmail.com> wrote:
>>>
>>> >I am afraid of doing it because it's company's code.
>>> >
>>> >
>>> >On Fri, Aug 29, 2014 at 2:01 PM, Alex Harui <ah...@adobe.com> wrote:
>>> >
>>> >> Post the entire dump somewhere on the internet (but not on this
>>>mailing
>>> >> list) and post the link.  Some folks use pastebin and things like
>>>that.
>>> >>
>>> >> On 8/29/14 11:58 AM, "mark goldin" <ma...@gmail.com> wrote:
>>> >>
>>> >> >I dont any line that would have a word function.
>>> >> >
>>> >> >
>>> >> >On Fri, Aug 29, 2014 at 1:54 PM, Alex Harui <ah...@adobe.com>
>>>wrote:
>>> >> >
>>> >> >> Take a small method that you are sure doesn't contain any
>>> >>confidential
>>> >> >> information and post the ABC code.
>>> >> >>
>>> >> >> -Alex
>>> >> >>
>>> >> >> On 8/29/14 11:50 AM, "mark goldin" <ma...@gmail.com> wrote:
>>> >> >>
>>> >> >> >Still not sure I understand what do I do with abc code :(
>>> >> >> >
>>> >> >> >
>>> >> >> >On Fri, Aug 29, 2014 at 1:43 PM, Alex Harui <ah...@adobe.com>
>>> >>wrote:
>>> >> >> >
>>> >> >> >> ABC is ActionScript Byte Code, the compiled output of
>>> >>ActionScript.
>>> >> >> >>Each
>>> >> >> >> Flex module should contain two doABC blocks or more if a debug
>>> >>SWF.
>>> >> >>The
>>> >> >> >> rest of SWFDump output describes other stuff, framerate,
>>>fonts,
>>> >> >>embedded
>>> >> >> >> graphics, etc.
>>> >> >> >>
>>> >> >> >> -Alex
>>> >> >> >>
>>> >> >> >> On 8/29/14 11:17 AM, "mark goldin" <ma...@gmail.com>
>>> wrote:
>>> >> >> >>
>>> >> >> >> >Sorry for stupid question but what DoAbc block(s)  is?
>>> >> >> >> >
>>> >> >> >> >
>>> >> >> >> >On Fri, Aug 29, 2014 at 1:11 PM, Alex Harui
>>><ah...@adobe.com>
>>> >> >>wrote:
>>> >> >> >> >
>>> >> >> >> >> If you use the -abc option, the DoAbc block(s) will give
>>>you
>>> >>some
>>> >> >> >>clue
>>> >> >> >> >>as
>>> >> >> >> >> to what the method bodies looked like.  It will look more
>>>like
>>> >> >> >>assembly
>>> >> >> >> >> language than ActionScript, but depending on if it was an
>>> >> >>optimized
>>> >> >> >> >> release SWF, you can usually figure it out.  To learn the
>>> >> >>patterns,
>>> >> >> >>look
>>> >> >> >> >> at the abc code for some method you do have source for,
>>>like a
>>> >> >>Flex
>>> >> >> >> >>class.
>>> >> >> >> >>
>>> >> >> >> >> -Alex
>>> >> >> >> >>
>>> >> >> >> >> On 8/29/14 10:55 AM, "mark goldin" <ma...@gmail.com>
>>> >>wrote:
>>> >> >> >> >>
>>> >> >> >> >> >Ok, I got a dump file. What do I do with it?
>>> >> >> >> >> >
>>> >> >> >> >> >
>>> >> >> >> >> >On Fri, Aug 29, 2014 at 10:20 AM, Alex Harui
>>> >><ah...@adobe.com>
>>> >> >> >>wrote:
>>> >> >> >> >> >
>>> >> >> >> >> >> I don't think you can get all the way back to source
>>> >>(private
>>> >> >> >> >>variable
>>> >> >> >> >> >> names for instance) unless you have a debug SWF.  But
>>> >>SWFDump
>>> >> >>-abc
>>> >> >> >> >>will
>>> >> >> >> >> >> give you something.
>>> >> >> >> >> >>
>>> >> >> >> >> >> -Alex
>>> >> >> >> >> >>
>>> >> >> >> >> >> On 8/29/14 7:59 AM, "mark goldin"
>>><ma...@gmail.com>
>>> >> >>wrote:
>>> >> >> >> >> >>
>>> >> >> >> >> >> >Is it possible to do it? The  source code has been
>>>lost. I
>>> >> >>tried
>>> >> >> >> >> >>Sothink,
>>> >> >> >> >> >> >but because it's a module it does not do it.
>>> >> >> >> >> >> >
>>> >> >> >> >> >> >Thanks
>>> >> >> >> >> >>
>>> >> >> >> >> >>
>>> >> >> >> >>
>>> >> >> >> >>
>>> >> >> >>
>>> >> >> >>
>>> >> >>
>>> >> >>
>>> >>
>>> >>
>>>
>>>
>>


Re: Decompile SWF module

Posted by mark goldin <ma...@gmail.com>.
Here is a dump:
<!-- Parsing swf file:/d:/prism27/prismweb/modules/test.swf -->
<!-- ?xml version="1.0" encoding="UTF-8"? -->
<swf xmlns='http://macromedia/2003/swfx' version='10' framerate='24'
size='10000x7500' compressed='true' >
  <!-- framecount=2 length=641425 -->
  <FileAttributes useDirectBlit='false' useGPU='false' hasMetadata='true'
actionScript3='true' suppressCrossDomainCaching='false'
swfRelativeUrls='false' useNetwork='true'/>
  <Metadata>
    <rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'><rdf:Description
rdf:about='' xmlns:dc='http://purl.org/dc/elements/1.1'><dc:format>application/x-shockwave-flash</dc:format><dc:title>Adobe
Flex 3 Application</dc:title><dc:description>
http://www.adobe.com/products/flex</dc:description><dc:publisher>unknown</dc:publisher><dc:creator>unknown</dc:creator><dc:language>EN</dc:language><dc:date>Aug
29, 2014</dc:date></rdf:Description></rdf:RDF>
  </Metadata>
  <EnableDebugger2 password='$1$kK$8GUQIK0YfhL3UKTf2tz7C.'
reserved='0x1975'/>
  <!-- error: SWD not found at url
file:/d:/prism27/prismweb/modules/test.swd -->
  <DebugID uuid='F8EB705C0DEFC0580DF39E1511D2BA68'/>
  <ScriptLimits scriptRecursionLimit='1000' scriptTimeLimit='60'/>
  <SetBackgroundColor color='#869CA7'/>
  <ProductInfo product='Adobe Flex' edition='' version='3.6' build='16995'
compileDate='8/29/14 2:31 PM'/>
  <FrameLabel label='_test_mx_core_FlexModuleFactory'/>
  <DoABC2 name='frame1'>
  </DoABC2>
  <SymbolClass>
    <Symbol idref='0' className='_test_mx_core_FlexModuleFactory' />
  </SymbolClass>
  <ShowFrame/>
  <FrameLabel label='modules_test'/>
  <DefineShape3 id='1' bounds='(-180,-180),(200,210)'>
    <fillstyle type='18' typeName='radial' gradient='200 #00000066 255
#00000000' matrix='s0.011917114,0.011917114 t10,20' />
    <styleChange dx='190' dy='0' fillStyle0='1' />
    <curve cdx='0' cdy='75' dx='-53' dy='52' />
    <curve cdx='-52' cdy='53' dx='-75' dy='0' />
    <curve cdx='-75' cdy='0' dx='-52' dy='-53' />
    <curve cdx='-53' cdy='-52' dx='0' dy='-75' />
    <curve cdx='0' cdy='-48' dx='22' dy='-39' />
    <curve cdx='-32' cdy='46' dx='0' dy='61' />
    <curve cdx='0' cdy='79' dx='55' dy='55' />
    <curve cdx='56' cdy='56' dx='79' dy='0' />
    <curve cdx='79' cdy='0' dx='56' dy='-56' />
    <curve cdx='55' cdy='-55' dx='0' dy='-79' />
    <curve cdx='0' cdy='-60' dx='-31' dy='-46' />
    <curve cdx='21' cdy='39' dx='0' dy='47' />
    <styleChange dx='0' dy='0' fillStyle0='0' fillStyle1='0' lineStyle='0' >
      <fillstyle type='0' color='#FFFFFF80' />
    </styleChange>
    <styleChange dx='190' dy='0' fillStyle1='1' />
    <curve cdx='0' cdy='75' dx='-53' dy='52' />
    <curve cdx='-52' cdy='53' dx='-75' dy='0' />
    <curve cdx='-75' cdy='0' dx='-52' dy='-53' />
    <curve cdx='-53' cdy='-52' dx='0' dy='-75' />
    <curve cdx='0' cdy='-75' dx='53' dy='-52' />
    <curve cdx='52' cdy='-53' dx='75' dy='0' />
    <curve cdx='75' cdy='0' dx='52' dy='53' />
    <curve cdx='53' cdy='52' dx='0' dy='75' />
    <styleChange dx='0' dy='0' fillStyle0='0' fillStyle1='0' lineStyle='0' >
      <fillstyle type='16' gradient='0 #6F7777FF 255 #2B3C3CFF'
matrix='s0.0,0.0 r0.009765625,-0.009765625 t10,0' />
    </styleChange>
    <styleChange dx='-150' dy='0' fillStyle1='1' />
    <curve cdx='0' cdy='-67' dx='47' dy='-46' />
    <curve cdx='46' cdy='-47' dx='67' dy='0' />
    <curve cdx='66' cdy='0' dx='47' dy='47' />
    <curve cdx='47' cdy='46' dx='0' dy='67' />
    <curve cdx='0' cdy='66' dx='-47' dy='47' />
    <curve cdx='-47' cdy='47' dx='-66' dy='0' />
    <curve cdx='-67' cdy='0' dx='-46' dy='-47' />
    <curve cdx='-47' cdy='-47' dx='0' dy='-66' />
    <styleChange dx='0' dy='0' fillStyle0='0' fillStyle1='0' lineStyle='0' >
      <fillstyle type='0' color='#FFFFFFFF' />
    </styleChange>
    <styleChange dx='130' dy='0' fillStyle1='1' />
    <curve cdx='0' cdy='50' dx='-35' dy='35' />
    <curve cdx='-35' cdy='35' dx='-50' dy='0' />
    <curve cdx='-51' cdy='0' dx='-34' dy='-35' />
    <curve cdx='-35' cdy='-35' dx='0' dy='-50' />
    <curve cdx='0' cdy='-51' dx='35' dy='-34' />
    <curve cdx='34' cdy='-35' dx='51' dy='0' />
    <curve cdx='50' cdy='0' dx='35' dy='35' />
    <curve cdx='35' cdy='34' dx='0' dy='51' />
  </DefineShape3>
  <DefineSprite id='2'>
    <!-- sprite framecount=1 -->
    <PlaceObject2 idref='1' depth='4' matrix='t0,0'/>
    <ShowFrame/>
  </DefineSprite>
  <DefineBitsLossless2 id='3' encoding='base64'>

//CHh//xkJD/9KWl//GQkP/wg4P/7nd3/+53d//sX1//5Soq/7kWFv+QEREAAAAA/9gZGf/znJz/
/v39//3y8v/85eX/9re3/+5vb/+5Fhb/kBERAAAAAAAAAAAAAAAA/9gZGf/62dn//fT0//rV1f/1
rq7/2BkZ/5AREQAAAAAAAAAAAAAAAAAAAAAAAAAA/+YzM//85eX/9rm5/+lMTP+QEREAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAA/9gZGf/znp7/qxQUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAD/2BkZ/+lMTP+XEhIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/YGRn/
2BkZ/4cQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/9gZGf+iExP/LgUFAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/2BkZ/4cQEP8nBAQAAAAAAAAAAAAAAAAAAAAA
  </DefineBitsLossless2>
  <DefineBitsLossless2 id='4' encoding='base64'>

/8C4wP+/v7//0MjQ/7+/v/+1t7X/sbCw/7GwsP+hoaH/gICA/19fX/8/SD8AAAAA/3Bxcf/AyMD/
//////X78P/y8vL/0NjQ/7CosP9fX1//P0g/AAAAAAAAAAAAAAAA/3Bxcf/w6PD///j//+Pp7//R
0ND/cHFx/z9IPwAAAAAAAAAAAAAAAAAAAAAAAAAA/4CIgP/y8vL/0Njg/5CYkP8/SD8AAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAA/3Bxcf/AyND/TllLAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAD/cHFx/5CYkP9QSFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP9wcXH/
cHFx/0FBQQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/3Bxcf9QUFD/EAgQAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/cHFx/0FBQf8ACAAAAAAAAAAAAAAAAAAAAAAA
  </DefineBitsLossless2>
  <ExportAssets>
    <Export idref='2' name='mx.skins.cursor.BusyCursor' />
    <Export idref='3'
name='_dataGridFilterButtonActiveStyle__embed_css_assets_icons_filter_active_png_112587754'
/>
    <Export idref='4'
name='_dataGridFilterButtonStyle__embed_css_assets_icons_filter_png_95658896'
/>
  </ExportAssets>
  <DoABC2 name='frame2'>
  </DoABC2>
  <!-- error: SymbolClass: symbol 2 already exported as
mx.skins.cursor.BusyCursor -->
  <SymbolClass>
    <Symbol idref='4'
className='_dataGridFilterButtonStyle__embed_css_assets_icons_filter_png_95658896'
/>
    <Symbol idref='3'
className='_dataGridFilterButtonActiveStyle__embed_css_assets_icons_filter_active_png_112587754'
/>
    <Symbol idref='2'
className='_CursorManagerStyle__embed_css_Assets_swf_mx_skins_cursor_BusyCursor_170125376'
/>
  </SymbolClass>
  <ShowFrame/>
</swf>

 and here is actual code:
<?xml version="1.0" encoding="utf-8"?>
<mx:Module xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"
width="400" height="300">
<mx:Script>
<![CDATA[
private function test1(val:String):void
{
 }
private function test2(val:String):void
{
 }
]]>
</mx:Script>

</mx:Module>



On Fri, Aug 29, 2014 at 2:08 PM, mark goldin <ma...@gmail.com> wrote:

> Ok, will do. Thanks
>
>
> On Fri, Aug 29, 2014 at 2:07 PM, Alex Harui <ah...@adobe.com> wrote:
>
>> Good point.  How tight is your company?  Can you make a test module with a
>> few functions and dump that?  Or grab a module demo off the internet and
>> dump that?
>>
>> On 8/29/14 12:03 PM, "mark goldin" <ma...@gmail.com> wrote:
>>
>> >I am afraid of doing it because it's company's code.
>> >
>> >
>> >On Fri, Aug 29, 2014 at 2:01 PM, Alex Harui <ah...@adobe.com> wrote:
>> >
>> >> Post the entire dump somewhere on the internet (but not on this mailing
>> >> list) and post the link.  Some folks use pastebin and things like that.
>> >>
>> >> On 8/29/14 11:58 AM, "mark goldin" <ma...@gmail.com> wrote:
>> >>
>> >> >I dont any line that would have a word function.
>> >> >
>> >> >
>> >> >On Fri, Aug 29, 2014 at 1:54 PM, Alex Harui <ah...@adobe.com> wrote:
>> >> >
>> >> >> Take a small method that you are sure doesn't contain any
>> >>confidential
>> >> >> information and post the ABC code.
>> >> >>
>> >> >> -Alex
>> >> >>
>> >> >> On 8/29/14 11:50 AM, "mark goldin" <ma...@gmail.com> wrote:
>> >> >>
>> >> >> >Still not sure I understand what do I do with abc code :(
>> >> >> >
>> >> >> >
>> >> >> >On Fri, Aug 29, 2014 at 1:43 PM, Alex Harui <ah...@adobe.com>
>> >>wrote:
>> >> >> >
>> >> >> >> ABC is ActionScript Byte Code, the compiled output of
>> >>ActionScript.
>> >> >> >>Each
>> >> >> >> Flex module should contain two doABC blocks or more if a debug
>> >>SWF.
>> >> >>The
>> >> >> >> rest of SWFDump output describes other stuff, framerate, fonts,
>> >> >>embedded
>> >> >> >> graphics, etc.
>> >> >> >>
>> >> >> >> -Alex
>> >> >> >>
>> >> >> >> On 8/29/14 11:17 AM, "mark goldin" <ma...@gmail.com>
>> wrote:
>> >> >> >>
>> >> >> >> >Sorry for stupid question but what DoAbc block(s)  is?
>> >> >> >> >
>> >> >> >> >
>> >> >> >> >On Fri, Aug 29, 2014 at 1:11 PM, Alex Harui <ah...@adobe.com>
>> >> >>wrote:
>> >> >> >> >
>> >> >> >> >> If you use the -abc option, the DoAbc block(s) will give you
>> >>some
>> >> >> >>clue
>> >> >> >> >>as
>> >> >> >> >> to what the method bodies looked like.  It will look more like
>> >> >> >>assembly
>> >> >> >> >> language than ActionScript, but depending on if it was an
>> >> >>optimized
>> >> >> >> >> release SWF, you can usually figure it out.  To learn the
>> >> >>patterns,
>> >> >> >>look
>> >> >> >> >> at the abc code for some method you do have source for, like a
>> >> >>Flex
>> >> >> >> >>class.
>> >> >> >> >>
>> >> >> >> >> -Alex
>> >> >> >> >>
>> >> >> >> >> On 8/29/14 10:55 AM, "mark goldin" <ma...@gmail.com>
>> >>wrote:
>> >> >> >> >>
>> >> >> >> >> >Ok, I got a dump file. What do I do with it?
>> >> >> >> >> >
>> >> >> >> >> >
>> >> >> >> >> >On Fri, Aug 29, 2014 at 10:20 AM, Alex Harui
>> >><ah...@adobe.com>
>> >> >> >>wrote:
>> >> >> >> >> >
>> >> >> >> >> >> I don't think you can get all the way back to source
>> >>(private
>> >> >> >> >>variable
>> >> >> >> >> >> names for instance) unless you have a debug SWF.  But
>> >>SWFDump
>> >> >>-abc
>> >> >> >> >>will
>> >> >> >> >> >> give you something.
>> >> >> >> >> >>
>> >> >> >> >> >> -Alex
>> >> >> >> >> >>
>> >> >> >> >> >> On 8/29/14 7:59 AM, "mark goldin" <ma...@gmail.com>
>> >> >>wrote:
>> >> >> >> >> >>
>> >> >> >> >> >> >Is it possible to do it? The  source code has been lost. I
>> >> >>tried
>> >> >> >> >> >>Sothink,
>> >> >> >> >> >> >but because it's a module it does not do it.
>> >> >> >> >> >> >
>> >> >> >> >> >> >Thanks
>> >> >> >> >> >>
>> >> >> >> >> >>
>> >> >> >> >>
>> >> >> >> >>
>> >> >> >>
>> >> >> >>
>> >> >>
>> >> >>
>> >>
>> >>
>>
>>
>

Re: Decompile SWF module

Posted by mark goldin <ma...@gmail.com>.
Ok, will do. Thanks


On Fri, Aug 29, 2014 at 2:07 PM, Alex Harui <ah...@adobe.com> wrote:

> Good point.  How tight is your company?  Can you make a test module with a
> few functions and dump that?  Or grab a module demo off the internet and
> dump that?
>
> On 8/29/14 12:03 PM, "mark goldin" <ma...@gmail.com> wrote:
>
> >I am afraid of doing it because it's company's code.
> >
> >
> >On Fri, Aug 29, 2014 at 2:01 PM, Alex Harui <ah...@adobe.com> wrote:
> >
> >> Post the entire dump somewhere on the internet (but not on this mailing
> >> list) and post the link.  Some folks use pastebin and things like that.
> >>
> >> On 8/29/14 11:58 AM, "mark goldin" <ma...@gmail.com> wrote:
> >>
> >> >I dont any line that would have a word function.
> >> >
> >> >
> >> >On Fri, Aug 29, 2014 at 1:54 PM, Alex Harui <ah...@adobe.com> wrote:
> >> >
> >> >> Take a small method that you are sure doesn't contain any
> >>confidential
> >> >> information and post the ABC code.
> >> >>
> >> >> -Alex
> >> >>
> >> >> On 8/29/14 11:50 AM, "mark goldin" <ma...@gmail.com> wrote:
> >> >>
> >> >> >Still not sure I understand what do I do with abc code :(
> >> >> >
> >> >> >
> >> >> >On Fri, Aug 29, 2014 at 1:43 PM, Alex Harui <ah...@adobe.com>
> >>wrote:
> >> >> >
> >> >> >> ABC is ActionScript Byte Code, the compiled output of
> >>ActionScript.
> >> >> >>Each
> >> >> >> Flex module should contain two doABC blocks or more if a debug
> >>SWF.
> >> >>The
> >> >> >> rest of SWFDump output describes other stuff, framerate, fonts,
> >> >>embedded
> >> >> >> graphics, etc.
> >> >> >>
> >> >> >> -Alex
> >> >> >>
> >> >> >> On 8/29/14 11:17 AM, "mark goldin" <ma...@gmail.com> wrote:
> >> >> >>
> >> >> >> >Sorry for stupid question but what DoAbc block(s)  is?
> >> >> >> >
> >> >> >> >
> >> >> >> >On Fri, Aug 29, 2014 at 1:11 PM, Alex Harui <ah...@adobe.com>
> >> >>wrote:
> >> >> >> >
> >> >> >> >> If you use the -abc option, the DoAbc block(s) will give you
> >>some
> >> >> >>clue
> >> >> >> >>as
> >> >> >> >> to what the method bodies looked like.  It will look more like
> >> >> >>assembly
> >> >> >> >> language than ActionScript, but depending on if it was an
> >> >>optimized
> >> >> >> >> release SWF, you can usually figure it out.  To learn the
> >> >>patterns,
> >> >> >>look
> >> >> >> >> at the abc code for some method you do have source for, like a
> >> >>Flex
> >> >> >> >>class.
> >> >> >> >>
> >> >> >> >> -Alex
> >> >> >> >>
> >> >> >> >> On 8/29/14 10:55 AM, "mark goldin" <ma...@gmail.com>
> >>wrote:
> >> >> >> >>
> >> >> >> >> >Ok, I got a dump file. What do I do with it?
> >> >> >> >> >
> >> >> >> >> >
> >> >> >> >> >On Fri, Aug 29, 2014 at 10:20 AM, Alex Harui
> >><ah...@adobe.com>
> >> >> >>wrote:
> >> >> >> >> >
> >> >> >> >> >> I don't think you can get all the way back to source
> >>(private
> >> >> >> >>variable
> >> >> >> >> >> names for instance) unless you have a debug SWF.  But
> >>SWFDump
> >> >>-abc
> >> >> >> >>will
> >> >> >> >> >> give you something.
> >> >> >> >> >>
> >> >> >> >> >> -Alex
> >> >> >> >> >>
> >> >> >> >> >> On 8/29/14 7:59 AM, "mark goldin" <ma...@gmail.com>
> >> >>wrote:
> >> >> >> >> >>
> >> >> >> >> >> >Is it possible to do it? The  source code has been lost. I
> >> >>tried
> >> >> >> >> >>Sothink,
> >> >> >> >> >> >but because it's a module it does not do it.
> >> >> >> >> >> >
> >> >> >> >> >> >Thanks
> >> >> >> >> >>
> >> >> >> >> >>
> >> >> >> >>
> >> >> >> >>
> >> >> >>
> >> >> >>
> >> >>
> >> >>
> >>
> >>
>
>

Re: Decompile SWF module

Posted by Alex Harui <ah...@adobe.com>.
Good point.  How tight is your company?  Can you make a test module with a
few functions and dump that?  Or grab a module demo off the internet and
dump that?

On 8/29/14 12:03 PM, "mark goldin" <ma...@gmail.com> wrote:

>I am afraid of doing it because it's company's code.
>
>
>On Fri, Aug 29, 2014 at 2:01 PM, Alex Harui <ah...@adobe.com> wrote:
>
>> Post the entire dump somewhere on the internet (but not on this mailing
>> list) and post the link.  Some folks use pastebin and things like that.
>>
>> On 8/29/14 11:58 AM, "mark goldin" <ma...@gmail.com> wrote:
>>
>> >I dont any line that would have a word function.
>> >
>> >
>> >On Fri, Aug 29, 2014 at 1:54 PM, Alex Harui <ah...@adobe.com> wrote:
>> >
>> >> Take a small method that you are sure doesn't contain any
>>confidential
>> >> information and post the ABC code.
>> >>
>> >> -Alex
>> >>
>> >> On 8/29/14 11:50 AM, "mark goldin" <ma...@gmail.com> wrote:
>> >>
>> >> >Still not sure I understand what do I do with abc code :(
>> >> >
>> >> >
>> >> >On Fri, Aug 29, 2014 at 1:43 PM, Alex Harui <ah...@adobe.com>
>>wrote:
>> >> >
>> >> >> ABC is ActionScript Byte Code, the compiled output of
>>ActionScript.
>> >> >>Each
>> >> >> Flex module should contain two doABC blocks or more if a debug
>>SWF.
>> >>The
>> >> >> rest of SWFDump output describes other stuff, framerate, fonts,
>> >>embedded
>> >> >> graphics, etc.
>> >> >>
>> >> >> -Alex
>> >> >>
>> >> >> On 8/29/14 11:17 AM, "mark goldin" <ma...@gmail.com> wrote:
>> >> >>
>> >> >> >Sorry for stupid question but what DoAbc block(s)  is?
>> >> >> >
>> >> >> >
>> >> >> >On Fri, Aug 29, 2014 at 1:11 PM, Alex Harui <ah...@adobe.com>
>> >>wrote:
>> >> >> >
>> >> >> >> If you use the -abc option, the DoAbc block(s) will give you
>>some
>> >> >>clue
>> >> >> >>as
>> >> >> >> to what the method bodies looked like.  It will look more like
>> >> >>assembly
>> >> >> >> language than ActionScript, but depending on if it was an
>> >>optimized
>> >> >> >> release SWF, you can usually figure it out.  To learn the
>> >>patterns,
>> >> >>look
>> >> >> >> at the abc code for some method you do have source for, like a
>> >>Flex
>> >> >> >>class.
>> >> >> >>
>> >> >> >> -Alex
>> >> >> >>
>> >> >> >> On 8/29/14 10:55 AM, "mark goldin" <ma...@gmail.com>
>>wrote:
>> >> >> >>
>> >> >> >> >Ok, I got a dump file. What do I do with it?
>> >> >> >> >
>> >> >> >> >
>> >> >> >> >On Fri, Aug 29, 2014 at 10:20 AM, Alex Harui
>><ah...@adobe.com>
>> >> >>wrote:
>> >> >> >> >
>> >> >> >> >> I don't think you can get all the way back to source
>>(private
>> >> >> >>variable
>> >> >> >> >> names for instance) unless you have a debug SWF.  But
>>SWFDump
>> >>-abc
>> >> >> >>will
>> >> >> >> >> give you something.
>> >> >> >> >>
>> >> >> >> >> -Alex
>> >> >> >> >>
>> >> >> >> >> On 8/29/14 7:59 AM, "mark goldin" <ma...@gmail.com>
>> >>wrote:
>> >> >> >> >>
>> >> >> >> >> >Is it possible to do it? The  source code has been lost. I
>> >>tried
>> >> >> >> >>Sothink,
>> >> >> >> >> >but because it's a module it does not do it.
>> >> >> >> >> >
>> >> >> >> >> >Thanks
>> >> >> >> >>
>> >> >> >> >>
>> >> >> >>
>> >> >> >>
>> >> >>
>> >> >>
>> >>
>> >>
>>
>>


Re: Decompile SWF module

Posted by mark goldin <ma...@gmail.com>.
I am afraid of doing it because it's company's code.


On Fri, Aug 29, 2014 at 2:01 PM, Alex Harui <ah...@adobe.com> wrote:

> Post the entire dump somewhere on the internet (but not on this mailing
> list) and post the link.  Some folks use pastebin and things like that.
>
> On 8/29/14 11:58 AM, "mark goldin" <ma...@gmail.com> wrote:
>
> >I dont any line that would have a word function.
> >
> >
> >On Fri, Aug 29, 2014 at 1:54 PM, Alex Harui <ah...@adobe.com> wrote:
> >
> >> Take a small method that you are sure doesn't contain any confidential
> >> information and post the ABC code.
> >>
> >> -Alex
> >>
> >> On 8/29/14 11:50 AM, "mark goldin" <ma...@gmail.com> wrote:
> >>
> >> >Still not sure I understand what do I do with abc code :(
> >> >
> >> >
> >> >On Fri, Aug 29, 2014 at 1:43 PM, Alex Harui <ah...@adobe.com> wrote:
> >> >
> >> >> ABC is ActionScript Byte Code, the compiled output of ActionScript.
> >> >>Each
> >> >> Flex module should contain two doABC blocks or more if a debug SWF.
> >>The
> >> >> rest of SWFDump output describes other stuff, framerate, fonts,
> >>embedded
> >> >> graphics, etc.
> >> >>
> >> >> -Alex
> >> >>
> >> >> On 8/29/14 11:17 AM, "mark goldin" <ma...@gmail.com> wrote:
> >> >>
> >> >> >Sorry for stupid question but what DoAbc block(s)  is?
> >> >> >
> >> >> >
> >> >> >On Fri, Aug 29, 2014 at 1:11 PM, Alex Harui <ah...@adobe.com>
> >>wrote:
> >> >> >
> >> >> >> If you use the -abc option, the DoAbc block(s) will give you some
> >> >>clue
> >> >> >>as
> >> >> >> to what the method bodies looked like.  It will look more like
> >> >>assembly
> >> >> >> language than ActionScript, but depending on if it was an
> >>optimized
> >> >> >> release SWF, you can usually figure it out.  To learn the
> >>patterns,
> >> >>look
> >> >> >> at the abc code for some method you do have source for, like a
> >>Flex
> >> >> >>class.
> >> >> >>
> >> >> >> -Alex
> >> >> >>
> >> >> >> On 8/29/14 10:55 AM, "mark goldin" <ma...@gmail.com> wrote:
> >> >> >>
> >> >> >> >Ok, I got a dump file. What do I do with it?
> >> >> >> >
> >> >> >> >
> >> >> >> >On Fri, Aug 29, 2014 at 10:20 AM, Alex Harui <ah...@adobe.com>
> >> >>wrote:
> >> >> >> >
> >> >> >> >> I don't think you can get all the way back to source (private
> >> >> >>variable
> >> >> >> >> names for instance) unless you have a debug SWF.  But SWFDump
> >>-abc
> >> >> >>will
> >> >> >> >> give you something.
> >> >> >> >>
> >> >> >> >> -Alex
> >> >> >> >>
> >> >> >> >> On 8/29/14 7:59 AM, "mark goldin" <ma...@gmail.com>
> >>wrote:
> >> >> >> >>
> >> >> >> >> >Is it possible to do it? The  source code has been lost. I
> >>tried
> >> >> >> >>Sothink,
> >> >> >> >> >but because it's a module it does not do it.
> >> >> >> >> >
> >> >> >> >> >Thanks
> >> >> >> >>
> >> >> >> >>
> >> >> >>
> >> >> >>
> >> >>
> >> >>
> >>
> >>
>
>

Re: Decompile SWF module

Posted by Alex Harui <ah...@adobe.com>.
Post the entire dump somewhere on the internet (but not on this mailing
list) and post the link.  Some folks use pastebin and things like that.

On 8/29/14 11:58 AM, "mark goldin" <ma...@gmail.com> wrote:

>I dont any line that would have a word function.
>
>
>On Fri, Aug 29, 2014 at 1:54 PM, Alex Harui <ah...@adobe.com> wrote:
>
>> Take a small method that you are sure doesn't contain any confidential
>> information and post the ABC code.
>>
>> -Alex
>>
>> On 8/29/14 11:50 AM, "mark goldin" <ma...@gmail.com> wrote:
>>
>> >Still not sure I understand what do I do with abc code :(
>> >
>> >
>> >On Fri, Aug 29, 2014 at 1:43 PM, Alex Harui <ah...@adobe.com> wrote:
>> >
>> >> ABC is ActionScript Byte Code, the compiled output of ActionScript.
>> >>Each
>> >> Flex module should contain two doABC blocks or more if a debug SWF.
>>The
>> >> rest of SWFDump output describes other stuff, framerate, fonts,
>>embedded
>> >> graphics, etc.
>> >>
>> >> -Alex
>> >>
>> >> On 8/29/14 11:17 AM, "mark goldin" <ma...@gmail.com> wrote:
>> >>
>> >> >Sorry for stupid question but what DoAbc block(s)  is?
>> >> >
>> >> >
>> >> >On Fri, Aug 29, 2014 at 1:11 PM, Alex Harui <ah...@adobe.com>
>>wrote:
>> >> >
>> >> >> If you use the -abc option, the DoAbc block(s) will give you some
>> >>clue
>> >> >>as
>> >> >> to what the method bodies looked like.  It will look more like
>> >>assembly
>> >> >> language than ActionScript, but depending on if it was an
>>optimized
>> >> >> release SWF, you can usually figure it out.  To learn the
>>patterns,
>> >>look
>> >> >> at the abc code for some method you do have source for, like a
>>Flex
>> >> >>class.
>> >> >>
>> >> >> -Alex
>> >> >>
>> >> >> On 8/29/14 10:55 AM, "mark goldin" <ma...@gmail.com> wrote:
>> >> >>
>> >> >> >Ok, I got a dump file. What do I do with it?
>> >> >> >
>> >> >> >
>> >> >> >On Fri, Aug 29, 2014 at 10:20 AM, Alex Harui <ah...@adobe.com>
>> >>wrote:
>> >> >> >
>> >> >> >> I don't think you can get all the way back to source (private
>> >> >>variable
>> >> >> >> names for instance) unless you have a debug SWF.  But SWFDump
>>-abc
>> >> >>will
>> >> >> >> give you something.
>> >> >> >>
>> >> >> >> -Alex
>> >> >> >>
>> >> >> >> On 8/29/14 7:59 AM, "mark goldin" <ma...@gmail.com>
>>wrote:
>> >> >> >>
>> >> >> >> >Is it possible to do it? The  source code has been lost. I
>>tried
>> >> >> >>Sothink,
>> >> >> >> >but because it's a module it does not do it.
>> >> >> >> >
>> >> >> >> >Thanks
>> >> >> >>
>> >> >> >>
>> >> >>
>> >> >>
>> >>
>> >>
>>
>>


Re: Decompile SWF module

Posted by mark goldin <ma...@gmail.com>.
I dont any line that would have a word function.


On Fri, Aug 29, 2014 at 1:54 PM, Alex Harui <ah...@adobe.com> wrote:

> Take a small method that you are sure doesn't contain any confidential
> information and post the ABC code.
>
> -Alex
>
> On 8/29/14 11:50 AM, "mark goldin" <ma...@gmail.com> wrote:
>
> >Still not sure I understand what do I do with abc code :(
> >
> >
> >On Fri, Aug 29, 2014 at 1:43 PM, Alex Harui <ah...@adobe.com> wrote:
> >
> >> ABC is ActionScript Byte Code, the compiled output of ActionScript.
> >>Each
> >> Flex module should contain two doABC blocks or more if a debug SWF.  The
> >> rest of SWFDump output describes other stuff, framerate, fonts, embedded
> >> graphics, etc.
> >>
> >> -Alex
> >>
> >> On 8/29/14 11:17 AM, "mark goldin" <ma...@gmail.com> wrote:
> >>
> >> >Sorry for stupid question but what DoAbc block(s)  is?
> >> >
> >> >
> >> >On Fri, Aug 29, 2014 at 1:11 PM, Alex Harui <ah...@adobe.com> wrote:
> >> >
> >> >> If you use the -abc option, the DoAbc block(s) will give you some
> >>clue
> >> >>as
> >> >> to what the method bodies looked like.  It will look more like
> >>assembly
> >> >> language than ActionScript, but depending on if it was an optimized
> >> >> release SWF, you can usually figure it out.  To learn the patterns,
> >>look
> >> >> at the abc code for some method you do have source for, like a Flex
> >> >>class.
> >> >>
> >> >> -Alex
> >> >>
> >> >> On 8/29/14 10:55 AM, "mark goldin" <ma...@gmail.com> wrote:
> >> >>
> >> >> >Ok, I got a dump file. What do I do with it?
> >> >> >
> >> >> >
> >> >> >On Fri, Aug 29, 2014 at 10:20 AM, Alex Harui <ah...@adobe.com>
> >>wrote:
> >> >> >
> >> >> >> I don't think you can get all the way back to source (private
> >> >>variable
> >> >> >> names for instance) unless you have a debug SWF.  But SWFDump -abc
> >> >>will
> >> >> >> give you something.
> >> >> >>
> >> >> >> -Alex
> >> >> >>
> >> >> >> On 8/29/14 7:59 AM, "mark goldin" <ma...@gmail.com> wrote:
> >> >> >>
> >> >> >> >Is it possible to do it? The  source code has been lost. I tried
> >> >> >>Sothink,
> >> >> >> >but because it's a module it does not do it.
> >> >> >> >
> >> >> >> >Thanks
> >> >> >>
> >> >> >>
> >> >>
> >> >>
> >>
> >>
>
>

Re: Decompile SWF module

Posted by Alex Harui <ah...@adobe.com>.
Take a small method that you are sure doesn't contain any confidential
information and post the ABC code.

-Alex

On 8/29/14 11:50 AM, "mark goldin" <ma...@gmail.com> wrote:

>Still not sure I understand what do I do with abc code :(
>
>
>On Fri, Aug 29, 2014 at 1:43 PM, Alex Harui <ah...@adobe.com> wrote:
>
>> ABC is ActionScript Byte Code, the compiled output of ActionScript.
>>Each
>> Flex module should contain two doABC blocks or more if a debug SWF.  The
>> rest of SWFDump output describes other stuff, framerate, fonts, embedded
>> graphics, etc.
>>
>> -Alex
>>
>> On 8/29/14 11:17 AM, "mark goldin" <ma...@gmail.com> wrote:
>>
>> >Sorry for stupid question but what DoAbc block(s)  is?
>> >
>> >
>> >On Fri, Aug 29, 2014 at 1:11 PM, Alex Harui <ah...@adobe.com> wrote:
>> >
>> >> If you use the -abc option, the DoAbc block(s) will give you some
>>clue
>> >>as
>> >> to what the method bodies looked like.  It will look more like
>>assembly
>> >> language than ActionScript, but depending on if it was an optimized
>> >> release SWF, you can usually figure it out.  To learn the patterns,
>>look
>> >> at the abc code for some method you do have source for, like a Flex
>> >>class.
>> >>
>> >> -Alex
>> >>
>> >> On 8/29/14 10:55 AM, "mark goldin" <ma...@gmail.com> wrote:
>> >>
>> >> >Ok, I got a dump file. What do I do with it?
>> >> >
>> >> >
>> >> >On Fri, Aug 29, 2014 at 10:20 AM, Alex Harui <ah...@adobe.com>
>>wrote:
>> >> >
>> >> >> I don't think you can get all the way back to source (private
>> >>variable
>> >> >> names for instance) unless you have a debug SWF.  But SWFDump -abc
>> >>will
>> >> >> give you something.
>> >> >>
>> >> >> -Alex
>> >> >>
>> >> >> On 8/29/14 7:59 AM, "mark goldin" <ma...@gmail.com> wrote:
>> >> >>
>> >> >> >Is it possible to do it? The  source code has been lost. I tried
>> >> >>Sothink,
>> >> >> >but because it's a module it does not do it.
>> >> >> >
>> >> >> >Thanks
>> >> >>
>> >> >>
>> >>
>> >>
>>
>>


Re: Decompile SWF module

Posted by mark goldin <ma...@gmail.com>.
Still not sure I understand what do I do with abc code :(


On Fri, Aug 29, 2014 at 1:43 PM, Alex Harui <ah...@adobe.com> wrote:

> ABC is ActionScript Byte Code, the compiled output of ActionScript.  Each
> Flex module should contain two doABC blocks or more if a debug SWF.  The
> rest of SWFDump output describes other stuff, framerate, fonts, embedded
> graphics, etc.
>
> -Alex
>
> On 8/29/14 11:17 AM, "mark goldin" <ma...@gmail.com> wrote:
>
> >Sorry for stupid question but what DoAbc block(s)  is?
> >
> >
> >On Fri, Aug 29, 2014 at 1:11 PM, Alex Harui <ah...@adobe.com> wrote:
> >
> >> If you use the -abc option, the DoAbc block(s) will give you some clue
> >>as
> >> to what the method bodies looked like.  It will look more like assembly
> >> language than ActionScript, but depending on if it was an optimized
> >> release SWF, you can usually figure it out.  To learn the patterns, look
> >> at the abc code for some method you do have source for, like a Flex
> >>class.
> >>
> >> -Alex
> >>
> >> On 8/29/14 10:55 AM, "mark goldin" <ma...@gmail.com> wrote:
> >>
> >> >Ok, I got a dump file. What do I do with it?
> >> >
> >> >
> >> >On Fri, Aug 29, 2014 at 10:20 AM, Alex Harui <ah...@adobe.com> wrote:
> >> >
> >> >> I don't think you can get all the way back to source (private
> >>variable
> >> >> names for instance) unless you have a debug SWF.  But SWFDump -abc
> >>will
> >> >> give you something.
> >> >>
> >> >> -Alex
> >> >>
> >> >> On 8/29/14 7:59 AM, "mark goldin" <ma...@gmail.com> wrote:
> >> >>
> >> >> >Is it possible to do it? The  source code has been lost. I tried
> >> >>Sothink,
> >> >> >but because it's a module it does not do it.
> >> >> >
> >> >> >Thanks
> >> >>
> >> >>
> >>
> >>
>
>

Re: Decompile SWF module

Posted by Alex Harui <ah...@adobe.com>.
ABC is ActionScript Byte Code, the compiled output of ActionScript.  Each
Flex module should contain two doABC blocks or more if a debug SWF.  The
rest of SWFDump output describes other stuff, framerate, fonts, embedded
graphics, etc.

-Alex

On 8/29/14 11:17 AM, "mark goldin" <ma...@gmail.com> wrote:

>Sorry for stupid question but what DoAbc block(s)  is?
>
>
>On Fri, Aug 29, 2014 at 1:11 PM, Alex Harui <ah...@adobe.com> wrote:
>
>> If you use the -abc option, the DoAbc block(s) will give you some clue
>>as
>> to what the method bodies looked like.  It will look more like assembly
>> language than ActionScript, but depending on if it was an optimized
>> release SWF, you can usually figure it out.  To learn the patterns, look
>> at the abc code for some method you do have source for, like a Flex
>>class.
>>
>> -Alex
>>
>> On 8/29/14 10:55 AM, "mark goldin" <ma...@gmail.com> wrote:
>>
>> >Ok, I got a dump file. What do I do with it?
>> >
>> >
>> >On Fri, Aug 29, 2014 at 10:20 AM, Alex Harui <ah...@adobe.com> wrote:
>> >
>> >> I don't think you can get all the way back to source (private
>>variable
>> >> names for instance) unless you have a debug SWF.  But SWFDump -abc
>>will
>> >> give you something.
>> >>
>> >> -Alex
>> >>
>> >> On 8/29/14 7:59 AM, "mark goldin" <ma...@gmail.com> wrote:
>> >>
>> >> >Is it possible to do it? The  source code has been lost. I tried
>> >>Sothink,
>> >> >but because it's a module it does not do it.
>> >> >
>> >> >Thanks
>> >>
>> >>
>>
>>


Re: Decompile SWF module

Posted by mark goldin <ma...@gmail.com>.
Sorry for stupid question but what DoAbc block(s)  is?


On Fri, Aug 29, 2014 at 1:11 PM, Alex Harui <ah...@adobe.com> wrote:

> If you use the -abc option, the DoAbc block(s) will give you some clue as
> to what the method bodies looked like.  It will look more like assembly
> language than ActionScript, but depending on if it was an optimized
> release SWF, you can usually figure it out.  To learn the patterns, look
> at the abc code for some method you do have source for, like a Flex class.
>
> -Alex
>
> On 8/29/14 10:55 AM, "mark goldin" <ma...@gmail.com> wrote:
>
> >Ok, I got a dump file. What do I do with it?
> >
> >
> >On Fri, Aug 29, 2014 at 10:20 AM, Alex Harui <ah...@adobe.com> wrote:
> >
> >> I don't think you can get all the way back to source (private variable
> >> names for instance) unless you have a debug SWF.  But SWFDump -abc will
> >> give you something.
> >>
> >> -Alex
> >>
> >> On 8/29/14 7:59 AM, "mark goldin" <ma...@gmail.com> wrote:
> >>
> >> >Is it possible to do it? The  source code has been lost. I tried
> >>Sothink,
> >> >but because it's a module it does not do it.
> >> >
> >> >Thanks
> >>
> >>
>
>

Re: Decompile SWF module

Posted by Alex Harui <ah...@adobe.com>.
If you use the -abc option, the DoAbc block(s) will give you some clue as
to what the method bodies looked like.  It will look more like assembly
language than ActionScript, but depending on if it was an optimized
release SWF, you can usually figure it out.  To learn the patterns, look
at the abc code for some method you do have source for, like a Flex class.

-Alex

On 8/29/14 10:55 AM, "mark goldin" <ma...@gmail.com> wrote:

>Ok, I got a dump file. What do I do with it?
>
>
>On Fri, Aug 29, 2014 at 10:20 AM, Alex Harui <ah...@adobe.com> wrote:
>
>> I don't think you can get all the way back to source (private variable
>> names for instance) unless you have a debug SWF.  But SWFDump -abc will
>> give you something.
>>
>> -Alex
>>
>> On 8/29/14 7:59 AM, "mark goldin" <ma...@gmail.com> wrote:
>>
>> >Is it possible to do it? The  source code has been lost. I tried
>>Sothink,
>> >but because it's a module it does not do it.
>> >
>> >Thanks
>>
>>


Re: Decompile SWF module

Posted by mark goldin <ma...@gmail.com>.
Ok, I got a dump file. What do I do with it?


On Fri, Aug 29, 2014 at 10:20 AM, Alex Harui <ah...@adobe.com> wrote:

> I don't think you can get all the way back to source (private variable
> names for instance) unless you have a debug SWF.  But SWFDump -abc will
> give you something.
>
> -Alex
>
> On 8/29/14 7:59 AM, "mark goldin" <ma...@gmail.com> wrote:
>
> >Is it possible to do it? The  source code has been lost. I tried Sothink,
> >but because it's a module it does not do it.
> >
> >Thanks
>
>

Re: Decompile SWF module

Posted by Alex Harui <ah...@adobe.com>.
I don't think you can get all the way back to source (private variable
names for instance) unless you have a debug SWF.  But SWFDump -abc will
give you something.

-Alex

On 8/29/14 7:59 AM, "mark goldin" <ma...@gmail.com> wrote:

>Is it possible to do it? The  source code has been lost. I tried Sothink,
>but because it's a module it does not do it.
>
>Thanks