Results 1 to 6 of 6

Thread: Online ActionScript decompiler

  1. #1

    Online ActionScript decompiler

    I've just finished putting together my ActionScript decompiler. It's able to decompile AS2 and AS3 code. It's still a little rough around the edge. I've yet have time to optimize the output so you'll see a lot of odd expressions like !(arg1 == 5) instead of arg1 != 5. Could still be useful though if you're curious about how a Flash site is done.

    http://flaczki.net46.net/decompile/

    P.S. Anyone know a free hosting service with relatively high memory limit? PHP is not very good at handling a lot of small objects. My script has a way of bumping up against the 64M limit at 000webhost when an SWF file is code-heavy.

  2. #2
    946
    posts
    Registered User
    Pretty cool stuff! I typed a few lines of code on the timeline in a flash pro project just to see what it looked like.

    Original
    PHP Code:
    import flash.display.Sprite;
    var 
    sp:Sprite = new Sprite();
    addEventListener(Event.ENTER_FRAMEgo);
    function 
    go(e:Event){
        
    sp.x++;

    decompiled

    PHP Code:
    package Untitled_fla
    {
        
    import flash.display.MovieClip;
        
    import flash.display.Sprite;
        
    import flash.events.Event;
        public 
    dynamic class MainTimeline extends MovieClip {;
        public var 
    sp:Sprite;
        public function 
    MainTimeline()
        {
            
    super();
            
    addFrameScript(0frame1);
            return;
        }
        public function 
    go(arg1:Event):*
        {
            var 
    REG_3:* = sp;
            var 
    REG_4:* = REG_3.1;
            
    REG_3.REG_4;
            return;
        }
        
    internal function frame1():*
        {
            
    sp = new Sprite();
            
    addEventListener(Event.ENTER_FRAMEgo);
            return;
        }
    }

    obfuscation software, then decompiled (sorry for the formatting)

    PHP Code:
    package if {
    import flash.display.MovieClip;
    import flash.display.Sprite;
    import flash.events.Event;
    public 
    dynamic class do extends MovieClip {
    public var 
    each:Sprite;
    public function do() {
    var 
    REG_2:Boolean false;
    var 
    REG_3:Boolean true;
    if(!(
    REG_2 && REG_2)) {
    super();
    if(!
    REG_2) {
    addFrameScript(0, do);
    }
    }
    return;
    }
    public function continue(
    arg1:Event):* {
    var 
    REG_5:Boolean true;
    var 
    REG_6:Boolean false;
    if(!
    REG_5) {
    }
    if(
    this) {
    var 
    REG_3:* = each;
    var 
    REG_4:* = REG_3.1;
    if(!(
    REG_6 && arg1)) {
    REG_3.REG_4;
    }
    }
    return;
    }
    internal function do():* {
    var 
    REG_2:Boolean true;
    var 
    REG_3:Boolean false;
    if(
    REG_2 || REG_3) {
    each = new Sprite();
    if(!
    REG_3) {
    addEventListener(Event.ENTER_FRAME, continue);
    }
    }
    return;
    }
    }

    amazing work you have done

  3. #3
    Maybe AWS's free tier?

  4. #4
    I've moved the web-site to 1FreeHosting. The PHP memory limit there is 128M. Now the script has no problem decompiling even more complicated SWF files. Here's the new URL:

    http://flaczki.goodluckwith.us/decompile/

    The disassembler is hosted there now as well:

    http://flaczki.goodluckwith.us/codedump/

  5. #5
    Well, it was working for a few hours. Now I'm getting just a 404 error. Crap.

    EDIT: Now it works again. Strange. I guess you get what you pay for...
    Last edited by cleong; September 19th, 2012 at 05:32 PM.

  6. #6
    946
    posts
    Registered User
    this is just crazy impressive

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  

Home About kirupa.com Meet the Moderators Advertise

 Link to Us

 Credits

Copyright 1999 - 2012