Not sure why Konloch put whis in the Todo list but here we go

This commit is contained in:
ItzSomebody 2018-01-31 08:04:56 -08:00
parent 40a7815a9d
commit a786425b92

AI 샘플 코드 생성 중입니다

Loading...
68 changed files with 44 additions and 6 deletions

View File

@ -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);

View File

@ -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);
}
}