AutoPlay Project Dumper
Beta By Pabloko
What it does?
[AutoPlay Project Dumper] (APD in advance) lets you obtain a .autoplay project file from a AutoPlay generated .exe
It generates a .autoplay file compatible with AMS and recover most parts of the dumped project. Its developed to be compatible with any version of AMS8 PE (probably AMS7 too)
How it works?
Essentialy we used AMS lua api (see dump.lua) in order to dump settings, pages, dialogs and its child objects, events, scripts and properties. Unfortunately not all parameters can be extracted with AMS lua api, so a bit of C++ api was attached to obtain stuff like global scripts, init&shutdown scripts, list action plugins, list object plugins and get internal characteristics of any object plugin. For this task, we designed a simple injector executable (dump.exe) where you can drop the main executable, it will automaticly inject the dumping library (dump.dll) that will redefine project scripts and execute dumper routine (dump.lua)
How to use it?
Just put the files alongside the main executable, drag it and drop to dump.exe. Window will open for a brief time. When process finish you will have a .autoplay file ready to load in AMS
Warning
This project is on early stage of development, LOTS of stuff wont get dumped and probably some properties could be mangled or misconfigured, so, dont expect it to give you a perfect source, but a very good start point for your hack.
Known limitations / bugs
- SFX embedded exe will NOT work, also wont work packed with molebox and similar, please extract the contents first. We will work on the abilty to work directly with this kind of files.
- Project "On Menu" & "On Size" events wont get dumped
- Groups seems to be not being dumped
- Object actions using quick actions interface wont get exported
- Project definitions, like Missing Technologies, Intro video, Exe info, Code signing wont get exported and will use generic ones
- Some insignificant properties on pages, dialogs and objects will have default values as some parts of the project are unrecoverable (info not present on compiled project)
Usage sample
Download
Version 002
[list]fixed a lot of bugs, project without dialogs, tree initial data and lot more[/list]
Source Code
https://pastebin.com/aTm9sFu5
https://pastebin.com/LmSXFXJb
https://pastebin.com/dGXd0bU3
Password
Final notes
This simple PoC was developed on some free time i got thanks to a fucking flu, wich involved documenting .autoplay format from a bit of reverse engineering. I've choosed this way of dump instead _proj.dat translation to make it more compatible across different versions and we exploited some ams api and object sdk to obtain info, but a big part of project/xml definitions had to be hardcoded on dumping routine. For example, we take advantage of GetProperties method present on all ams objects, but table returned had to be translated to autoplay format, blame @ini for mistakes on this part of the routine.
This is the final nail on AMS's coffin