From 295eceece371b516e771de93b6127bf728999483 Mon Sep 17 00:00:00 2001 From: jeff Date: Sat, 26 Jul 2014 19:24:00 -0400 Subject: initial commit so far source analysis is working. =) --- src/cuchaz/enigma/Main.java | 63 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 src/cuchaz/enigma/Main.java (limited to 'src/cuchaz/enigma/Main.java') diff --git a/src/cuchaz/enigma/Main.java b/src/cuchaz/enigma/Main.java new file mode 100644 index 0000000..e08c16e --- /dev/null +++ b/src/cuchaz/enigma/Main.java @@ -0,0 +1,63 @@ +/******************************************************************************* + * Copyright (c) 2014 Jeff Martin. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the GNU Public License v3.0 + * which accompanies this distribution, and is available at + * http://www.gnu.org/licenses/gpl.html + * + * Contributors: + * Jeff Martin - initial API and implementation + ******************************************************************************/ +package cuchaz.enigma; + +import java.io.File; + +import cuchaz.enigma.analysis.Analyzer; +import cuchaz.enigma.analysis.SourceIndex; +import cuchaz.enigma.gui.ClassSelectionHandler; +import cuchaz.enigma.gui.Gui; + +public class Main +{ + public static void main( String[] args ) + throws Exception + { + startGui(); + } + + private static void startGui( ) + throws Exception + { + final Gui gui = new Gui(); + + // settings + final File jarFile = new File( "/home/jeff/.minecraft/versions/1.7.10/1.7.10.jar" ); + gui.setTitle( jarFile.getName() ); + + // init the deobfuscator + final Deobfuscator deobfuscator = new Deobfuscator( jarFile ); + gui.setObfClasses( deobfuscator.getObfuscatedClasses() ); + + // handle events + gui.setClassSelectionHandler( new ClassSelectionHandler( ) + { + @Override + public void classSelected( final ClassFile classFile ) + { + gui.setSource( "(deobfuscating...)" ); + + // run the deobfuscator in a separate thread so we don't block the GUI event queue + new Thread( ) + { + @Override + public void run( ) + { + String source = deobfuscator.getSource( classFile ); + SourceIndex index = Analyzer.analyze( classFile.getName(), source ); + gui.setSource( source, index ); + } + }.start(); + } + } ); + } +} -- cgit v1.2.3