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" <markzolo...@gmail.com> wrote: >Here: >http://pastebin.com/bAWAx8wf > > >On Fri, Aug 29, 2014 at 3:25 PM, Alex Harui <aha...@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" <markzolo...@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 <aha...@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" <markzolo...@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 <markzolo...@gmail.com> >> >> >wrote: >> >> > >> >> >> Ok, will do. Thanks >> >> >> >> >> >> >> >> >> On Fri, Aug 29, 2014 at 2:07 PM, Alex Harui <aha...@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" <markzolo...@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 <aha...@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" <markzolo...@gmail.com> >> wrote: >> >> >>> >> >> >> >>> >> >I dont any line that would have a word function. >> >> >>> >> > >> >> >>> >> > >> >> >>> >> >On Fri, Aug 29, 2014 at 1:54 PM, Alex Harui >><aha...@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" <markzolo...@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 >> >><aha...@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" >><markzolo...@gmail.com> >> >> >>> wrote: >> >> >>> >> >> >> >> >> >>> >> >> >> >Sorry for stupid question but what DoAbc block(s) is? >> >> >>> >> >> >> > >> >> >>> >> >> >> > >> >> >>> >> >> >> >On Fri, Aug 29, 2014 at 1:11 PM, Alex Harui >> >> >>><aha...@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" >> >><markzolo...@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 >> >> >>> >><aha...@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" >> >> >>><markzolo...@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 >> >> >>> >> >> >> >> >> >> >> >>> >> >> >> >> >> >> >> >>> >> >> >> >> >> >> >>> >> >> >> >> >> >> >>> >> >> >> >> >> >>> >> >> >> >> >> >>> >> >> >> >> >>> >> >> >> >> >>> >> >> >> >>> >> >> >> >>> >> >> >>> >> >> >> >> >> >> >> >> >>