mirror of
https://git.huckle.dev/Huckles-Minecraft-Archive/jpexs-decompiler.git
synced 2026-06-22 16:36:17 +00:00
AS2 fixed class detection
Issue #269 command line parameters for switching on/off deobfuscation and paralellspeedup
This commit is contained in:
@@ -573,8 +573,8 @@ public class SWF {
|
||||
};
|
||||
new RetryTask(rio, handler).run();
|
||||
synchronized (ABC.class) {
|
||||
long time=stopTime-startTime;
|
||||
informListeners("export", "Exported script " + index.getAndIncrement() + "/" + count + " " + path+", "+Helper.formatTimeSec(time));
|
||||
long time = stopTime - startTime;
|
||||
informListeners("export", "Exported script " + index.getAndIncrement() + "/" + count + " " + path + ", " + Helper.formatTimeSec(time));
|
||||
}
|
||||
return null;
|
||||
}
|
||||
@@ -607,7 +607,7 @@ public class SWF {
|
||||
}
|
||||
List<MyEntry<ClassPath, ScriptPack>> packs = getAS3Packs();
|
||||
for (MyEntry<ClassPath, ScriptPack> item : packs) {
|
||||
Future<File> future = executor.submit(new ExportPackTask(handler, cnt, packs.size(), item.key, item.value, outdir, abcTags, isPcode,paralel));
|
||||
Future<File> future = executor.submit(new ExportPackTask(handler, cnt, packs.size(), item.key, item.value, outdir, abcTags, isPcode, paralel));
|
||||
futureResults.add(future);
|
||||
}
|
||||
|
||||
|
||||
@@ -356,7 +356,7 @@ public class ActionPush extends Action {
|
||||
}
|
||||
}
|
||||
if (dvt.computedRegValue instanceof TemporaryRegister) {
|
||||
stack.push(((TemporaryRegister) dvt.computedRegValue).value);
|
||||
stack.push(new TemporaryRegister(((RegisterNumber) o).number, ((TemporaryRegister) dvt.computedRegValue).value));
|
||||
} else {
|
||||
stack.push(dvt);
|
||||
}
|
||||
|
||||
@@ -95,8 +95,11 @@ public class ActionSetProperty extends Action {
|
||||
ret = new PreDecrementActionItem(this, ((DecrementActionItem) value).object);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
sr.temporary = true;
|
||||
((SetPropertyActionItem) ret).setValue(sr);
|
||||
}
|
||||
variables.put("__register" + sr.register.number, new TemporaryRegister(ret));
|
||||
variables.put("__register" + sr.register.number, new TemporaryRegister(sr.register.number, ret));
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -106,10 +106,13 @@ public class ActionSetVariable extends Action {
|
||||
ret = new PreDecrementActionItem(this, ((DecrementActionItem) value).object);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
sr.temporary = true;
|
||||
((SetVariableActionItem) ret).setValue(sr);
|
||||
}
|
||||
|
||||
|
||||
variables.put("__register" + sr.register.number, new TemporaryRegister(ret));
|
||||
variables.put("__register" + sr.register.number, new TemporaryRegister(sr.register.number, ret));
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -107,8 +107,11 @@ public class ActionSetMember extends Action {
|
||||
ret = new PreDecrementActionItem(this, ((DecrementActionItem) value).object);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
sr.temporary = true;
|
||||
((SetMemberActionItem) ret).setValue(sr);
|
||||
}
|
||||
variables.put("__register" + sr.register.number, new TemporaryRegister(ret));
|
||||
variables.put("__register" + sr.register.number, new TemporaryRegister(sr.register.number, ret));
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -625,6 +625,59 @@ public class Main {
|
||||
offerAssociation();
|
||||
showModeFrame();
|
||||
} else {
|
||||
if (args[pos].equals("-config")) {
|
||||
pos++;
|
||||
if (args.length <= pos) {
|
||||
System.err.println("Config values expected");
|
||||
badArguments();
|
||||
}
|
||||
String cfgStr = args[pos];
|
||||
String cfgs[];
|
||||
if (cfgStr.contains(",")) {
|
||||
cfgs = cfgStr.split(",");
|
||||
} else {
|
||||
cfgs = new String[]{cfgStr};
|
||||
}
|
||||
|
||||
String booleanKeys[] = new String[]{
|
||||
"decompile",
|
||||
"paralelSpeedUp",
|
||||
"internalFlashViewer",
|
||||
"autoDeobfuscate",
|
||||
"cacheOnDisk"};
|
||||
|
||||
for (String c : cfgs) {
|
||||
String cp[];
|
||||
if (c.contains("=")) {
|
||||
cp = c.split("=");
|
||||
} else {
|
||||
cp = new String[]{c, "1"};
|
||||
}
|
||||
String key = cp[0];
|
||||
String value = cp[1];
|
||||
for (String bk : booleanKeys) {
|
||||
if (key.toLowerCase().equals(bk.toLowerCase())) {
|
||||
Boolean bValue = null;
|
||||
if (value.equals("0") || value.toLowerCase().equals("false") || value.toLowerCase().equals("no") || value.toLowerCase().equals("off")) {
|
||||
bValue = false;
|
||||
}
|
||||
if (value.equals("1") || value.toLowerCase().equals("true") || value.toLowerCase().equals("yes") || value.toLowerCase().equals("on")) {
|
||||
bValue = true;
|
||||
}
|
||||
if (bValue != null) {
|
||||
System.out.println("Config " + bk + " set to " + bValue);
|
||||
Configuration.setConfig(bk, bValue);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
pos++;
|
||||
if (args.length <= pos) {
|
||||
saveConfig();
|
||||
System.out.println("Configuration saved");
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (args[pos].equals("-removefromcontextmenu")) {
|
||||
addToContextMenu(false);
|
||||
} else if (args[pos].equals("-addtocontextmenu")) {
|
||||
@@ -942,12 +995,16 @@ public class Main {
|
||||
}
|
||||
}
|
||||
|
||||
public static void exit() {
|
||||
public static void saveConfig() {
|
||||
try {
|
||||
Configuration.saveToFile(getConfigFile(), getReplacementsFile());
|
||||
} catch (IOException ex) {
|
||||
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
|
||||
}
|
||||
}
|
||||
|
||||
public static void exit() {
|
||||
saveConfig();
|
||||
FlashPlayerPanel.unload();
|
||||
System.exit(0);
|
||||
}
|
||||
|
||||
@@ -2598,7 +2598,7 @@ public class MainFrame extends AppRibbonFrame implements ActionListener, TreeSel
|
||||
Main.stopWork();
|
||||
long timeAfter = System.currentTimeMillis();
|
||||
long timeMs = timeAfter - timeBefore;
|
||||
|
||||
|
||||
setStatus(translate("export.finishedin").replace("%time%", Helper.formatTimeSec(timeMs)));
|
||||
}
|
||||
}).start();
|
||||
|
||||
@@ -260,7 +260,7 @@ public class ActionPanel extends JPanel implements ActionListener {
|
||||
}else{
|
||||
editor.setContentType("text/flasm");
|
||||
}*/
|
||||
editor.setText(stripped);
|
||||
editor.setText(stripped);
|
||||
for (Highlighting h : disassembledHilights) {
|
||||
if (h.offset == offset) {
|
||||
if (h.startPos <= editor.getText().length()) {
|
||||
|
||||
@@ -48,7 +48,7 @@ public class DoActionTag extends Tag implements ASMSource {
|
||||
/**
|
||||
* Constructor
|
||||
*
|
||||
* @param swf
|
||||
* @param swf
|
||||
* @param data Data bytes
|
||||
* @param version SWF version
|
||||
* @param pos
|
||||
|
||||
Reference in New Issue
Block a user