I'm not sure the Decompiler fully answers the question. SWFDump would be better, maybe it is having problems with spaces in path names or with JAVA_TOOL_OPTIONS not setting the default file encoding to UTF-8.
The goal is to see which scripts are on which frame, and maybe look at the code itself to see why it may not try to verify the Application class. -Alex On 7/17/19, 8:31 PM, "Ramazan Ergüder Bekrek" <[email protected]> wrote: Here is a 2 frames view of JPEXS Decompiler : https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fpasteboard.co%2FIoumcP0.png&data=02%7C01%7Caharui%40adobe.com%7Cacca8cac00eb4603ec2c08d70b306694%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C1%7C636990174824334757&sdata=fcIx3eORWOGv7Ob5eeDY5%2BlSfpLwTCGKsT4gWcexqrI%3D&reserved=0 18.07.2019, 05:28, "Ramazan Ergüder Bekrek" <[email protected]>: > This is what I get: > > swfdump -abc gravity_shared_flex-flex450.swf > Error: Could not find or load main class 4.16.1 > > 18.07.2019, 03:40, "Alex Harui" <[email protected]>: >> RSL Loaders might be two-frame SWFs where the first frame loads the RSLs before switching to the second frame. >> >> Run swfdump -abc on the one that works and see if it is multi-frame. >> >> HTH, >> -Alex >> >> On 7/17/19, 5:51 PM, "Ramazan Ergüder Bekrek" <[email protected]> wrote: >> >> In my case I get a VerifyError when ever I compile a release version of my custom RSLs loader which in it has a reference to spark application which cannot be used because once all the RSLs are loader including framework.swf then the class definition for sparks.components.Application can be added added. Somehow the version of gravity_shared_flex.swf from Adobe doesn't have that VerifiyError issue. >> >> 18.07.2019, 00:35, "Alex Harui" <[email protected]>: >> > Classes are only verified before first use. If no code paths ever get around to executing code that references a class, that class will never be verified. >> > >> > HTH, >> > -Alex >> > >> > On 7/17/19, 10:53 AM, "Ramazan Ergüder Bekrek" <[email protected]> wrote: >> > >> > Greetings again! >> > >> > I have special use case that I would like to be able to reproduce and as an inspiration I took one specific SWF file which is part of the >> > ADEP Gravity Client Component Framework which is an adaptation of the OSGi runtime in Actionscript 3.0. >> > >> > The file in question can be seen in this video https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fyoutu.be%2Fg_Y4PmR_L1w%3Ft%3D379&data=02%7C01%7Caharui%40adobe.com%7Cacca8cac00eb4603ec2c08d70b306694%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C1%7C636990174824334757&sdata=IgUYjQcN05H7h7VgAQQHmrpDkeQOYcR31mTR3YKDauQ%3D&reserved=0. >> > I'm talking about the gravity_shared_flex-flex450.swf which is a special RSLs loader. >> > That file is loaded first by Gravity as a bundle in memory before any RSLs are handled. In that SWF there is a GravitySystemManager class that extends SystemManager. That custom SystemManager first loads all the RSLs and then adds the GravitySparkApplication on the display list. >> > >> > The problem that I'am having while trying to reproduce the same mechanism is that inside that SWF there is a GravitySparkApplicationclass that extends the Application from Apache Flex. Although that the Application class is not compiled in that SWF it has no problem loading in memory and there is no VerifyError that says the spark.components.Application was not found. >> > >> > My intuition tells me that there is a special mxmlc compiler option when used in an SWF compilation that tells the Flash Player to skip any kind of class verification. >> > >> > My question is how did Adobe managed to compile an SWF which is referencing spark.components.Application as an external reference when that external reference comes into existence after the RSLs are loaded by gravity_shared_flex-flex450.swf which itself cannot be loaded before the RSLs? >> > >> > I hope that my question is clear.
