Use swfdump.  The decompiler does not show which scripts are in which frames.

Get Outlook for Android<https://aka.ms/ghei36>

________________________________
From: Ramazan Ergüder Bekrek <e.bek...@yandex.com>
Sent: Saturday, July 20, 2019 10:04:53 AM
To: users@royale.apache.org <users@royale.apache.org>
Subject: Re: How to compile an SWF to bypass any VerifyError for non-existing 
classes inside of that SWF

Ok so what I am trying to reproduce an exact copy of the 
gravity_shared_flex-flex450-debug.swf and here is my advancement so far.

You can find the config.xml file on pastebin.com : 
https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fpastebin.com%2FDcMiPDd3&amp;data=02%7C01%7Caharui%40adobe.com%7C1e502d27fadb4bcff46108d70d347195%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C1%7C636992391214138250&amp;sdata=M1faD1irWRxdNJBXS8htDMDzYQF0yBwiC0lGDEKP4dU%3D&amp;reserved=0

Here are the problems that I encountered so far:

This is the decompile of gravity_shared_flex-flex450-debug.swf : 
https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fpasteboard.co%2FIoSvsxo.png&amp;data=02%7C01%7Caharui%40adobe.com%7C1e502d27fadb4bcff46108d70d347195%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C1%7C636992391214148244&amp;sdata=IrFja3VEw%2Fj3C7QXIytBRQQklqTBoMYk82Eg0azLc6M%3D&amp;reserved=0
This is the decompile of my own version I am trying to reproduce 
gravity_shared_flex-apache4161-debug: 
https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fpasteboard.co%2FIoSwm6L.png&amp;data=02%7C01%7Caharui%40adobe.com%7C1e502d27fadb4bcff46108d70d347195%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C1%7C636992391214148244&amp;sdata=kcNtWAaXQkWH0x8M8n%2FHR%2FJZnj90Q6n6dFofKm3x3j0%3D&amp;reserved=0

So far when I try to run my RSLs loader in debug mode it goes through but when 
I compile a release version I still get the VerifyError: 
spark.components.Application.

As you can see in the pictures the original 
gravity_shared_flex-flex450-debug.swf has less compiled images and locales 
resources... I don't know what do I do wrong in the compiler settings.

Is someone in here knowledgeable with advanced compilation settings with mxmlc? 
Or do I use the wrong compiler should I use another one?

To be clear the gravity_shared_flex-flex450-debug.swf RSLs loader is in the 2nd 
frame a Spark Application which is handled automatically by the custom 
GravitySystemManager.

Thanx for your support.

Best Regards.



19.07.2019, 20:17, "Frost, Andrew" <andrew.fr...@harman.com>:
> 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 <e.bek...@yandex.com>
> Sent: 19 July 2019 13:58
> To: users@royale.apache.org
> 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" <e.bek...@yandex.com>:
>>  What I did is to download the latest Apache Flex SDK like described here : 
>> https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Fflex.apache.org%2Fdev-sourcecode.html&amp;data=02%7C01%7Caharui%40adobe.com%7C1e502d27fadb4bcff46108d70d347195%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C1%7C636992391214148244&amp;sdata=SO0Y5DrgSD4acY6P2tLZEc4TjzoDXWY4bZOjTSbjmWw%3D&amp;reserved=0
>>
>>  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" <e.bek...@yandex.com>:
>>>   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" <e.bek...@yandex.com>:
>>>>    Here are the release and debug versions of the file in question.
>>>>
>>>>    
>>>> https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgofile.io%2F%3Fc%3DNjkheb&amp;data=02%7C01%7Caharui%40adobe.com%7C1e502d27fadb4bcff46108d70d347195%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C1%7C636992391214148244&amp;sdata=%2Fka3wmfpsupGwrOGEtIHFIjSalV0f22GPtwnrIihxi0%3D&amp;reserved=0
>>>>
>>>>    18.07.2019, 12:28, "Ramazan Ergüder Bekrek" <e.bek...@yandex.com>:
>>>>>     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" <e.bek...@yandex.com>:
>>>>>>      I found this page with all the compiler options. Which one of those 
>>>>>> options is responsible for bypassing the VerifyError that I get.
>>>>>>
>>>>>>      
>>>>>> https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.docsultant.com%2Fsite2%2Farticles%2Fflex_cmd.html%23compc_3_opt&amp;data=02%7C01%7Caharui%40adobe.com%7C1e502d27fadb4bcff46108d70d347195%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C1%7C636992391214148244&amp;sdata=6K8%2FWb6r3xMy44bg4kOxvO1ErDg%2BNLG3uy%2Bwn0kPjDk%3D&amp;reserved=0
>>>>>>
>>>>>>      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" <aha...@adobe.com>:
>>>>>>>       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" 
>>>>>>> <e.bek...@yandex.com> wrote:
>>>>>>>
>>>>>>>           Here is a 2 frames view of JPEXS Decompiler :
>>>>>>>
>>>>>>>           
>>>>>>> https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fpasteboard.co%2FIoumcP0.png&amp;data=02%7C01%7Caharui%40adobe.com%7C1e502d27fadb4bcff46108d70d347195%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C1%7C636992391214148244&amp;sdata=ZjqBsoZbnZQes5Aq4lFs5rGasZwbFwqB3XwmdnisZgM%3D&amp;reserved=0
>>>>>>>
>>>>>>>           18.07.2019, 05:28, "Ramazan Ergüder Bekrek" 
>>>>>>> <e.bek...@yandex.com>:
>>>>>>>           > 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" <aha...@adobe.com>:
>>>>>>>           >> 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" 
>>>>>>> <e.bek...@yandex.com> 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" <aha...@adobe.com>:
>>>>>>>           >> > 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" 
>>>>>>> <e.bek...@yandex.com> 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&amp;data=02%7C01%7Caharui%40adobe.com%7C1e502d27fadb4bcff46108d70d347195%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C1%7C636992391214148244&amp;sdata=zfR%2FbM38Wln%2FdCbNKvfBXP7DNAj7hdbcTRegMxn8paY%3D&amp;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.

Reply via email to