JPEXS Free Flash Decompiler Issue Tracker

If you are looking for the decompiler itself, visit https://github.com/jindrapetrik/jpexs-decompiler

NEW : We have got a new blog where we post some interesting SWF internals info.

List of issuesList of issues

#25 Invalid imports
Date created:
Type: bug
Visibility: Everybody
Assigned to:
Labels: AS3DecompilationGoogle CodeObfuscatedRename identifiers
State: closed Help

Again, comparing to Trillix' output: package !] { import =&.*; import `!h.*; import flash.display.*; import flash.events.*; import flash.utils.*; public class >!w extends !].5 { public function >!w() { super(); this.createLogic(); mouseEnabled = false; mouseChildren = false; %"B = this; this.,"3 = =&."X.setInterval(6!R, 10000); =&.0"S.addEventListener(this, flash.events.Event.ADDED_TO_STAGE, this.addedToStage); =&.+Q.2c(=&.<k.2"G, this.?w); return; } asdec decompiles to this, producing much more imports, some of which are invalid (like, import _name5761.void): package _name5762 { import _name5761._name2121; import flash.display.Sprite; import _name5761._name4835; import _name5761._name166; import _name5761.Boolean; import _name5761._name163; import _name5761.stageWidth; import _name5761.int; import _name5761.stageHeight; import _name5761.void; import _name5761.Error; import _name5761._name4837; import _name5761.String; import _name5761._name993; import _name5761._name4838; import _name5761.uint; import _name5761.Object; import _name5761.isError; import _name5763._name95; import _name5763._name2; import flash.events.KeyboardEvent; import _name5761.errorHandler; import _name5761.stage; import flash.events.Event; import _name5763._name445; import flash.events.FullScreenEvent; import _name5763._name444; import flash.display.StageDisplayState; import _name5761._name167; import _name5761.mouseDownHandler; import _name5817._name446; import _name5761.mouseUpHandler; import _name5761.uiItemDownHandler; import _name5761.mouseMoveHandler; import _name5763._name243; import flash.utils.clearInterval; import _name5761.dispose; import _name5761.mouseEnabled; import _name5761.mouseChildren; public class _name24 extends _name155 { public function _name24() { super(); this.createLogic(); mouseEnabled=false; mouseChildren=false; _name4835=this; this._name160=_name243.setInterval(_name4836,10000); _name445.addEventListener(this,Event.ADDED_TO_STAGE,this.addedToStage); _name95._name484(_name444._name4846,this._name162); return; }
admin
Hi, I cannot reproduce this without original file. Could you try it without deobfuscation (rename identifiers)? Are the imports wrong too?
user
You were right, before renaming asdec imports are correct: package !] { import flash.display.Sprite; import =&.+Q; import =&.;!U; import flash.events.KeyboardEvent; import flash.events.Event; import =&.0"S; import flash.events.FullScreenEvent; import =&.<k; import flash.display.StageDisplayState; import `!h. x; import =&."X; import flash.utils.clearInterval; public class >!w extends 5 { public function >!w() { super(); this.createLogic(); mouseEnabled=false; mouseChildren=false; %"B=this; this.,"3="X.setInterval(6!R,10000); 0"S.addEventListener(this,Event.ADDED_TO_STAGE,this.addedToStage); +Q.2c(<k.2"G,this.?w); return; } File is attached, you can try yourself
admin
Hi, ASDec version 1.2.0 is out so please check it, identifier renaming should be better. I also changed generated names - instead of "name_xx" you will get string made of random characters. (I think it looks better than bunch of name + number variables)
user
hey I guess it would be nicer to have something like this: int int01; string string01; int int02 etc
user
State: →closed
Title: Invalid imports→Invalid imports
Type: →bug
Visibility: →Everybody