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 issues](/flash/images/issue_list.png)
#25 Invalid imports
Author:
googleCode
![user user](/flash/images/user.png)
Date created:
Type: bug
Visibility: Everybody
Assigned to:
Labels: AS3DecompilationGoogle CodeObfuscatedRename identifiers
State: closed ![Help](/flash/images/help.png)
![Help](/flash/images/help.png)
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;
}
Hi,
I cannot reproduce this without original file.
Could you try it without deobfuscation (rename identifiers)?
Are the imports wrong too?
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
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)
hey
I guess it would be nicer to have something like this:
int int01;
string string01;
int int02
etc
State: →closed
Title: Invalid imports→Invalid imports
Type: →bug
Visibility: →Everybody
Title: Invalid imports→Invalid imports
Type: →bug
Visibility: →Everybody