Hi There's no compilation option to get something to skip verification, the verification is a setting within the FP/AIR runtime itself and it's always set to verify on a function-by-function basis when a function is first used; a class definition is treated as a function here as is the main script within a swf that defines the classes it contains (take a look at the decompiler output from SwfInvestigator to see what it's actually doing..). For more details on verification you can always look at the source code for the ActionScript virtual machine on github...
When you're using libraries that don't contain the code themselves but your application is referencing these classes - and if those libraries then can't be loaded or are different from the ones you compiled against - then you can get verify errors. In terms of your initial query at the bottom of this email chain: 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. When the working code runs, you can be sure that before it gets to the creation of the GravitySparkApplication class, it already knows about the definition for spark.components.Application from somewhere, presumably from the RSLs that are loaded. So within your mechanism, you'll need to know what the dependencies are and make sure you load the appropriate RSL file... you can perhaps catch the first VerifyError and examine it to see what class definition it's missing, and then load in the definitions before re-trying? Bit of a hacky method though! HTH thanks Andrew -----Original Message----- From: Ramazan Ergüder Bekrek <[email protected]> Sent: 19 July 2019 13:58 To: [email protected] Subject: [EXTERNAL] Re: How to compile an SWF to bypass any VerifyError for non-existing classes inside of that SWF Can somebody ask Adobe's team to provide the compilation-config.xml file so that I can reproduce the same behavior from skipping the VerifyError messages that I get? 18.07.2019, 13:02, "Ramazan Ergüder Bekrek" <[email protected]>: > What I did is to download the latest Apache Flex SDK like described here : > https://clicktime.symantec.com/3BTJU3QcNQsoYtj67NrdNS97Vc?u=http%3A%2F%2Fflex.apache.org%2Fdev-sourcecode.html > > I modified the mx.managers.SystemManager like the following: > > mx_internal function initialize():void > { > var runtimeDPIProviderClass:Class = info()["runtimeDPIProvider"] as > Class; > if (runtimeDPIProviderClass) > Singleton.registerClass("mx.core::RuntimeDPIProvider", > runtimeDPIProviderClass); > > if (isStageRoot) > { > // TODO: Finalize scaling behavior > Stage_resizeHandler(); > // _width = stage.stageWidth; > // _height = stage.stageHeight; > } > else > { > _width = loaderInfo.width; > _height = loaderInfo.height; > } > > // Create an instance of the preloader and add it to the stage > preloader = new Preloader(); > > // Listen for preloader events > // preloader notifes when it is ok to go to frame2 > preloader.addEventListener(FlexEvent.PRELOADER_DOC_FRAME_READY, > preloader_preloaderDocFrameReadyHandler); > // wait for a complete event. This gives the preloader > // a chance to load resource modules before > // everything really gets kicked off > preloader.addEventListener(Event.COMPLETE, > preloader_completeHandler); > // when the app is fully backed remove the preloader and show the app > preloader.addEventListener(FlexEvent.PRELOADER_DONE, > preloader_preloaderDoneHandler); > preloader.addEventListener(RSLEvent.RSL_COMPLETE, > preloader_rslCompleteHandler); > > // Add the preloader as a child. Use backing variable because when > loaded > // we redirect public API to parent systemmanager > if (!_popUpChildren) > { > _popUpChildren = new SystemChildrenList( > this, new QName(mx_internal, "noTopMostIndex"), new > QName(mx_internal, "topMostIndex")); > } > _popUpChildren.addChild(preloader); > > var rsls:Array = info()["rsls"]; > var cdRsls:Array = info()["cdRsls"]; > var usePreloader:Boolean = true; > if (info()["usePreloader"] != undefined) > usePreloader = info()["usePreloader"]; > > var preloaderDisplayClass:Class = info()["preloader"] as Class; > > // Put cross-domain RSL information in the RSL list. > var rslItemList:Array = []; > var n:int; > var i:int; > if (cdRsls && cdRsls.length > 0) > { > if (isTopLevel()) > rslDataList = cdRsls; > else > rslDataList = LoaderUtil.processRequiredRSLs(this, cdRsls); > > var normalizedURL:String = > LoaderUtil.normalizeURL(this.loaderInfo); > var crossDomainRSLItem:Class = getRSLItemDefinitionClass(); > n = rslDataList.length; > for (i = 0; i < n; i++) > { > var rslWithFailovers:Array = rslDataList[i]; > > // If crossDomainRSLItem is null, then this is a compiler > error. It should not be null. > var cdNode:Object = instanciateRSLItem(crossDomainRSLItem, > rslWithFailovers, normalizedURL, this); > rslItemList.push(cdNode); > } > } > > // Append RSL information in the RSL list. > if (rsls != null && rsls.length > 0) > { > if (rslDataList == null) > rslDataList = []; > > if (normalizedURL == null) > normalizedURL = LoaderUtil.normalizeURL(this.loaderInfo); > > n = rsls.length; > for (i = 0; i < n; i++) > { > var node:RSLItem = new > RSLItem(rsls[i].url,normalizedURL,this); > rslItemList.push(node); > rslDataList.push([new RSLData(rsls[i].url, null, null, null, > false, false, "current")]); > } > } > > // They can also specify a comma-separated list of URLs > // for resource modules to be preloaded during frame 1. > var resourceModuleURLList:String = > loaderInfo.parameters["resourceModuleURLs"]; > var resourceModuleURLs:Array = > resourceModuleURLList ? resourceModuleURLList.split(",") : null; > > var domain:ApplicationDomain = > !topLevel && parent is Loader ? > Loader(parent).contentLoaderInfo.applicationDomain : > info()["currentDomain"] as ApplicationDomain; > > // Initialize the preloader. > preloader.initialize( > usePreloader, > preloaderDisplayClass, > preloaderBackgroundColor, > preloaderBackgroundAlpha, > preloaderBackgroundImage, > preloaderBackgroundSize, > isStageRoot ? stage.stageWidth : loaderInfo.width, > isStageRoot ? stage.stageHeight : loaderInfo.height, > null, > null, > rslItemList, > resourceModuleURLs, > domain); > } > > protected function getRSLItemDefinitionClass():Class{ > return > Class(getDefinitionByName("mx.core::CrossDomainRSLItem")); > } > > protected function instanciateRSLItem(clazz:Class, > rslWithFailovers:Array, rootURL:String=null, > moduleFactory:IFlexModuleFactory=null):RSLItem{ > return new clazz(rslWithFailovers, rootURL, moduleFactory); > } > > To test if my modification works I recompiled the whole SDK and changed my > GravitySystemManager class like the following: > > .... > > public class GravitySystemManager extends SystemManager implements > IBundleActivator > { > > .... > .... > .... > > override protected function getRSLItemDefinitionClass():Class{ > return > Class(getDefinitionByName("mx.core::NetworkCrossDomainRSLItem")); > } > > override protected function instanciateRSLItem(clazz:Class, > rslWithFailovers:Array, rootURL:String=null, > moduleFactory:IFlexModuleFactory=null):RSLItem{ > return new clazz(_AppPath, _appConfigs, rslWithFailovers, > rootURL, this) as NetworkCrossDomainRSLItem; > } > > I am still getting this VerifyError erro flooding: > > [SWF] Multiverses.swf/[[DYNAMIC]]/1/[[DYNAMIC]]/2/[[DYNAMIC]]/4 - 424,247 > bytes after decompression > VerifyError: Error #1053: Illegal override of getRSLItemDefinitionClass in > _gravity_shared_flex_com_adobe_gravity_internals_flex_ui_GravitySystemManager. > ReferenceError: Error #1065: Variable > _gravity_shared_flex_com_adobe_gravity_internals_flex_ui_GravitySystemManager > is not defined. > VerifyError: Error #1014: Class spark.components::Application could not be > found. > VerifyError: Error #1014: Class > com.adobe.gravity.internals.flex.ui::GravitySparkApplication could not be > found. > VerifyError: Error #1014: Class mx.core::UIComponent could not be found. > VerifyError: Error #1014: Class > com.adobe.gravity.flex.serviceloader::UIServiceBase could not be found. > VerifyError: Error #1014: Class > com.adobe.gravity.internals.flex.ui::GravityApplication could not be found. > VerifyError: Error #1014: Class mx.core::UIComponent could not be found. > VerifyError: Error #1014: Class mx.managers::SystemManagerProxy could not be > found. > VerifyError: Error #1014: Class mx.core::SpriteAsset could not be found. > VerifyError: Error #1014: Class mx.core::SpriteAsset could not be found. > VerifyError: Error #1014: Class mx.core::SpriteAsset could not be found. > VerifyError: Error #1014: Class mx.core::SpriteAsset could not be found. > VerifyError: Error #1014: Class mx.core::SpriteAsset could not be found. > VerifyError: Error #1014: Class mx.core::SpriteAsset could not be found. > VerifyError: Error #1014: Class mx.core::SpriteAsset could not be found. > VerifyError: Error #1014: Class mx.core::BitmapAsset could not be found. > VerifyError: Error #1014: Class mx.core::SpriteAsset could not be found. > VerifyError: Error #1014: Class mx.core::SpriteAsset could not be found. > VerifyError: Error #1014: Class mx.core::SpriteAsset could not be found. > VerifyError: Error #1014: Class mx.core::SpriteAsset could not be found. > VerifyError: Error #1014: Class mx.core::SpriteAsset could not be found. > VerifyError: Error #1014: Class mx.core::SpriteAsset could not be found. > VerifyError: Error #1014: Class mx.core::SpriteAsset could not be found. > VerifyError: Error #1014: Class mx.core::BitmapAsset could not be found. > VerifyError: Error #1014: Class mx.core::SpriteAsset could not be found. > VerifyError: Error #1014: Class mx.core::SpriteAsset could not be found. > VerifyError: Error #1014: Class mx.core::SpriteAsset could not be found. > VerifyError: Error #1014: Class mx.core::BitmapAsset could not be found. > VerifyError: Error #1014: Class mx.core::SpriteAsset could not be found. > VerifyError: Error #1014: Class mx.core::SpriteAsset could not be found. > VerifyError: Error #1014: Class mx.core::SpriteAsset could not be found. > ReferenceError: Error #1065: Variable > _class_embed_css_Assets_swf__509536564_mx_skins_cursor_DragReject_882911133 > is not defined. > ReferenceError: Error #1065: Variable > _class_embed_css_Assets_swf__374270191_mx_skins_cursor_HBoxDivider_1901584628 > is not defined. > ReferenceError: Error #1065: Variable > _class_embed_css_Assets_swf__374270191_mx_skins_BoxDividerSkin_1057002641 is > not defined. > ReferenceError: Error #1065: Variable > _class_embed_css_Assets_swf__509536564_mx_skins_cursor_DragCopy_604341401 is > not defined. > ReferenceError: Error #1065: Variable > _class_embed_css_Assets_swf__374270191_CloseButtonUp_41453136 is not defined. > ReferenceError: Error #1065: Variable > _class_embed_css_Assets_swf__509536564_mx_skins_cursor_BusyCursor_286161967 > is not defined. > ReferenceError: Error #1065: Variable > _class_embed_css_Assets_swf__374270191_mx_containers_FormItem_Required_2056852568 > is not defined. > ReferenceError: Error #1065: Variable > _class_embed_css_assets_ErrorIndicator_png__1935102536_672265556 is not > defined. > ReferenceError: Error #1065: Variable > _class_embed_css_Assets_swf__374270191_CloseButtonDisabled_1398239983 is not > defined. > ReferenceError: Error #1065: Variable > _class_embed_css_Assets_swf__374270191_TreeFolderClosed_963887731 is not > defined. > ReferenceError: Error #1065: Variable > _class_embed_css_Assets_swf__374270191_mx_skins_cursor_VBoxDivider_601492146 > is not defined. > ReferenceError: Error #1065: Variable > _class_embed_css_Assets_swf__374270191_cursorStretch_1945791990 is not > defined. > ReferenceError: Error #1065: Variable > _class_embed_css_Assets_swf__374270191_TreeDisclosureClosed_1645126974 is not > defined. > ReferenceError: Error #1065: Variable > _class_embed_css_Assets_swf__374270191_TreeNodeIcon_1012233620 is not defined. > ReferenceError: Error #1065: Variable > _class_embed_css_Assets_swf__509536564_mx_skins_cursor_DragMove_604628981 is > not defined. > ReferenceError: Error #1065: Variable > _class_embed_css_Assets_swf__509536564_mx_skins_cursor_DragLink_604603406 is > not defined. > ReferenceError: Error #1065: Variable > _class_embed_css_Assets_swf__374270191_CloseButtonOver_1031431481 is not > defined. > ReferenceError: Error #1065: Variable > _class_embed_css_Assets_swf__374270191_TreeFolderOpen_1621478815 is not > defined. > ReferenceError: Error #1065: Variable > _class_embed_css_assets_CalendarIcon_png_1969319625_1360189988 is not defined. > ReferenceError: Error #1065: Variable > _class_embed_css_Assets_swf__374270191_TreeDisclosureOpen_2060449952 is not > defined. > ReferenceError: Error #1065: Variable > _class_embed_css_Assets_swf__509536564___brokenImage_859899623 is not defined. > ReferenceError: Error #1065: Variable > _class_embed_css_Assets_swf__374270191_CloseButtonDown_1195601447 is not > defined. > ReferenceError: Error #1065: Variable > _class_embed_css_assets_RequiredIndicator_png__783798379_1938314947 is not > defined. > > 18.07.2019, 12:45, "Ramazan Ergüder Bekrek" <[email protected]>: >> Could it be one of the following advanced compiler options? >> >> -externs [symbol] [...] >> a list of symbols to omit from linking when >> building a SWF (advanced, >> repeatable) >> -frames.frame [label] [classname] [...] >> alias -frame >> A SWF frame label with a sequence of classnames >> that will be linked >> onto the frame. (advanced, repeatable) >> -help [keyword] [...] >> keywords are 'syntax', 'list', 'advanced', >> 'aliases', 'details', or a >> search term >> -include-classes [class] [...] >> alias -ic >> a list of classes to include in the output SWC >> (repeatable, default >> variable) >> -include-file <name> <path> >> alias -if >> a list of named files to include in the output SWC >> (repeatable) >> -include-lookup-only >> if true, manifest entries with lookupOnly=true are >> included in SWC >> catalog. Default is false. (advanced) >> -include-namespaces [uri] [...] >> alias -in >> all classes in the listed namespaces are included >> in the output SWC >> (repeatable) >> -include-resource-bundles [bundle] [...] >> alias -ir >> a list of resource bundles to include in the output >> SWC (repeatable) >> -include-sources [path-element] [...] >> alias -is >> a list of directories and source files to include >> in the output SWC >> (repeatable) >> -include-stylesheet <name> <path> >> a list of named stylesheet resources to include in >> the output SWC >> (repeatable) >> -includes [symbol] [...] >> a list of symbols to always link in when building a >> SWF (advanced, >> repeatable) >> -licenses.license <product> <serial-number> >> alias -license >> specifies a product and a serial number. >> (repeatable) >> -link-report <filename> >> Output a XML-formatted report of all definitions >> linked into the >> application. (advanced) >> -load-config <filename> >> load a file containing configuration options >> (repeatable) >> -load-externs <filename> >> an XML file containing <def>, <pre>, and <ext> >> symbols to omit from >> linking when building a SWF (advanced, repeatable) >> -runtime-shared-libraries [url] [...] >> alias -rsl >> a list of runtime shared library URLs to be loaded >> before the >> application starts (repeatable) >> -runtime-shared-library-path [path-element] [rsl-url] >> [policy-file-url] [rsl-url] [policy-file-url] >> alias -rslp >> (repeatable) >> -static-link-runtime-shared-libraries >> alias -static-rsls >> statically link the libraries specified by the >> -runtime-shared-libraries-path option. >> >> 18.07.2019, 12:40, "Ramazan Ergüder Bekrek" <[email protected]>: >>> Here are the release and debug versions of the file in question. >>> >>> >>> https://clicktime.symantec.com/3AVuei9z3PhbshwdCg3Eauq7Vc?u=https%3A%2F%2Fgofile.io%2F%3Fc%3DNjkheb >>> >>> 18.07.2019, 12:28, "Ramazan Ergüder Bekrek" <[email protected]>: >>>> Does anybody have contact to someone at Adobe who can give us the >>>> source code of that file so that we can understand this mistery cause I'm >>>> trying to figure this out since 2 years now? >>>> >>>> 18.07.2019, 12:21, "Ramazan Ergüder Bekrek" <[email protected]>: >>>>> I found this page with all the compiler options. Which one of those >>>>> options is responsible for bypassing the VerifyError that I get. >>>>> >>>>> >>>>> https://clicktime.symantec.com/3SUH6kWJL75aMxb2WMFAQ5J7Vc?u=http%3A%2F%2Fwww.docsultant.com%2Fsite2%2Farticles%2Fflex_cmd.html%23compc_3_opt >>>>> >>>>> VerifyError: Error #1053: Illegal override of >>>>> getRSLItemDefinitionClass in >>>>> _gravity_shared_flex_com_adobe_gravity_internals_flex_ui_GravitySystemManager. >>>>> ReferenceError: Error #1065: Variable >>>>> _gravity_shared_flex_com_adobe_gravity_internals_flex_ui_GravitySystemManager >>>>> is not defined. >>>>> VerifyError: Error #1014: Class spark.components::Application could >>>>> not be found. >>>>> VerifyError: Error #1014: Class >>>>> com.adobe.gravity.internals.flex.ui::GravitySparkApplication could not be >>>>> found. >>>>> VerifyError: Error #1014: Class mx.core::UIComponent could not be >>>>> found. >>>>> VerifyError: Error #1014: Class >>>>> com.adobe.gravity.flex.serviceloader::UIServiceBase could not be found. >>>>> VerifyError: Error #1014: Class >>>>> com.adobe.gravity.internals.flex.ui::GravityApplication could not be >>>>> found. >>>>> VerifyError: Error #1014: Class mx.core::UIComponent could not be >>>>> found. >>>>> VerifyError: Error #1014: Class mx.managers::SystemManagerProxy could >>>>> not be found. >>>>> VerifyError: Error #1014: Class mx.core::SpriteAsset could not be >>>>> found. >>>>> VerifyError: Error #1014: Class mx.core::SpriteAsset could not be >>>>> found. >>>>> VerifyError: Error #1014: Class mx.core::SpriteAsset could not be >>>>> found. >>>>> VerifyError: Error #1014: Class mx.core::SpriteAsset could not be >>>>> found. >>>>> VerifyError: Error #1014: Class mx.core::SpriteAsset could not be >>>>> found. >>>>> VerifyError: Error #1014: Class mx.core::SpriteAsset could not be >>>>> found. >>>>> VerifyError: Error #1014: Class mx.core::SpriteAsset could not be >>>>> found. >>>>> VerifyError: Error #1014: Class mx.core::BitmapAsset could not be >>>>> found. >>>>> VerifyError: Error #1014: Class mx.core::SpriteAsset could not be >>>>> found. >>>>> VerifyError: Error #1014: Class mx.core::SpriteAsset could not be >>>>> found. >>>>> VerifyError: Error #1014: Class mx.core::SpriteAsset could not be >>>>> found. >>>>> VerifyError: Error #1014: Class mx.core::SpriteAsset could not be >>>>> found. >>>>> VerifyError: Error #1014: Class mx.core::SpriteAsset could not be >>>>> found. >>>>> VerifyError: Error #1014: Class mx.core::SpriteAsset could not be >>>>> found. >>>>> VerifyError: Error #1014: Class mx.core::SpriteAsset could not be >>>>> found. >>>>> VerifyError: Error #1014: Class mx.core::BitmapAsset could not be >>>>> found. >>>>> VerifyError: Error #1014: Class mx.core::SpriteAsset could not be >>>>> found. >>>>> VerifyError: Error #1014: Class mx.core::SpriteAsset could not be >>>>> found. >>>>> VerifyError: Error #1014: Class mx.core::SpriteAsset could not be >>>>> found. >>>>> VerifyError: Error #1014: Class mx.core::BitmapAsset could not be >>>>> found. >>>>> VerifyError: Error #1014: Class mx.core::SpriteAsset could not be >>>>> found. >>>>> VerifyError: Error #1014: Class mx.core::SpriteAsset could not be >>>>> found. >>>>> VerifyError: Error #1014: Class mx.core::SpriteAsset could not be >>>>> found. >>>>> ReferenceError: Error #1065: Variable >>>>> _class_embed_css_Assets_swf__509536564_mx_skins_cursor_DragReject_882911133 >>>>> is not defined. >>>>> ReferenceError: Error #1065: Variable >>>>> _class_embed_css_Assets_swf__374270191_mx_skins_cursor_HBoxDivider_1901584628 >>>>> is not defined. >>>>> ReferenceError: Error #1065: Variable >>>>> _class_embed_css_Assets_swf__374270191_mx_skins_BoxDividerSkin_1057002641 >>>>> is not defined. >>>>> ReferenceError: Error #1065: Variable >>>>> _class_embed_css_Assets_swf__509536564_mx_skins_cursor_DragCopy_604341401 >>>>> is not defined. >>>>> ReferenceError: Error #1065: Variable >>>>> _class_embed_css_Assets_swf__374270191_CloseButtonUp_41453136 is not >>>>> defined. >>>>> ReferenceError: Error #1065: Variable >>>>> _class_embed_css_Assets_swf__509536564_mx_skins_cursor_BusyCursor_286161967 >>>>> is not defined. >>>>> ReferenceError: Error #1065: Variable >>>>> _class_embed_css_Assets_swf__374270191_mx_containers_FormItem_Required_2056852568 >>>>> is not defined. >>>>> ReferenceError: Error #1065: Variable >>>>> _class_embed_css_assets_ErrorIndicator_png__1935102536_672265556 is not >>>>> defined. >>>>> ReferenceError: Error #1065: Variable >>>>> _class_embed_css_Assets_swf__374270191_CloseButtonDisabled_1398239983 is >>>>> not defined. >>>>> ReferenceError: Error #1065: Variable >>>>> _class_embed_css_Assets_swf__374270191_TreeFolderClosed_963887731 is not >>>>> defined. >>>>> ReferenceError: Error #1065: Variable >>>>> _class_embed_css_Assets_swf__374270191_mx_skins_cursor_VBoxDivider_601492146 >>>>> is not defined. >>>>> ReferenceError: Error #1065: Variable >>>>> _class_embed_css_Assets_swf__374270191_cursorStretch_1945791990 is not >>>>> defined. >>>>> ReferenceError: Error #1065: Variable >>>>> _class_embed_css_Assets_swf__374270191_TreeDisclosureClosed_1645126974 is >>>>> not defined. >>>>> ReferenceError: Error #1065: Variable >>>>> _class_embed_css_Assets_swf__374270191_TreeNodeIcon_1012233620 is not >>>>> defined. >>>>> ReferenceError: Error #1065: Variable >>>>> _class_embed_css_Assets_swf__509536564_mx_skins_cursor_DragMove_604628981 >>>>> is not defined. >>>>> ReferenceError: Error #1065: Variable >>>>> _class_embed_css_Assets_swf__509536564_mx_skins_cursor_DragLink_604603406 >>>>> is not defined. >>>>> ReferenceError: Error #1065: Variable >>>>> _class_embed_css_Assets_swf__374270191_CloseButtonOver_1031431481 is not >>>>> defined. >>>>> ReferenceError: Error #1065: Variable >>>>> _class_embed_css_Assets_swf__374270191_TreeFolderOpen_1621478815 is not >>>>> defined. >>>>> ReferenceError: Error #1065: Variable >>>>> _class_embed_css_assets_CalendarIcon_png_1969319625_1360189988 is not >>>>> defined. >>>>> ReferenceError: Error #1065: Variable >>>>> _class_embed_css_Assets_swf__374270191_TreeDisclosureOpen_2060449952 is >>>>> not defined. >>>>> ReferenceError: Error #1065: Variable >>>>> _class_embed_css_Assets_swf__509536564___brokenImage_859899623 is not >>>>> defined. >>>>> ReferenceError: Error #1065: Variable >>>>> _class_embed_css_Assets_swf__374270191_CloseButtonDown_1195601447 is not >>>>> defined. >>>>> ReferenceError: Error #1065: Variable >>>>> _class_embed_css_assets_RequiredIndicator_png__783798379_1938314947 is >>>>> not defined. >>>>> >>>>> 18.07.2019, 08:11, "Alex Harui" <[email protected]>: >>>>>> 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://clicktime.symantec.com/3TUHzqBBQDPnb1TdAEVSqCL7Vc?u=https%3A%2F%2Fnam04.safelinks.protection.outlook.com%2F%3Furl%3Dhttps%253A%252F%252Fpasteboard.co%252FIoumcP0.png%26data%3D02%257C01%257Caharui%2540adobe.com%257Cacca8cac00eb4603ec2c08d70b306694%257Cfa7b1b5a7b34438794aed2c178decee1%257C0%257C1%257C636990174824334757%26sdata%3DfcIx3eORWOGv7Ob5eeDY5%252BlSfpLwTCGKsT4gWcexqrI%253D%26reserved%3D0 >>>>>> >>>>>> 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://clicktime.symantec.com/3S89bYWjqg3iqsxSaNHdKt57Vc?u=https%3A%2F%2Fnam04.safelinks.protection.outlook.com%2F%3Furl%3Dhttps%253A%252F%252Fyoutu.be%252Fg_Y4PmR_L1w%253Ft%253D379%26data%3D02%257C01%257Caharui%2540adobe.com%257Cacca8cac00eb4603ec2c08d70b306694%257Cfa7b1b5a7b34438794aed2c178decee1%257C0%257C1%257C636990174824334757%26sdata%3DIgUYjQcN05H7h7VgAQQHmrpDkeQOYcR31mTR3YKDauQ%253D%26reserved%3D0. >>>>>> >> > 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.
