Not sure why Konloch put whis in the Todo list but here we go
This commit is contained in:
parent
40a7815a9d
commit
a786425b92
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -47,12 +47,7 @@ import the.bytecode.club.bytecodeviewer.obfuscators.rename.RenameClasses;
|
|||
import the.bytecode.club.bytecodeviewer.obfuscators.rename.RenameFields;
|
||||
import the.bytecode.club.bytecodeviewer.obfuscators.rename.RenameMethods;
|
||||
import the.bytecode.club.bytecodeviewer.plugin.PluginManager;
|
||||
import the.bytecode.club.bytecodeviewer.plugin.preinstalled.CodeSequenceDiagram;
|
||||
import the.bytecode.club.bytecodeviewer.plugin.preinstalled.AllatoriStringDecrypter;
|
||||
import the.bytecode.club.bytecodeviewer.plugin.preinstalled.ShowAllStrings;
|
||||
import the.bytecode.club.bytecodeviewer.plugin.preinstalled.ShowMainMethods;
|
||||
import the.bytecode.club.bytecodeviewer.plugin.preinstalled.ZKMStringDecrypter;
|
||||
import the.bytecode.club.bytecodeviewer.plugin.preinstalled.ZStringArrayDecrypter;
|
||||
import the.bytecode.club.bytecodeviewer.plugin.preinstalled.*;
|
||||
|
||||
import javax.swing.JSpinner;
|
||||
import javax.swing.SpinnerNumberModel;
|
||||
|
@ -299,6 +294,8 @@ public class MainViewerGUI extends JFrame implements FileChangeNotifier {
|
|||
public JMenuBar menuBar = new JMenuBar();
|
||||
public final JMenuItem mntmReplaceStrings = new JMenuItem(
|
||||
"Replace Strings");
|
||||
public final JMenuItem mntmStackFramesRemover = new JMenuItem(
|
||||
"StackFrames Remover");
|
||||
public final JMenuItem mntmNewMenuItem_4 = new JMenuItem("");
|
||||
public final JMenu mnNewMenu_3 = new JMenu("CFR");
|
||||
public final JMenu mnNewMenu_4 = new JMenu("Procyon");
|
||||
|
@ -2002,7 +1999,15 @@ public class MainViewerGUI extends JFrame implements FileChangeNotifier {
|
|||
}
|
||||
});
|
||||
|
||||
mntmStackFramesRemover.addActionListener(new ActionListener() {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
PluginManager.runPlugin(new StackFramesRemover());
|
||||
}
|
||||
});
|
||||
|
||||
mnNewMenu_1.add(mntmZstringarrayDecrypter);
|
||||
mnNewMenu_1.add(mntmStackFramesRemover);
|
||||
|
||||
menuBar.add(mntmNewMenuItem_4);
|
||||
|
||||
|
|
|
@ -0,0 +1,33 @@
|
|||
package the.bytecode.club.bytecodeviewer.plugin.preinstalled;
|
||||
|
||||
import org.objectweb.asm.tree.AbstractInsnNode;
|
||||
import org.objectweb.asm.tree.ClassNode;
|
||||
import org.objectweb.asm.tree.FrameNode;
|
||||
import org.objectweb.asm.tree.MethodNode;
|
||||
import the.bytecode.club.bytecodeviewer.api.Plugin;
|
||||
import the.bytecode.club.bytecodeviewer.api.PluginConsole;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
|
||||
public class StackFramesRemover extends Plugin {
|
||||
|
||||
@Override
|
||||
public void execute(ArrayList<ClassNode> classNodeList) {
|
||||
AtomicInteger counter = new AtomicInteger();
|
||||
PluginConsole frame = new PluginConsole("StackFrames Remover");
|
||||
for (ClassNode cn : classNodeList) {
|
||||
for (MethodNode mn : cn.methods) {
|
||||
for (AbstractInsnNode insn : mn.instructions.toArray()) {
|
||||
if (insn instanceof FrameNode) {
|
||||
mn.instructions.remove(insn);
|
||||
counter.incrementAndGet();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
frame.appendText(String.format("Removed %s stackframes.", counter));
|
||||
frame.setVisible(true);
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user