From f81d1ac58de0e89d1c596b84a6eec6b00ffb16a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jindra=20Pet=C5=99=C3=ADk?= Date: Wed, 1 Mar 2023 19:30:19 +0100 Subject: [PATCH] Fixed #1981 AS3 star import collisions --- CHANGELOG.md | 1 + .../src/com/jpexs/decompiler/flash/SWF.java | 1 + .../abc/avm2/parser/script/AbcIndexing.java | 39 ++++- .../flash/abc/types/traits/Trait.java | 82 ++++++----- .../flash/abc/types/traits/TraitClass.java | 18 +-- .../flash/abc/types/traits/TraitFunction.java | 10 +- .../types/traits/TraitMethodGetterSetter.java | 10 +- .../abc/types/traits/TraitSlotConst.java | 6 +- .../flash/abc/types/traits/Traits.java | 4 +- .../exporters/script/DependencyParser.java | 138 ++++++------------ .../exporters/script/LinkReportExporter.java | 4 +- .../flash/exporters/swf/SwfToSwcExporter.java | 3 +- .../flash/ActionScript3DeobfuscatorTest.java | 1 + .../testdata/as3_new/bin/as3_new.air.swf | Bin 27634 -> 27800 bytes .../testdata/as3_new/bin/as3_new.flex.swf | Bin 36290 -> 36520 bytes .../mypackage1/SetupMyPackage1.as | 1 + .../tests_classes/mypackage1/TestClass3.as | 16 ++ 17 files changed, 171 insertions(+), 163 deletions(-) create mode 100644 libsrc/ffdec_lib/testdata/as3_new/src/tests_classes/mypackage1/TestClass3.as diff --git a/CHANGELOG.md b/CHANGELOG.md index a9e37e6d7..b6486caef 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,6 +14,7 @@ All notable changes to this project will be documented in this file. - AS3 Metadata values order - AS3 Metadata in P-code formatting - AS3 Metadata single value (null item key) +- [#1981] AS3 star import collisions ## [18.3.6] - 2023-02-25 ### Fixed diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/SWF.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/SWF.java index adba388f6..9ed958b88 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/SWF.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/SWF.java @@ -456,6 +456,7 @@ public final class SWF implements SWFContainerItem, Timelined, Openable { abcIndex.addAbc(((ABCContainerTag) tag).getABC()); } } + abcIndex.rebuildPkgToObjectsNameMap(); return abcIndex; } diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/parser/script/AbcIndexing.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/parser/script/AbcIndexing.java index 8bf72e2f9..7d8b0edbb 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/parser/script/AbcIndexing.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/parser/script/AbcIndexing.java @@ -40,6 +40,8 @@ import com.jpexs.helpers.Reference; import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; +import java.util.LinkedHashMap; +import java.util.LinkedHashSet; import java.util.List; import java.util.Map; import java.util.Objects; @@ -83,6 +85,7 @@ public final class AbcIndexing { for (ABCContainerTag at : swf.getAbcList()) { addAbc(at.getABC()); } + rebuildPkgToObjectsNameMap(); } } @@ -425,6 +428,8 @@ public final class AbcIndexing { } } + private Map> pkgToObjectsName = new LinkedHashMap<>(); + private final Map classes = new HashMap<>(); private final Map instanceProperties = new HashMap<>(); @@ -436,6 +441,36 @@ public final class AbcIndexing { private final Map classNsProperties = new HashMap<>(); private final Map scriptProperties = new HashMap<>(); + + public void rebuildPkgToObjectsNameMap() { + pkgToObjectsName.clear(); + for (ClassDef cd:classes.keySet()) { + if (!(cd.type instanceof TypeItem)) { + continue; + } + if (!pkgToObjectsName.containsKey(cd.pkg)) { + pkgToObjectsName.put(cd.pkg, new LinkedHashSet<>()); + } + pkgToObjectsName.get(cd.pkg).add(((TypeItem)cd.type).fullTypeName.getLast()); + } + for (PropertyNsDef nsdef:scriptProperties.keySet()) { + if (!pkgToObjectsName.containsKey(nsdef.ns)) { + pkgToObjectsName.put(nsdef.ns, new LinkedHashSet<>()); + } + pkgToObjectsName.get(nsdef.ns).add(nsdef.propName); + } + } + + public Set getPackageObjects(DottedChain pkg) { + Set classNames = new LinkedHashSet<>(); + if (pkgToObjectsName.containsKey(pkg)) { + classNames.addAll(pkgToObjectsName.get(pkg)); + } + if (parent != null) { + classNames.addAll(parent.getPackageObjects(pkg)); + } + return classNames; + } public ClassIndex findClass(GraphTargetItem cls, ABC abc, Integer scriptIndex) { ClassDef keyWithScriptIndex = new ClassDef(cls, abc, scriptIndex); @@ -717,6 +752,7 @@ public final class AbcIndexing { } removeAbc(abc); addAbc(abc); + rebuildPkgToObjectsNameMap(); } public void removeAbc(ABC abc) { @@ -808,7 +844,7 @@ public final class AbcIndexing { } } abcs.add(abc); - selectedAbc = abc; + selectedAbc = abc; } public void selectAbc(ABC abc) { @@ -816,6 +852,7 @@ public final class AbcIndexing { selectedAbc = abc; } else { addAbc(abc); + rebuildPkgToObjectsNameMap(); } } diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/types/traits/Trait.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/types/traits/Trait.java index 2044df86c..e24f685b7 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/types/traits/Trait.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/types/traits/Trait.java @@ -49,6 +49,7 @@ import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.Map.Entry; +import java.util.Set; /** * @@ -170,14 +171,15 @@ public abstract class Trait implements Cloneable, Serializable { return getName(abc).getNamespace(abc.constants).getName(abc.constants); } - public void getDependencies(int scriptIndex, int classIndex, boolean isStatic, String ignoredCustom, ABC abc, List dependencies, List uses, DottedChain ignorePackage, List fullyQualifiedNames) throws InterruptedException { + public void getDependencies(int scriptIndex, int classIndex, boolean isStatic, String ignoredCustom, ABC abc, List dependencies, DottedChain ignorePackage, List fullyQualifiedNames) throws InterruptedException { if (ignoredCustom == null) { Namespace n = getName(abc).getNamespace(abc.constants); if (n.kind == Namespace.KIND_NAMESPACE) { ignoredCustom = n.getName(abc.constants).toRawString(); } } - DependencyParser.parseUsagesFromMultiname(ignoredCustom, abc, dependencies, uses, getName(abc), ignorePackage, fullyQualifiedNames, DependencyType.NAMESPACE); + DependencyParser.parseDependenciesFromMultiname(ignoredCustom, abc, dependencies, getName(abc), ignorePackage, fullyQualifiedNames, DependencyType.NAMESPACE); + //DependencyParser.parseUsagesFromMultiname(ignoredCustom, abc, dependencies, getName(abc), ignorePackage, fullyQualifiedNames, DependencyType.NAMESPACE); } private static final String[] builtInClasses = {"ArgumentError", "arguments", "Array", "Boolean", "Class", "Date", "DefinitionError", "Error", "EvalError", "Function", "int", "JSON", "Math", "Namespace", "Number", "Object", "QName", "RangeError", "ReferenceError", "RegExp", "SecurityError", "String", "SyntaxError", "TypeError", "uint", "URIError", "VerifyError", "XML", "XMLList"}; @@ -190,23 +192,8 @@ public abstract class Trait implements Cloneable, Serializable { } return false; } - - - public void writeUses(int scriptIndex, int classIndex, boolean isStatic, ABC abc, GraphTextWriter writer) throws InterruptedException { - List dependencies = new ArrayList<>(); - List uses = new ArrayList<>(); - String customNs = null; - Namespace ns = getName(abc).getNamespace(abc.constants); - if (ns.kind == Namespace.KIND_NAMESPACE) { - customNs = ns.getName(abc.constants).toRawString(); - } - getDependencies(scriptIndex, classIndex, isStatic, customNs, abc, dependencies, uses, null, new ArrayList<>()); - for (String us : uses) { - writer.appendNoHilight("use namespace " + us + ";").newLine(); - } - } - - public void writeImportsUsages(int scriptIndex, int classIndex, boolean isStatic, ABC abc, GraphTextWriter writer, DottedChain ignorePackage, List fullyQualifiedNames) throws InterruptedException { + + public void writeImports(AbcIndexing abcIndex, int scriptIndex, int classIndex, boolean isStatic, ABC abc, GraphTextWriter writer, DottedChain ignorePackage, List fullyQualifiedNames) throws InterruptedException { List namesInThisPackage = new ArrayList<>(); for (ABCContainerTag tag : abc.getAbcTags()) { @@ -222,13 +209,12 @@ public abstract class Trait implements Cloneable, Serializable { //imports List dependencies = new ArrayList<>(); - List uses = new ArrayList<>(); String customNs = null; Namespace ns = getName(abc).getNamespace(abc.constants); if (ns.kind == Namespace.KIND_NAMESPACE) { customNs = ns.getName(abc.constants).toRawString(); } - getDependencies(scriptIndex, classIndex, isStatic, customNs, abc, dependencies, uses, ignorePackage, new ArrayList<>()); + getDependencies(scriptIndex, classIndex, isStatic, customNs, abc, dependencies, ignorePackage, new ArrayList<>()); List imports = new ArrayList<>(); for (Dependency d : dependencies) { @@ -240,21 +226,21 @@ public abstract class Trait implements Cloneable, Serializable { List importnames = new ArrayList<>(); importnames.addAll(namesInThisPackage); importnames.addAll(Arrays.asList(builtInClasses)); - for (int i = 0; i < imports.size(); i++) { - DottedChain ipath = imports.get(i); - if (ipath.getWithoutLast().equals(ignorePackage)) { //do not check classes from same package, they are imported automatically - imports.remove(i); - i--; - continue; - } - String name = ipath.getLast(); - if (importnames.contains(name)) { - fullyQualifiedNames.add(DottedChain.parseWithSuffix(name)); - } else { - importnames.add(name); + + for (DottedChain imp : imports) { + if (imp.getLast().equals("*")) { + Set objectsInPkg = abcIndex.getPackageObjects(imp.getWithoutLast()); + for (String objectName : objectsInPkg) { + if (importnames.contains(objectName)) { + fullyQualifiedNames.add(DottedChain.parseWithSuffix(objectName)); + } else { + importnames.add(objectName); + } + } } } - + + for (int i = 0; i < imports.size(); i++) { DottedChain imp = imports.get(i); DottedChain pkg = imp.getWithoutLast(); @@ -268,6 +254,28 @@ public abstract class Trait implements Cloneable, Serializable { i--; } } + + for (int i = 0; i < imports.size(); i++) { + DottedChain ipath = imports.get(i); + String name = ipath.getLast(); + if (ipath.getWithoutLast().equals(ignorePackage)) { //do not check classes from same package, they are imported automatically + if (importnames.contains(name)) { + fullyQualifiedNames.add(DottedChain.parseWithSuffix(name)); + } + + imports.remove(i); + i--; + continue; + } + + if (importnames.contains(name)) { + fullyQualifiedNames.add(DottedChain.parseWithSuffix(name)); + } else { + importnames.add(name); + } + } + + boolean hasImport = false; Collections.sort(imports); @@ -291,12 +299,6 @@ public abstract class Trait implements Cloneable, Serializable { if (hasImport) { writer.newLine(); } - /*for (String us : uses) { - writer.appendNoHilight("use namespace " + us + ";").newLine(); - } - if (uses.size() > 0) { - writer.newLine(); - }*/ } public final GraphTextWriter getMetaData(Trait parent, ConvertData convertData, ABC abc, GraphTextWriter writer) { diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/types/traits/TraitClass.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/types/traits/TraitClass.java index b041555cd..56baffe26 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/types/traits/TraitClass.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/types/traits/TraitClass.java @@ -78,31 +78,31 @@ public class TraitClass extends Trait implements TraitWithSlot { } @Override - public void getDependencies(int scriptIndex, int classIndex, boolean isStatic, String customNs, ABC abc, List dependencies, List uses, DottedChain ignorePackage, List fullyQualifiedNames) throws InterruptedException { - super.getDependencies(scriptIndex, -1, false, customNs, abc, dependencies, uses, ignorePackage == null ? getPackage(abc) : ignorePackage, fullyQualifiedNames); + public void getDependencies(int scriptIndex, int classIndex, boolean isStatic, String customNs, ABC abc, List dependencies, DottedChain ignorePackage, List fullyQualifiedNames) throws InterruptedException { + super.getDependencies(scriptIndex, -1, false, customNs, abc, dependencies, ignorePackage == null ? getPackage(abc) : ignorePackage, fullyQualifiedNames); ClassInfo classInfo = abc.class_info.get(class_info); InstanceInfo instanceInfo = abc.instance_info.get(class_info); DottedChain packageName = instanceInfo.getName(abc.constants).getNamespace(abc.constants).getName(abc.constants); //assume not null name //DependencyParser.parseDependenciesFromMultiname(customNs, abc, dependencies, uses, abc.constants.getMultiname(instanceInfo.name_index), packageName, fullyQualifiedNames); if (instanceInfo.super_index > 0) { - DependencyParser.parseDependenciesFromMultiname(customNs, abc, dependencies, uses, abc.constants.getMultiname(instanceInfo.super_index), packageName, fullyQualifiedNames, DependencyType.INHERITANCE); + DependencyParser.parseDependenciesFromMultiname(customNs, abc, dependencies, abc.constants.getMultiname(instanceInfo.super_index), packageName, fullyQualifiedNames, DependencyType.INHERITANCE); } for (int i : instanceInfo.interfaces) { - DependencyParser.parseDependenciesFromMultiname(customNs, abc, dependencies, uses, abc.constants.getMultiname(i), packageName, fullyQualifiedNames, DependencyType.INHERITANCE); + DependencyParser.parseDependenciesFromMultiname(customNs, abc, dependencies, abc.constants.getMultiname(i), packageName, fullyQualifiedNames, DependencyType.INHERITANCE); } //static - classInfo.static_traits.getDependencies(scriptIndex, class_info, true, customNs, abc, dependencies, uses, packageName, fullyQualifiedNames); + classInfo.static_traits.getDependencies(scriptIndex, class_info, true, customNs, abc, dependencies, packageName, fullyQualifiedNames); //static initializer - DependencyParser.parseDependenciesFromMethodInfo(null, scriptIndex, class_info, true, customNs, abc, classInfo.cinit_index, dependencies, uses, packageName, fullyQualifiedNames, new ArrayList<>()); + DependencyParser.parseDependenciesFromMethodInfo(null, scriptIndex, class_info, true, customNs, abc, classInfo.cinit_index, dependencies, packageName, fullyQualifiedNames, new ArrayList<>()); //instance - instanceInfo.instance_traits.getDependencies(scriptIndex, class_info, false, customNs, abc, dependencies, uses, packageName, fullyQualifiedNames); + instanceInfo.instance_traits.getDependencies(scriptIndex, class_info, false, customNs, abc, dependencies, packageName, fullyQualifiedNames); //instance initializer - DependencyParser.parseDependenciesFromMethodInfo(null, scriptIndex, class_info, false, customNs, abc, instanceInfo.iinit_index, dependencies, uses, packageName, fullyQualifiedNames, new ArrayList<>()); + DependencyParser.parseDependenciesFromMethodInfo(null, scriptIndex, class_info, false, customNs, abc, instanceInfo.iinit_index, dependencies, packageName, fullyQualifiedNames, new ArrayList<>()); } @Override @@ -123,7 +123,7 @@ public class TraitClass extends Trait implements TraitWithSlot { DottedChain packageName = instanceInfoMultiname.getNamespace(abc.constants).getName(abc.constants); //assume not null name fullyQualifiedNames = new ArrayList<>(); - writeImportsUsages(scriptIndex, classIndex, false, abc, writer, packageName, fullyQualifiedNames); + writeImports(abcIndex, scriptIndex, classIndex, false, abc, writer, packageName, fullyQualifiedNames); String instanceInfoName = instanceInfoMultiname.getName(abc.constants, fullyQualifiedNames, false, true); diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/types/traits/TraitFunction.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/types/traits/TraitFunction.java index d7b68e43d..4db356181 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/types/traits/TraitFunction.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/types/traits/TraitFunction.java @@ -82,7 +82,7 @@ public class TraitFunction extends Trait implements TraitWithSlot { @Override public GraphTextWriter toString(AbcIndexing abcIndex, Trait parent, ConvertData convertData, String path, ABC abc, boolean isStatic, ScriptExportMode exportMode, int scriptIndex, int classIndex, GraphTextWriter writer, List fullyQualifiedNames, boolean parallel) throws InterruptedException { - writeImportsUsages(scriptIndex, classIndex, false, abc, writer, getPackage(abc), fullyQualifiedNames); + writeImports(abcIndex, scriptIndex, classIndex, false, abc, writer, getPackage(abc), fullyQualifiedNames); getMetaData(parent, convertData, abc, writer); writer.startMethod(method_info); toStringHeader(parent, convertData, path, abc, isStatic, exportMode, scriptIndex, classIndex, writer, fullyQualifiedNames, parallel); @@ -105,7 +105,7 @@ public class TraitFunction extends Trait implements TraitWithSlot { @Override public void convert(AbcIndexing abcIndex, Trait parent, ConvertData convertData, String path, ABC abc, boolean isStatic, ScriptExportMode exportMode, int scriptIndex, int classIndex, NulWriter writer, List fullyQualifiedNames, boolean parallel) throws InterruptedException { fullyQualifiedNames = new ArrayList<>(); - writeImportsUsages(scriptIndex, classIndex, false, abc, writer, getPackage(abc), fullyQualifiedNames); + writeImports(abcIndex, scriptIndex, classIndex, false, abc, writer, getPackage(abc), fullyQualifiedNames); writer.startMethod(method_info); convertHeader(parent, convertData, path, abc, isStatic, exportMode, scriptIndex, classIndex, writer, fullyQualifiedNames, parallel); int bodyIndex = abc.findBodyIndex(method_info); @@ -133,14 +133,14 @@ public class TraitFunction extends Trait implements TraitWithSlot { } @Override - public void getDependencies(int scriptIndex, int classIndex, boolean isStatic, String customNs, ABC abc, List dependencies, List uses, DottedChain ignorePackage, List fullyQualifiedNames) throws InterruptedException { + public void getDependencies(int scriptIndex, int classIndex, boolean isStatic, String customNs, ABC abc, List dependencies, DottedChain ignorePackage, List fullyQualifiedNames) throws InterruptedException { if (ignorePackage == null) { ignorePackage = getPackage(abc); } - super.getDependencies(scriptIndex, classIndex, false, customNs, abc, dependencies, uses, ignorePackage, fullyQualifiedNames); + super.getDependencies(scriptIndex, classIndex, false, customNs, abc, dependencies, ignorePackage, fullyQualifiedNames); //if (method_info != 0) { - DependencyParser.parseDependenciesFromMethodInfo(this, scriptIndex, classIndex, false, customNs, abc, method_info, dependencies, uses, ignorePackage, fullyQualifiedNames, new ArrayList<>()); + DependencyParser.parseDependenciesFromMethodInfo(this, scriptIndex, classIndex, false, customNs, abc, method_info, dependencies, ignorePackage, fullyQualifiedNames, new ArrayList<>()); } } diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/types/traits/TraitMethodGetterSetter.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/types/traits/TraitMethodGetterSetter.java index 7764e2443..3544d5949 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/types/traits/TraitMethodGetterSetter.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/types/traits/TraitMethodGetterSetter.java @@ -63,11 +63,11 @@ public class TraitMethodGetterSetter extends Trait { } @Override - public void getDependencies(int scriptIndex, int classIndex, boolean isStatic, String customNs, ABC abc, List dependencies, List uses, DottedChain ignorePackage, List fullyQualifiedNames) throws InterruptedException { + public void getDependencies(int scriptIndex, int classIndex, boolean isStatic, String customNs, ABC abc, List dependencies, DottedChain ignorePackage, List fullyQualifiedNames) throws InterruptedException { if (ignorePackage == null) { ignorePackage = getPackage(abc); } - super.getDependencies(scriptIndex, classIndex, isStatic, customNs, abc, dependencies, uses, ignorePackage, fullyQualifiedNames); + super.getDependencies(scriptIndex, classIndex, isStatic, customNs, abc, dependencies, ignorePackage, fullyQualifiedNames); if (customNs == null) { Namespace n = getName(abc).getNamespace(abc.constants); @@ -77,7 +77,7 @@ public class TraitMethodGetterSetter extends Trait { } //if (method_info != 0) { - DependencyParser.parseDependenciesFromMethodInfo(this, scriptIndex, classIndex, isStatic, customNs, abc, method_info, dependencies, uses, ignorePackage, fullyQualifiedNames, new ArrayList<>()); + DependencyParser.parseDependenciesFromMethodInfo(this, scriptIndex, classIndex, isStatic, customNs, abc, method_info, dependencies, ignorePackage, fullyQualifiedNames, new ArrayList<>()); } } @@ -110,7 +110,7 @@ public class TraitMethodGetterSetter extends Trait { @Override public void convert(AbcIndexing abcIndex, Trait parent, ConvertData convertData, String path, ABC abc, boolean isStatic, ScriptExportMode exportMode, int scriptIndex, int classIndex, NulWriter writer, List fullyQualifiedNames, boolean parallel) throws InterruptedException { if (classIndex < 0) { - writeImportsUsages(scriptIndex, classIndex, isStatic, abc, writer, getPackage(abc), fullyQualifiedNames); + writeImports(abcIndex, scriptIndex, classIndex, isStatic, abc, writer, getPackage(abc), fullyQualifiedNames); } writer.startMethod(method_info); path = path + "." + getName(abc).getName(abc.constants, fullyQualifiedNames, false, true); @@ -132,7 +132,7 @@ public class TraitMethodGetterSetter extends Trait { public GraphTextWriter toString(AbcIndexing abcIndex, Trait parent, ConvertData convertData, String path, ABC abc, boolean isStatic, ScriptExportMode exportMode, int scriptIndex, int classIndex, GraphTextWriter writer, List fullyQualifiedNames, boolean parallel) throws InterruptedException { if (classIndex < 0) { - writeImportsUsages(scriptIndex, classIndex, isStatic, abc, writer, getPackage(abc), fullyQualifiedNames); + writeImports(abcIndex, scriptIndex, classIndex, isStatic, abc, writer, getPackage(abc), fullyQualifiedNames); } getMetaData(parent, convertData, abc, writer); writer.startMethod(method_info); diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/types/traits/TraitSlotConst.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/types/traits/TraitSlotConst.java index 9f782d06d..bea04594a 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/types/traits/TraitSlotConst.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/types/traits/TraitSlotConst.java @@ -221,12 +221,12 @@ public class TraitSlotConst extends Trait implements TraitWithSlot { } @Override - public void getDependencies(int scriptIndex, int classIndex, boolean isStatic, String customNs, ABC abc, List dependencies, List uses, DottedChain ignorePackage, List fullyQualifiedNames) throws InterruptedException { + public void getDependencies(int scriptIndex, int classIndex, boolean isStatic, String customNs, ABC abc, List dependencies, DottedChain ignorePackage, List fullyQualifiedNames) throws InterruptedException { if (ignorePackage == null) { ignorePackage = getPackage(abc); } - super.getDependencies(scriptIndex, classIndex, isStatic, customNs, abc, dependencies, uses, ignorePackage, fullyQualifiedNames); - DependencyParser.parseDependenciesFromMultiname(customNs, abc, dependencies, uses, abc.constants.getMultiname(type_index), getPackage(abc), fullyQualifiedNames, DependencyType.SIGNATURE); + super.getDependencies(scriptIndex, classIndex, isStatic, customNs, abc, dependencies, ignorePackage, fullyQualifiedNames); + DependencyParser.parseDependenciesFromMultiname(customNs, abc, dependencies, abc.constants.getMultiname(type_index), getPackage(abc), fullyQualifiedNames, DependencyType.SIGNATURE); } @Override diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/types/traits/Traits.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/types/traits/Traits.java index 26f69f7f9..343a6039a 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/types/traits/Traits.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/types/traits/Traits.java @@ -298,9 +298,9 @@ public class Traits implements Cloneable, Serializable { } } - public void getDependencies(int scriptIndex, int classIndex, boolean isStatic, String customNs, ABC abc, List dependencies, List uses, DottedChain ignorePackage, List fullyQualifiedNames) throws InterruptedException { + public void getDependencies(int scriptIndex, int classIndex, boolean isStatic, String customNs, ABC abc, List dependencies, DottedChain ignorePackage, List fullyQualifiedNames) throws InterruptedException { for (Trait t : traits) { - t.getDependencies(scriptIndex, classIndex, isStatic, customNs, abc, dependencies, uses, ignorePackage, fullyQualifiedNames); + t.getDependencies(scriptIndex, classIndex, isStatic, customNs, abc, dependencies, ignorePackage, fullyQualifiedNames); } } diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/exporters/script/DependencyParser.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/exporters/script/DependencyParser.java index d3803272b..5216b2b7c 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/exporters/script/DependencyParser.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/exporters/script/DependencyParser.java @@ -21,10 +21,15 @@ import com.jpexs.decompiler.flash.abc.avm2.AVM2Code; import com.jpexs.decompiler.flash.abc.avm2.AVM2Deobfuscation; import com.jpexs.decompiler.flash.abc.avm2.instructions.AVM2Instruction; import com.jpexs.decompiler.flash.abc.avm2.instructions.alchemy.AlchemyTypeIns; +import com.jpexs.decompiler.flash.abc.avm2.instructions.construction.ConstructPropIns; import com.jpexs.decompiler.flash.abc.avm2.instructions.construction.NewFunctionIns; import com.jpexs.decompiler.flash.abc.avm2.instructions.other.FindPropertyIns; import com.jpexs.decompiler.flash.abc.avm2.instructions.other.FindPropertyStrictIns; import com.jpexs.decompiler.flash.abc.avm2.instructions.other.GetLexIns; +import com.jpexs.decompiler.flash.abc.avm2.instructions.other.GetPropertyIns; +import com.jpexs.decompiler.flash.abc.avm2.instructions.other.GetSuperIns; +import com.jpexs.decompiler.flash.abc.avm2.instructions.other.SetPropertyIns; +import com.jpexs.decompiler.flash.abc.avm2.instructions.other.SetSuperIns; import com.jpexs.decompiler.flash.abc.avm2.instructions.types.AsTypeIns; import com.jpexs.decompiler.flash.abc.avm2.instructions.types.CoerceIns; import com.jpexs.decompiler.flash.abc.avm2.model.InitVectorAVM2Item; @@ -41,16 +46,36 @@ import java.util.List; public class DependencyParser { - public static void parseDependenciesFromNS(String ignoredCustom, ABC abc, List dependencies, List uses, int namespace_index, DottedChain ignorePackage, String name, DependencyType dependencyType) { + public static void parseDependenciesFromNS(String ignoredCustom, ABC abc, List dependencies, int namespace_index, DottedChain ignorePackage, String name, DependencyType dependencyType) { Namespace ns = abc.constants.getNamespace(namespace_index); if (name.isEmpty()) { name = "*"; } DottedChain newimport = ns.getName(abc.constants); - if (parseUsagesFromNS(ignoredCustom, abc, dependencies, uses, namespace_index, ignorePackage, name)) { - return; - } else if (ns.kind != Namespace.KIND_PACKAGE) { // && (ns.kind != Namespace.KIND_PACKAGE_INTERNAL)) { + + if (ns.kind == Namespace.KIND_NAMESPACE || ns.kind == Namespace.KIND_PACKAGE_INTERNAL) { + String nsVal = ns.getName(abc.constants).toRawString(); + for (ABCContainerTag abcTag : abc.getAbcTags()) { + DottedChain nsimport = abcTag.getABC().nsValueToName(nsVal); + if (nsimport.equals(AVM2Deobfuscation.BUILTIN)) { + return; //builtin, no dependency + } + if (!nsimport.isEmpty()) { + + Dependency depNs = new Dependency(nsimport, DependencyType.NAMESPACE); + if ((ignorePackage == null || !nsimport.getWithoutLast().equals(ignorePackage)) && !dependencies.contains(depNs)) { + dependencies.add(depNs); + } + if (ignoredCustom != null && nsVal.equals(ignoredCustom)) { + return; + } + return; + } + } + } + + if (ns.kind != Namespace.KIND_PACKAGE) { // && (ns.kind != Namespace.KIND_PACKAGE_INTERNAL)) { return; } newimport = newimport.addWithSuffix(name); @@ -68,15 +93,15 @@ public class DependencyParser { //} } - public static void parseDependenciesFromMultiname(String ignoredCustom, ABC abc, List dependencies, List uses, Multiname m, DottedChain ignorePackage, List fullyQualifiedNames, DependencyType dependencyType) { + public static void parseDependenciesFromMultiname(String ignoredCustom, ABC abc, List dependencies, Multiname m, DottedChain ignorePackage, List fullyQualifiedNames, DependencyType dependencyType) { if (m != null) { if (m.kind == Multiname.TYPENAME) { if (m.qname_index != 0) { - parseDependenciesFromMultiname(ignoredCustom, abc, dependencies, uses, abc.constants.getMultiname(m.qname_index), ignorePackage, fullyQualifiedNames, dependencyType); + parseDependenciesFromMultiname(ignoredCustom, abc, dependencies, abc.constants.getMultiname(m.qname_index), ignorePackage, fullyQualifiedNames, dependencyType); } for (Integer i : m.params) { if (i != 0) { - parseDependenciesFromMultiname(ignoredCustom, abc, dependencies, uses, abc.constants.getMultiname(i), ignorePackage, fullyQualifiedNames, dependencyType); + parseDependenciesFromMultiname(ignoredCustom, abc, dependencies, abc.constants.getMultiname(i), ignorePackage, fullyQualifiedNames, dependencyType); } } return; @@ -85,35 +110,35 @@ public class DependencyParser { String name = m.getName(abc.constants, fullyQualifiedNames, true, true); NamespaceSet nss = m.getNamespaceSet(abc.constants); if (ns != null) { - parseDependenciesFromNS(ignoredCustom, abc, dependencies, uses, m.namespace_index, ignorePackage, name, dependencyType); + parseDependenciesFromNS(ignoredCustom, abc, dependencies, m.namespace_index, ignorePackage, name, dependencyType); } if (nss != null) { for (int n : nss.namespaces) { - parseDependenciesFromNS(ignoredCustom, abc, dependencies, uses, n, ignorePackage, nss.namespaces.length > 1 ? "" : name, dependencyType); + parseDependenciesFromNS(ignoredCustom, abc, dependencies, n, ignorePackage, nss.namespaces.length > 1 ? "" : name, dependencyType); } } } } - public static void parseDependenciesFromMethodInfo(Trait trait, int scriptIndex, int classIndex, boolean isStatic, String ignoredCustom, ABC abc, int method_index, List dependencies, List uses, DottedChain ignorePackage, List fullyQualifiedNames, List visitedMethods) throws InterruptedException { + public static void parseDependenciesFromMethodInfo(Trait trait, int scriptIndex, int classIndex, boolean isStatic, String ignoredCustom, ABC abc, int method_index, List dependencies, DottedChain ignorePackage, List fullyQualifiedNames, List visitedMethods) throws InterruptedException { if ((method_index < 0) || (method_index >= abc.method_info.size())) { return; } visitedMethods.add(method_index); if (abc.method_info.get(method_index).ret_type != 0) { - parseDependenciesFromMultiname(ignoredCustom, abc, dependencies, uses, abc.constants.getMultiname(abc.method_info.get(method_index).ret_type), ignorePackage, fullyQualifiedNames, DependencyType.SIGNATURE); + parseDependenciesFromMultiname(ignoredCustom, abc, dependencies, abc.constants.getMultiname(abc.method_info.get(method_index).ret_type), ignorePackage, fullyQualifiedNames, DependencyType.SIGNATURE); } for (int t : abc.method_info.get(method_index).param_types) { if (t != 0) { - parseDependenciesFromMultiname(ignoredCustom, abc, dependencies, uses, abc.constants.getMultiname(t), ignorePackage, fullyQualifiedNames, DependencyType.SIGNATURE); + parseDependenciesFromMultiname(ignoredCustom, abc, dependencies, abc.constants.getMultiname(t), ignorePackage, fullyQualifiedNames, DependencyType.SIGNATURE); } } MethodBody body = abc.findBody(method_index); if (body != null && body.convertException == null) { body = body.convertMethodBodyCanUseLast(Configuration.autoDeobfuscate.get(), "", isStatic, scriptIndex, classIndex, abc, trait); - body.traits.getDependencies(scriptIndex, classIndex, isStatic, ignoredCustom, abc, dependencies, uses, ignorePackage, fullyQualifiedNames); + body.traits.getDependencies(scriptIndex, classIndex, isStatic, ignoredCustom, abc, dependencies, ignorePackage, fullyQualifiedNames); for (ABCException ex : body.exceptions) { - parseDependenciesFromMultiname(ignoredCustom, abc, dependencies, uses, abc.constants.getMultiname(ex.type_index), ignorePackage, fullyQualifiedNames, DependencyType.EXPRESSION /* or signature?*/); + parseDependenciesFromMultiname(ignoredCustom, abc, dependencies, abc.constants.getMultiname(ex.type_index), ignorePackage, fullyQualifiedNames, DependencyType.EXPRESSION /* or signature?*/); } for (AVM2Instruction ins : body.getCode().code) { if (ins.definition instanceof AlchemyTypeIns) { @@ -126,93 +151,20 @@ public class DependencyParser { if (ins.definition instanceof NewFunctionIns) { if (ins.operands[0] != method_index) { if (!visitedMethods.contains(ins.operands[0])) { - parseDependenciesFromMethodInfo(trait, scriptIndex, classIndex, isStatic, ignoredCustom, abc, ins.operands[0], dependencies, uses, ignorePackage, fullyQualifiedNames, visitedMethods); + parseDependenciesFromMethodInfo(trait, scriptIndex, classIndex, isStatic, ignoredCustom, abc, ins.operands[0], dependencies, ignorePackage, fullyQualifiedNames, visitedMethods); } } } - if ((ins.definition instanceof FindPropertyStrictIns) - || (ins.definition instanceof FindPropertyIns) - || (ins.definition instanceof GetLexIns) - || (ins.definition instanceof CoerceIns) - || (ins.definition instanceof AsTypeIns)) { - int m = ins.operands[0]; - if (m != 0) { + for (int k = 0; k < ins.definition.operands.length; k++) { + if (ins.definition.operands[k] == AVM2Code.DAT_MULTINAME_INDEX) { + int m = ins.operands[k]; if (m < abc.constants.getMultinameCount()) { - parseDependenciesFromMultiname(ignoredCustom, abc, dependencies, uses, abc.constants.getMultiname(m), ignorePackage, fullyQualifiedNames, DependencyType.EXPRESSION); - } - } - } else { - for (int k = 0; k < ins.definition.operands.length; k++) { - if (ins.definition.operands[k] == AVM2Code.DAT_MULTINAME_INDEX) { - int multinameIndex = ins.operands[k]; - if (multinameIndex < abc.constants.getMultinameCount()) { - parseUsagesFromMultiname(ignoredCustom, abc, dependencies, uses, abc.constants.getMultiname(multinameIndex), ignorePackage, fullyQualifiedNames, DependencyType.EXPRESSION); - } + parseDependenciesFromMultiname(ignoredCustom, abc, dependencies, abc.constants.getMultiname(m), ignorePackage, fullyQualifiedNames, DependencyType.EXPRESSION); } } } } } - } - - public static void parseUsagesFromMultiname(String ignoredCustom, ABC abc, List dependencies, List uses, Multiname m, DottedChain ignorePackage, List fullyQualifiedNames, DependencyType dependencyType) { - if (m != null) { - if (m.kind == Multiname.TYPENAME) { - if (m.qname_index != 0) { - parseUsagesFromMultiname(ignoredCustom, abc, dependencies, uses, abc.constants.getMultiname(m.qname_index), ignorePackage, fullyQualifiedNames, dependencyType); - } - for (Integer i : m.params) { - if (i != 0) { - parseUsagesFromMultiname(ignoredCustom, abc, dependencies, uses, abc.constants.getMultiname(i), ignorePackage, fullyQualifiedNames, dependencyType); - } - } - return; - } - Namespace ns = m.getNamespace(abc.constants); - String name = m.getName(abc.constants, fullyQualifiedNames, false, true); - NamespaceSet nss = m.getNamespaceSet(abc.constants); - if (ns != null) { - parseUsagesFromNS(ignoredCustom, abc, dependencies, uses, m.namespace_index, ignorePackage, name); - } - if (nss != null) { - if (nss.namespaces.length == 1) { - parseUsagesFromNS(ignoredCustom, abc, dependencies, uses, nss.namespaces[0], ignorePackage, name); - } else { - for (int n : nss.namespaces) { - parseUsagesFromNS(ignoredCustom, abc, dependencies, uses, n, ignorePackage, ""); - } - } - } - } - } - - private static boolean parseUsagesFromNS(String ignoredCustom, ABC abc, List dependencies, List uses, int namespace_index, DottedChain ignorePackage, String name) { - Namespace ns = abc.constants.getNamespace(namespace_index); - - if (ns.kind == Namespace.KIND_NAMESPACE || ns.kind == Namespace.KIND_PACKAGE_INTERNAL) { - String nsVal = ns.getName(abc.constants).toRawString(); - for (ABCContainerTag abcTag : abc.getAbcTags()) { - DottedChain nsimport = abcTag.getABC().nsValueToName(nsVal); - if (nsimport.equals(AVM2Deobfuscation.BUILTIN)) { - return true; //handled, but import/use not added - } - if (!nsimport.isEmpty()) { - - Dependency depNs = new Dependency(nsimport, DependencyType.NAMESPACE); - if ((ignorePackage == null || !nsimport.getWithoutLast().equals(ignorePackage)) && !dependencies.contains(depNs)) { - dependencies.add(depNs); - } - if (ignoredCustom != null && nsVal.equals(ignoredCustom)) { - return true; - } - if (!uses.contains(nsimport.getLast())) { - uses.add(nsimport.getLast()); - } - return true; - } - } - } - return false; - } + } } diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/exporters/script/LinkReportExporter.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/exporters/script/LinkReportExporter.java index 04838939f..cbeb6b198 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/exporters/script/LinkReportExporter.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/exporters/script/LinkReportExporter.java @@ -163,11 +163,9 @@ public class LinkReportExporter { reportTrait(scriptIndex, externalDefs, existingObjects, swf, abc, it); } List dependencies = new ArrayList<>(); - List uses = new ArrayList<>(); - sb.append(indent(3)).append("").append(newLineChar); //Automatic - tc.getDependencies(scriptIndex, -1, false, null, abc, dependencies, uses, new DottedChain(new String[]{"FAKE!PACKAGE"}), new ArrayList<>()); + tc.getDependencies(scriptIndex, -1, false, null, abc, dependencies, new DottedChain(new String[]{"FAKE!PACKAGE"}), new ArrayList<>()); for (Dependency dependency : dependencies) { DottedChain dc = dependency.getId(); if (!"*".equals(dc.getLast())) { diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/exporters/swf/SwfToSwcExporter.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/exporters/swf/SwfToSwcExporter.java index f42eccdcf..f4929e75c 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/exporters/swf/SwfToSwcExporter.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/exporters/swf/SwfToSwcExporter.java @@ -148,8 +148,7 @@ public class SwfToSwcExporter { sb.append(" \n"); if (!skipDependencies) { List dependencies = new ArrayList<>(); - List uses = new ArrayList<>(); - pack.abc.script_info.get(pack.scriptIndex).traits.getDependencies(pack.scriptIndex, -1, false, null, pack.abc, dependencies, uses, new DottedChain(new String[]{"NO:PACKAGE"}), new ArrayList<>()); + pack.abc.script_info.get(pack.scriptIndex).traits.getDependencies(pack.scriptIndex, -1, false, null, pack.abc, dependencies, new DottedChain(new String[]{"NO:PACKAGE"}), new ArrayList<>()); for (Dependency d : dependencies) { if ("*".equals(d.getId().getLast())) { diff --git a/libsrc/ffdec_lib/test/com/jpexs/decompiler/flash/ActionScript3DeobfuscatorTest.java b/libsrc/ffdec_lib/test/com/jpexs/decompiler/flash/ActionScript3DeobfuscatorTest.java index fddd4e9eb..097c52b93 100644 --- a/libsrc/ffdec_lib/test/com/jpexs/decompiler/flash/ActionScript3DeobfuscatorTest.java +++ b/libsrc/ffdec_lib/test/com/jpexs/decompiler/flash/ActionScript3DeobfuscatorTest.java @@ -130,6 +130,7 @@ public class ActionScript3DeobfuscatorTest extends ActionScriptTestBase { }); AbcIndexing index = swf.getAbcIndex(); index.addAbc(abc); + index.rebuildPkgToObjectsNameMap(); ActionScript3Parser par = new ActionScript3Parser(index); HighlightedTextWriter writer = new HighlightedTextWriter(new CodeFormatting(), false); par.addScript(str, "Test.as", 0, 0); diff --git a/libsrc/ffdec_lib/testdata/as3_new/bin/as3_new.air.swf b/libsrc/ffdec_lib/testdata/as3_new/bin/as3_new.air.swf index 90d1ef521a3a1d805c0295f73bbec40e026dbaef..a9cbff8cafb3feb61863ccb9b0f9b4025451a954 100644 GIT binary patch literal 27800 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 literal 27634 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 G+m|CoM2YqQ diff --git a/libsrc/ffdec_lib/testdata/as3_new/src/tests_classes/mypackage1/SetupMyPackage1.as b/libsrc/ffdec_lib/testdata/as3_new/src/tests_classes/mypackage1/SetupMyPackage1.as index c89fca656..d16501426 100644 --- a/libsrc/ffdec_lib/testdata/as3_new/src/tests_classes/mypackage1/SetupMyPackage1.as +++ b/libsrc/ffdec_lib/testdata/as3_new/src/tests_classes/mypackage1/SetupMyPackage1.as @@ -5,6 +5,7 @@ package tests_classes.mypackage1 myNamespace; TestClass; TestClass2; + TestClass3; TestInterface; public function SetupMyPackage1() diff --git a/libsrc/ffdec_lib/testdata/as3_new/src/tests_classes/mypackage1/TestClass3.as b/libsrc/ffdec_lib/testdata/as3_new/src/tests_classes/mypackage1/TestClass3.as new file mode 100644 index 000000000..c911c767a --- /dev/null +++ b/libsrc/ffdec_lib/testdata/as3_new/src/tests_classes/mypackage1/TestClass3.as @@ -0,0 +1,16 @@ +package tests_classes.mypackage1 +{ + import tests_classes.mypackage2.*; + import flash.utils.Dictionary; + + public class TestClass3 + { + private var c:tests_classes.mypackage1.TestClass; + + public function run() : void { + var a:Dictionary = new Dictionary(); + a["test"] = 5; + trace(a["test"]); + } + } +} \ No newline at end of file