PASTEDOWN   132   0
   1324 7.3 KB    84

Patching Adobe Animate

By Synthbot
Created: 2022-07-11 19:02:27
Updated: 2022-07-11 19:07:42
Expiry: Never

You only need to do this if you want to run scripts on our FLA files in batch. If you’re fine running it on the FLA files one at a time, this is unnecessary. In total, Animate needs the following patches:

  1. Remove the free trial limitation.
  2. Remove the popup when loading files that contain ActionScript 2.0 code.
  3. Remove the popup when trying to export an image that’s too large.
  4. Remove the popup asking the user how to handle JSFL files opened from the command prompt.
  5. Remove the popup when converting an FLA file to XFL.
  6. Remove the popup when Animate is unable to open a file.
  7. Remove the popup when Animate is missing a font required by a file.

Option 1 - Download the patched Adobe Animate 21.0.5.

Option 2 - Manually apply the patches. You’ll need a hex editor.

  • HxD: https://mh-nexus.de/en/hxd/. This is a hex editor. If you’re using the short version, you’ll use this to edit hex files. If you’re using the long version, this is a convenient way to get a hex pattern for a string in Animate.exe.

Diff the uncompressed “Animate.exe” file with the “Animate - original.exe” file to get a list of patches that need to be applied. Apply the patches to your own version of Animate.exe.

Option 3 - Generate the patches. If you’re going to do this, mention it in the thread and ask for help if you get stuck. This section will walk you through the process of running a debugger to get rid of an alert in Adobe Animate. You’ll need to install x64dbg in addition to HxD:

First, you’ll need to attach the x64dbg debugger to Animate.exe. To do that…

  • Install x64dbg and run it as Administrator. (Right click, Run As Administrator).
  • When it opens, the first thing you should do is go to Options ->Preferences and uncheck everything.
  • Then go to File ->Open and run Animate.exe from your Program Files directory. Always look at the bottom left corner to see if it says Paused, the debugger pauses a lot from the many exceptions that appear. Whenever the debugger pauses, you can resume execution by clicking Run (blue arrow icon).

All of the default exceptions are useless. You can get rid of them as follows:

  • To get rid of the breakpoints, click on the Breakpoints tab and delete everything there.
  • To get rid of other exceptions as they come up, whenever an exception appears, go to Options ->Preferences ->Exceptions and click Add Last. This will prevent that exception from coming up again.

Keep adding exceptions to your ignore list and clicking Run until it stops doing that. At this point, you should be able to load an FLA file into Adobe Animate.

Now we’ll want to make sure that the popup code is loaded into memory. Pick any file that causes the unwanted popup. Keep clicking through Run and adding exceptions until it loads, then close the file. Again, keep clicking through Run and adding exceptions until you’re on the screen where you can load a file again.

Now we’ll need to add a breakpoint to pause Adobe Animate when we’re in the function that calls the popup. To do that…

  • Open up Adobe Animate in HxD and search for the string "is no longer supported in this version". You’ll see the string on the right-hand side and the corresponding hex in the left-hand side. Copy the hex string for the entire paragraph.
  • Go to the Memory Maps tab in x64dbg. Right click anywhere and select Find Pattern. Paste the HxD pattern in. Double-click through each result until I find the one that matches the "ActionScript @0" string you see in HxD. You should only see one result, but if you see multiple then you can follow the next step to set a breakpoint for each one.
  • The memory location should be highlighted in the bottom pane of x64dbg. Right-click any line of the pattern in the bottom pane, then select Breakpoint ->Hardware ->Access ->Word. This will pause Adobe Animate whenever it tries to access this string.
  • Open any file that causes the popup. Now x64dbg will break on whatever function is using the "ActionScript @0 is no longer supported" string.

Now open the Call Stack tab in x64dbg. We’ll need to figure out which function in the call stack is the one that shows the popup.

  • Double-click through each of the lines that says "animate" in the Comment column. This will bring you to the “return” location of that call, which is one instruction below the actual call.
  • The first few are all doing some basic string operations, so ignore those. You can ignore all of the ones that use "memcpy" or string-anything in the same function.
  • The first one that's not doing a string operation is the one to delete. When you open that function, x64dbg will highlight the first instruction after the call we want to delete. So scroll up by one instruction to find the call we’re going to delete.

Once you’ve highlighted the call you’re going to delete, you can delete the call like this:

  • Make sure the call instruction is highlighted.
  • Press space to get the assemble window.
  • Put “nop” in the box
  • Make sure Fill with NOP's is checked, or you'll only create one nop and the rest of the leftover call code will cause Animate to hang.
  • Confirm, then close the box.

It’s patched. Now test it opening another ActionScript 2.0 file. If everything worked, the dialog box shouldn't appear when you open it.

Repeat the process for the case where a bitmap is too large to export:

  • HxD string to search: “The bitmap is too large. The largest bitmap that can be created is”
  • File to open: https://drive.google.com/file/d/1sJqHDYQfjVyblxZkTIDZ4HdN0iDZ9DBb/view?usp=sharing
  • You can trigger the popup by running the AnimationExtractor JSFL script on the file.
  • The relevant function in the call stack makes a reference to “BitBuffer”. Once again, after double-clicking the relevant call in the call stack, go up 1 instruction and replace the call at that location with NOP.

Repeat the process for the case where a file cannot be loaded:

  • HxD string to search: “An error occurred opening file”
  • File to open: https://drive.google.com/file/d/1_xAfAOX9bsS6oEYIcLwmNY6p6FY5FVE7/view?usp=sharing
  • You can trigger the popup by opening the file.
  • The relevant function in the call stack has a call further below to “BCString” something. There’s a call to “animate.something” between the BCString call and a basic_something call. Replace that call at that location with NOP.

The process is similar for all of these files:

Save the patch by pressing Ctrl + P and clicking Patch File. Name it Animate.exe and save it on your desktop or something. Rename your original Animate.exe something else and move the modified Animate.exe to your Adobe folder. You don't want to overwrite the original, keep it as a backup.

The file you just saved is the patched version of Animate.exe.


Pony Preservation Project - /mlp/con 2021

by Synthbot

Pony Preservation Project - /mlp/con 2020

by Synthbot

Preservation Project History - 2020 to 2021

by Synthbot

Missing music

by Synthbot

Animation format

by Synthbot