Git Product home page Git Product logo

standalone-app's Introduction

Standalone App

About

Helios is an all-in-one Java reverse engineering tool. It features integration with the latest up-to-date decompilers.

If you want to download the latest version, check out the CI server

There are several keybinds that can be used. To open a new file, simply use Ctrl-O. Arrow keys can be used to navigate the file tree. Enter or clicking a file will open that file into the editor view.

To open a different view, simply use Ctrl-T and a menu will pop up where the cursor is. You can use your arrow keys or your mouse to select a view.

If the file is a class file, you will be able to choose from a variety of decompilers and disassemblers. If the file is not a class file, you will only be able to view the hex representation and the plain text representation.

If you want to clear the GUI, you can use Ctrl-N to start a new session. This will reset all open views.

If you have modified a file that you are inspecting, you can use F5 to refresh the files. This will reload them from disk.

To close the current opened file, use Ctrl-W. To close the current opened view, use Ctrl-Shift-W

All files are stored inside the default temporary file directory on your OS. You can delete these files safely.

The settings file is located within the .helios folder inside your user directory. Inside the .helios folder you will find libraries which are not written in Java, but have been packaged with this program. You will also find the addons folder, where you can install new addons.

Acknowledgements

Icons

Icons for the tree are sourced from the "Silk" icon pack, located here

Performance

YourKit

YourKit supports open source projects with its full-featured Java Profiler.

YourKit, LLC is the creator of YourKit Java Profiler and YourKit .NET Profiler, innovative and intelligent tools for profiling Java and .NET applications.

standalone-app's People

Contributors

darkseraphim avatar minidigger avatar samczsun avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

standalone-app's Issues

Repository

Dependence is missing from repository.

[ERROR] Failed to execute goal on project standalone-app: Could not resolve dependencies for project com.heliosdecompiler:standalone-app:jar:1.0.2: Could not find artifact com.heliosdecompiler:transformer-api:jar:2.0.3 in helios-decompiler-repo (https://repo.samczsun.com/repository/helios-decompiler/)

JD-GUI cannot be included in this project

JD-GUI/JD-Core is licensed under the GPLv3 license. This project is licensed under the Apache 2.0 license. Therefore, it is impossible for the JD-Core project to be included in this one.

Please do not ask if I can include it. It's not a matter of whether I am able to, but whether I am allowed to.

If you are able to get in contact with the author of JD-GUI/JD-Core (@emmanue1), please consider asking whether a exception to the GPLv3 may be granted for this project.

Failed to compile

I'm using the master branch, mvn package raises the following error,

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.5.1:compile (default-compile) on project helios: Fatal error compiling: invalid target release: 1.8 -> [Help 1]

Krakatau Assembler Suppert

Hi there,

I recently noticed that Krakatau isn't only an outstanding decompiler,
it also has a disassembler and a cooperating assember allowing you to edit
bytecode which is really nice to (for example) remove a malicious part of a programm
without having to deal with decompiling the whole project and recompile it (which often fails ๐Ÿ˜ž ). The bytecode-viewer already supports reassembling the krakatau output, but
I like Helios more in it's overall feeling so I ask you if you can integrate the Krakatau assembler ๐Ÿ˜ƒ

Vinc0682 / VincBreaker

Read settings.json file

I see in C:Users\<User>\.helios\settings.json are decompiler settings saved.
The file seems to be safed when helios shuts down, the content is updated.

However the settings are not honored at startup.

Tested with krakatau and cfr.

CTRL-L Not Working

Hi,

On mac using the helios standalone jar file, when i select a .class file within a jar file and click CMD+T a dialog box comes up saying Search for: t instead of actually showing the decompiling options. Thanks.

Handle AST

Perhaps there's a way to hook into CFR and Fernflower so there won't be a need for the parser

JARs not "unloaded"

Attempting to use the "Extract Strings" addon shows that a JAR is still loaded in memory after being removed from the tree view.

Reported just so I don't forget.

Blank Tab Issue

Scope is class com.github.javaparser.ast.expr.ArrayAccessExpr lS.h[n3]
java.lang.ClassCastException: com.github.javaparser.ast.expr.FieldAccessExpr cannot be cast to com.github.javaparser.ast.expr.NameExpr
    at com.heliosdecompiler.helios.tasks.DecompileTask.recursivelyHandleNameExpr(DecompileTask.java:728)
    at com.heliosdecompiler.helios.tasks.DecompileTask.access$000(DecompileTask.java:57)
    at com.heliosdecompiler.helios.tasks.DecompileTask$1.visit(DecompileTask.java:444)
    at com.heliosdecompiler.helios.tasks.DecompileTask$1.visit(DecompileTask.java:206)
    at com.github.javaparser.ast.expr.MethodCallExpr.accept(MethodCallExpr.java:73)
    at com.github.javaparser.ast.visitor.VoidVisitorAdapter.visit(VoidVisitorAdapter.java:796)
    at com.heliosdecompiler.helios.tasks.DecompileTask$1.visit(DecompileTask.java:274)
    at com.heliosdecompiler.helios.tasks.DecompileTask$1.visit(DecompileTask.java:206)
    at com.github.javaparser.ast.body.VariableDeclarator.accept(VariableDeclarator.java:69)
    at com.github.javaparser.ast.visitor.VoidVisitorAdapter.visit(VoidVisitorAdapter.java:788)
    at com.heliosdecompiler.helios.tasks.DecompileTask$1.visit(DecompileTask.java:487)
    at com.heliosdecompiler.helios.tasks.DecompileTask$1.visit(DecompileTask.java:206)
    at com.github.javaparser.ast.expr.VariableDeclarationExpr.accept(VariableDeclarationExpr.java:78)
    at com.github.javaparser.ast.visitor.VoidVisitorAdapter.visit(VoidVisitorAdapter.java:407)
    at com.heliosdecompiler.helios.tasks.DecompileTask$1.visit(DecompileTask.java:542)
    at com.heliosdecompiler.helios.tasks.DecompileTask$1.visit(DecompileTask.java:206)
    at com.github.javaparser.ast.stmt.ExpressionStmt.accept(ExpressionStmt.java:53)
    at com.github.javaparser.ast.visitor.VoidVisitorAdapter.visit(VoidVisitorAdapter.java:169)
    at com.heliosdecompiler.helios.tasks.DecompileTask$1.visit(DecompileTask.java:527)
    at com.heliosdecompiler.helios.tasks.DecompileTask$1.visit(DecompileTask.java:206)
    at com.github.javaparser.ast.stmt.BlockStmt.accept(BlockStmt.java:58)
    at com.github.javaparser.ast.visitor.VoidVisitorAdapter.visit(VoidVisitorAdapter.java:459)
    at com.heliosdecompiler.helios.tasks.DecompileTask$1.visit(DecompileTask.java:567)
    at com.heliosdecompiler.helios.tasks.DecompileTask$1.visit(DecompileTask.java:206)
    at com.github.javaparser.ast.stmt.IfStmt.accept(IfStmt.java:61)
    at com.github.javaparser.ast.visitor.VoidVisitorAdapter.visit(VoidVisitorAdapter.java:169)
    at com.heliosdecompiler.helios.tasks.DecompileTask$1.visit(DecompileTask.java:527)
    at com.heliosdecompiler.helios.tasks.DecompileTask$1.visit(DecompileTask.java:206)
    at com.github.javaparser.ast.stmt.BlockStmt.accept(BlockStmt.java:58)
    at com.github.javaparser.ast.visitor.VoidVisitorAdapter.visit(VoidVisitorAdapter.java:567)
    at com.heliosdecompiler.helios.tasks.DecompileTask$1.visit(DecompileTask.java:289)
    at com.heliosdecompiler.helios.tasks.DecompileTask$1.visit(DecompileTask.java:206)
    at com.github.javaparser.ast.body.MethodDeclaration.accept(MethodDeclaration.java:111)
    at com.github.javaparser.ast.visitor.VoidVisitorAdapter.visit(VoidVisitorAdapter.java:231)
    at com.heliosdecompiler.helios.tasks.DecompileTask$1.visit(DecompileTask.java:239)
    at com.heliosdecompiler.helios.tasks.DecompileTask$1.visit(DecompileTask.java:206)
    at com.github.javaparser.ast.body.ClassOrInterfaceDeclaration.accept(ClassOrInterfaceDeclaration.java:85)
    at com.github.javaparser.ast.visitor.VoidVisitorAdapter.visit(VoidVisitorAdapter.java:260)
    at com.heliosdecompiler.helios.tasks.DecompileTask$1.visit(DecompileTask.java:209)
    at com.heliosdecompiler.helios.tasks.DecompileTask$1.visit(DecompileTask.java:206)
    at com.github.javaparser.ast.CompilationUnit.accept(CompilationUnit.java:84)
    at com.heliosdecompiler.helios.tasks.DecompileTask.handle(DecompileTask.java:205)
    at com.heliosdecompiler.helios.tasks.DecompileTask.run(DecompileTask.java:138)
    at java.lang.Thread.run(Thread.java:745)

when decompiling with Procyon this seems to cause the window to be blank where there should be code

Why is a selected rt.jar location needed?

Do I see it right, that Helios wants, that the user select the location of rt.jar? Why?

It is in

System.getProperty("java.home") + System.getProperty("file.separator") + "lib" + System.getProperty("file.separator") + "rt.jar"

Uniquify open files in tab title

If simple class name is multiple times open, but in differnet packages, display part of the package of the class too in tab title.

Edit: Equal to intellij's approach.

Broken on oracle jdk 9

Errors:

Exception in thread "JavaFX Application Thread" java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
        at javafx.fxml/javafx.fxml.FXMLLoader$MethodHandler.invoke(FXMLLoader.java:1787)
        at javafx.fxml/javafx.fxml.FXMLLoader$ControllerMethodEventHandler.handle(FXMLLoader.java:1670)
        at javafx.base/com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86)
        at javafx.base/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238)
        at javafx.base/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
        at javafx.base/com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
        at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
        at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
        at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
        at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
        at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
        at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
        at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
        at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
        at javafx.base/com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
        at javafx.base/com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54)
        at javafx.base/javafx.event.Event.fireEvent(Event.java:198)
        at javafx.graphics/javafx.scene.Scene$ClickGenerator.postProcess(Scene.java:3589)
        at javafx.graphics/javafx.scene.Scene$ClickGenerator.access$8300(Scene.java:3517)
        at javafx.graphics/javafx.scene.Scene$MouseHandler.process(Scene.java:3885)
        at javafx.graphics/javafx.scene.Scene$MouseHandler.access$1300(Scene.java:3604)
        at javafx.graphics/javafx.scene.Scene.processMouseEvent(Scene.java:1874)
        at javafx.graphics/javafx.scene.Scene$ScenePeerListener.mouseEvent(Scene.java:2613)
        at javafx.graphics/com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:397)
        at javafx.graphics/com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:295)
        at java.base/java.security.AccessController.doPrivileged(Native Method)
        at javafx.graphics/com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleMouseEvent$2(GlassViewEventHandler.java:434)
        at javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:389)
        at javafx.graphics/com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(GlassViewEventHandler.java:433)
        at javafx.graphics/com.sun.glass.ui.View.handleMouseEvent(View.java:556)
        at javafx.graphics/com.sun.glass.ui.View.notifyMouse(View.java:942)
        at javafx.graphics/com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method)
        at javafx.graphics/com.sun.glass.ui.gtk.GtkApplication.lambda$runLoop$11(GtkApplication.java:277)
        at java.base/java.lang.Thread.run(Thread.java:844)
Caused by: java.lang.reflect.InvocationTargetException
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:564)
        at com.sun.javafx.reflect.Trampoline.invoke(MethodUtil.java:76)
        at jdk.internal.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:564)
        at javafx.base/com.sun.javafx.reflect.MethodUtil.invoke(MethodUtil.java:275)
        at javafx.fxml/com.sun.javafx.fxml.MethodHelper.invoke(MethodHelper.java:83)
        at javafx.fxml/javafx.fxml.FXMLLoader$MethodHandler.invoke(FXMLLoader.java:1782)
        ... 33 more
Caused by: java.lang.NoSuchMethodError: javafx.scene.control.TableColumn.impl_setReorderable(Z)V
        at org.controlsfx.control.spreadsheet.SpreadsheetView.getTableColumn(SpreadsheetView.java:1543)
        at org.controlsfx.control.spreadsheet.SpreadsheetView.setGrid(SpreadsheetView.java:540)
        at org.controlsfx.control.spreadsheet.SpreadsheetView.<init>(SpreadsheetView.java:464)
        at org.controlsfx.control.spreadsheet.SpreadsheetView.<init>(SpreadsheetView.java:390)
        at com.heliosdecompiler.hexeditor.HexArea.<init>(HexArea.java:43)
        at com.heliosdecompiler.helios.gui.view.editors.HexEditorView.createView0(HexEditorView.java:30)
        at com.heliosdecompiler.helios.gui.view.editors.EditorView.createView(EditorView.java:28)
        at com.heliosdecompiler.helios.gui.controller.AllFilesViewerController.openNewEditor(AllFilesViewerController.java:186)
        at com.heliosdecompiler.helios.gui.controller.AllFilesViewerController.constructFileTab(AllFilesViewerController.java:171)
        at com.heliosdecompiler.helios.gui.controller.AllFilesViewerController.handleClick(AllFilesViewerController.java:116)
        at com.heliosdecompiler.helios.gui.controller.FileTreeController.onClickTreeItem(FileTreeController.java:232)
        ... 44 more
Exception in thread "JavaFX Application Thread" java.lang.NoSuchMethodError: org.fxmisc.richtext.TextExt.impl_selectionFillProperty()Ljavafx/beans/property/ObjectProperty;
        at org.fxmisc.richtext.StyledTextArea.createStyledTextNode(StyledTextArea.java:118)
        at org.fxmisc.richtext.StyledTextArea.lambda$new$0(StyledTextArea.java:74)
        at org.fxmisc.richtext.ParagraphText.<init>(ParagraphText.java:102)
        at org.fxmisc.richtext.ParagraphBox.<init>(ParagraphBox.java:77)
        at org.fxmisc.richtext.GenericStyledArea.createCell(GenericStyledArea.java:1362)
        at org.fxmisc.richtext.GenericStyledArea.lambda$new$13(GenericStyledArea.java:760)
        at org.fxmisc.flowless.CellPool.getCell(CellPool.java:20)
        at org.fxmisc.flowless.CellListManager.cellForItem(CellListManager.java:75)
        at org.reactfx.collection.MappedList.get(MappedList.java:27)
        at org.reactfx.collection.MemoizationListImpl.get(MemoizationList.java:99)
        at org.fxmisc.flowless.CellListManager.getCell(CellListManager.java:64)
        at org.fxmisc.flowless.CellPositioner.getSizedCell(CellPositioner.java:129)
        at org.fxmisc.flowless.CellPositioner.placeStartAt(CellPositioner.java:95)
        at org.fxmisc.flowless.Navigator.placeStartAtMayCrop(Navigator.java:183)
        at org.fxmisc.flowless.Navigator.visit(Navigator.java:111)
        at org.fxmisc.flowless.StartOffStart.accept(TargetPosition.java:49)
        at org.fxmisc.flowless.Navigator.layoutChildren(Navigator.java:67)
        at javafx.graphics/javafx.scene.Parent.layout(Parent.java:1226)
        at org.fxmisc.flowless.VirtualFlow.layoutChildren(VirtualFlow.java:165)
        at javafx.graphics/javafx.scene.Parent.layout(Parent.java:1226)
        at javafx.graphics/javafx.scene.Parent.layout(Parent.java:1233)
        at javafx.graphics/javafx.scene.Parent.layout(Parent.java:1233)
        at javafx.graphics/javafx.scene.Parent.layout(Parent.java:1233)
        at javafx.graphics/javafx.scene.Parent.layout(Parent.java:1233)
        at javafx.graphics/javafx.scene.Parent.layout(Parent.java:1233)
        at javafx.graphics/javafx.scene.Parent.layout(Parent.java:1233)
        at javafx.graphics/javafx.scene.Parent.layout(Parent.java:1233)
        at javafx.graphics/javafx.scene.Parent.layout(Parent.java:1233)
        at javafx.graphics/javafx.scene.Parent.layout(Parent.java:1233)
        at javafx.graphics/javafx.scene.Parent.layout(Parent.java:1233)
        at javafx.graphics/javafx.scene.Parent.layout(Parent.java:1233)
        at javafx.graphics/javafx.scene.Scene.doLayoutPass(Scene.java:590)
        at javafx.graphics/javafx.scene.Scene$ScenePulseListener.pulse(Scene.java:2507)
        at javafx.graphics/com.sun.javafx.tk.Toolkit.lambda$runPulse$2(Toolkit.java:410)
        at java.base/java.security.AccessController.doPrivileged(Native Method)
        at javafx.graphics/com.sun.javafx.tk.Toolkit.runPulse(Toolkit.java:409)
        at javafx.graphics/com.sun.javafx.tk.Toolkit.firePulse(Toolkit.java:436)
        at javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:518)
        at javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:498)
        at javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.pulseFromQueue(QuantumToolkit.java:491)
        at javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.lambda$runToolkit$11(QuantumToolkit.java:319)
        at javafx.graphics/com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)
        at javafx.graphics/com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method)
        at javafx.graphics/com.sun.glass.ui.gtk.GtkApplication.lambda$runLoop$11(GtkApplication.java:277)
        at java.base/java.lang.Thread.run(Thread.java:844)

Krakatau fails when libraries are used

Whenever you decompile something which depends on a library (in my case, it was a Bukkit plugin I had to recover source for), it will flip a table and throw an error because said class file is not found (as the classes are provided runtime)

An exception occured while performing this task. Please open a GitHub issue with the details below.

Helios version 1.0.0
java.lang.IllegalArgumentException: Class failed to decompile (no class in output zip)
    at com.samczsun.helios.transformers.decompilers.KrakatauDecompiler.decompile(KrakatauDecompiler.java:68)
    at com.samczsun.helios.tasks.DecompileTask.run(DecompileTask.java:51)
    at com.samczsun.helios.handler.BackgroundTaskHandler$WrappedRunnable.run(BackgroundTaskHandler.java:65)
    at com.samczsun.helios.handler.BackgroundTaskHandler.lambda$null$26(BackgroundTaskHandler.java:38)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)

--- BEGIN PROCESS DUMP ---
---- STDOUT ----
Krakatau  Copyright (C) 2012-15  Robert Grosse
This program is provided as open source under the GNU General Public License.
See LICENSE.TXT for more details.

processing target net/darkseraphim/dungeons/listeners/HangingListener, 1 remaining
Loading net/darkseraphim/dungeons/listeners/HangingListener
Loading java/lang/Object
Loading org/bukkit/event/Listener
Failed to decompile net/darkseraphim/dungeons/listeners/HangingListener due to missing or invalid class org/bukkit/event/Listener
---- STDERR ----
---- EXIT VALUE ----
Process finished with exit code 0

Helios not responding

Helios freeze when trying to open any class inside a jar. This is valid for both master and develop branches.

Develop Branch

Exception in thread "JavaFX Application Thread" java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
	at javafx.fxml.FXMLLoader$MethodHandler.invoke(FXMLLoader.java:1774)
	at javafx.fxml.FXMLLoader$ControllerMethodEventHandler.handle(FXMLLoader.java:1657)
	at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86)
	at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238)
	at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
	at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
	at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
	at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
	at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
	at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
	at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54)
	at javafx.event.Event.fireEvent(Event.java:198)
	at javafx.scene.Scene$ClickGenerator.postProcess(Scene.java:3470)
	at javafx.scene.Scene$ClickGenerator.access$8100(Scene.java:3398)
	at javafx.scene.Scene$MouseHandler.process(Scene.java:3766)
	at javafx.scene.Scene$MouseHandler.access$1500(Scene.java:3485)
	at javafx.scene.Scene.impl_processMouseEvent(Scene.java:1762)
	at javafx.scene.Scene$ScenePeerListener.mouseEvent(Scene.java:2494)
	at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:381)
	at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:295)
	at java.security.AccessController.doPrivileged(Native Method)
	at com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleMouseEvent$354(GlassViewEventHandler.java:417)
	at com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:389)
	at com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(GlassViewEventHandler.java:416)
	at com.sun.glass.ui.View.handleMouseEvent(View.java:555)
	at com.sun.glass.ui.View.notifyMouse(View.java:937)
	at com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method)
	at com.sun.glass.ui.gtk.GtkApplication.lambda$null$49(GtkApplication.java:139)
	at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.reflect.InvocationTargetException
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at sun.reflect.misc.Trampoline.invoke(MethodUtil.java:71)
	at sun.reflect.GeneratedMethodAccessor1.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:275)
	at javafx.fxml.FXMLLoader$MethodHandler.invoke(FXMLLoader.java:1769)
	... 31 more
Caused by: java.lang.NullPointerException
	at com.heliosdecompiler.helios.gui.controller.TransformerSettingsController.onClickTreeItem(TransformerSettingsController.java:138)
	... 41 more

Master Branch

Exception in thread "JavaFX Application Thread" java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
	at javafx.fxml.FXMLLoader$MethodHandler.invoke(FXMLLoader.java:1774)
	at javafx.fxml.FXMLLoader$ControllerMethodEventHandler.handle(FXMLLoader.java:1657)
	at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86)
	at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238)
	at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
	at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
	at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
	at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
	at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
	at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
	at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
	at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54)
	at javafx.event.Event.fireEvent(Event.java:198)
	at javafx.scene.Scene$ClickGenerator.postProcess(Scene.java:3470)
	at javafx.scene.Scene$ClickGenerator.access$8100(Scene.java:3398)
	at javafx.scene.Scene$MouseHandler.process(Scene.java:3766)
	at javafx.scene.Scene$MouseHandler.access$1500(Scene.java:3485)
	at javafx.scene.Scene.impl_processMouseEvent(Scene.java:1762)
	at javafx.scene.Scene$ScenePeerListener.mouseEvent(Scene.java:2494)
	at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:381)
	at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:295)
	at java.security.AccessController.doPrivileged(Native Method)
	at com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleMouseEvent$354(GlassViewEventHandler.java:417)
	at com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:389)
	at com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(GlassViewEventHandler.java:416)
	at com.sun.glass.ui.View.handleMouseEvent(View.java:555)
	at com.sun.glass.ui.View.notifyMouse(View.java:937)
	at com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method)
	at com.sun.glass.ui.gtk.GtkApplication.lambda$null$49(GtkApplication.java:139)
	at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.reflect.InvocationTargetException
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at sun.reflect.misc.Trampoline.invoke(MethodUtil.java:71)
	at sun.reflect.GeneratedMethodAccessor1.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:275)
	at javafx.fxml.FXMLLoader$MethodHandler.invoke(FXMLLoader.java:1769)
	... 33 more
Caused by: java.lang.NullPointerException
	at com.heliosdecompiler.helios.gui.controller.FileTreeController.onClickTreeItem(FileTreeController.java:88)
	... 43 more

Can't Open the Menu (to disass. or decompile)

Hi, I'm using latest Helios and Java version "1.8.0_141" but when I wanna open a different view, I can't. On previous versions I did it by pressing right-clic, but now nothing happens.... Plus, I've read the README file and "To open a different view, simply use Ctrl-T" but, neither works for me.

Which could be the problem? Thanks

Killing a background task fails.

I click the "X" button in the popup to kill the background task. The task doesnt die and neither does the dialog, but the "X" disappears. Thereafter the background task runs forever unless I restart Intellij. I find myself constantly having to restart intellij as a result.

Running version 2019.1.3 on Ubuntu 64bit

image

Moving Enjarify to Rust

Hi, I am considering changing Enjarify from Python to Rust, which would require compiling a static binary. Do you think this is something you could handle? Any thoughts would be appreciated.

Add the jadx decompiler

Please add the jadx decompiler to the GUI, it is licensed under Apache 2 so there shouldn't be a problem at this point...

Error when trying to decompile to a zip file

java.lang.NullPointerException
    at com.samczsun.helios.tasks.DecompileAndSaveTask.run(DecompileAndSaveTask.java:99)
    at com.samczsun.helios.handler.BackgroundTaskHandler$WrappedRunnable.run(BackgroundTaskHandler.java:69)
    at com.samczsun.helios.handler.BackgroundTaskHandler.lambda$null$26(BackgroundTaskHandler.java:39)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)

ParseException: Encountered " <FLOATING_POINT_LITERAL> ".1 ""

Line from Fernflower decompiled source that caused the exception:

import com.android.camera.module.video2.Video2HfrBottomBarUISpecProvider.1;

The exception:

  • com.github.javaparser.ParseException: Encountered " <FLOATING_POINT_LITERAL> ".1 "" at line 11, column 73.
  • Was expecting one of:
  • ";" ...
    
  • "." ...
    
  • "." ...
    
  • at com.github.javaparser.ASTParser.generateParseException(ASTParser.java:9056)
  • at com.github.javaparser.ASTParser.jj_consume_token(ASTParser.java:8929)
  • at com.github.javaparser.ASTParser.ImportDeclaration(ASTParser.java:259)
  • at com.github.javaparser.ASTParser.CompilationUnit(ASTParser.java:157)
  • at com.github.javaparser.JavaParser.parse(JavaParser.java:111)
  • at com.heliosdecompiler.helios.tasks.DecompileTask.run(DecompileTask.java:106)
  • at java.lang.Thread.run(Unknown Source)

The imported class is called: Video2HfrBottomBarUISpecProvider$1. Every sub-routine of a class is broken down into smaller classes in Android, with $1, $2, $3, ... endings.

Project inactive?

I see the commits, it did not update for almost 5 or 6 years. Does it inactive or dead?

Improve DecompileAndSaveTask

  1. Ask for decompiler/disassembler to use.
  2. Refer task to decompiler/disassembler impl class.
  3. Decompile selected classes or whole jar file, taking advantage of, for example, fernflowers jar decompilation combined with the rename ambigious option.

Search and reload-functions.

First of all, I really love Helios and use it daily, so I was really happy once I saw the new GUI. However, there are two features that I'm missing: ๐Ÿ˜ž

  1. You cannot search within the decompiled / dissassembled file anymore.

  2. You cannot reload files anymore. You have to create a new workspace and open the files manually.

I already put this on my to do list, so I surely will implement these features myself sometimes, but if someone with a better knowlege of the programm would like to implement these features, feel free ๐Ÿ˜„

Thanks in advance,
VincBreaker

Decompilers fail due to characters / encoding used

com.github.javaparser.TokenMgrError: Lexical error at line 115, column 26.  Encountered: "\u2603" (9731), after : ""
    at com.github.javaparser.ASTParserTokenManager.getNextToken(ASTParserTokenManager.java:2483)
    at com.github.javaparser.ASTParser.jj_scan_token(ASTParser.java:8938)
    at com.github.javaparser.ASTParser.jj_3R_137(ASTParser.java:7528)
    at com.github.javaparser.ASTParser.jj_3R_97(ASTParser.java:7542)
    at com.github.javaparser.ASTParser.jj_3_14(ASTParser.java:7591)
    at com.github.javaparser.ASTParser.jj_3R_198(ASTParser.java:7604)
    at com.github.javaparser.ASTParser.jj_3R_136(ASTParser.java:7634)
    at com.github.javaparser.ASTParser.jj_3R_94(ASTParser.java:7659)
    at com.github.javaparser.ASTParser.jj_3_11(ASTParser.java:7728)
    at com.github.javaparser.ASTParser.jj_2_11(ASTParser.java:5098)
    at com.github.javaparser.ASTParser.Type(ASTParser.java:1587)
    at com.github.javaparser.ASTParser.TryStatement(ASTParser.java:4535)
    at com.github.javaparser.ASTParser.Statement(ASTParser.java:3633)
    at com.github.javaparser.ASTParser.BlockStatement(ASTParser.java:3750)
    at com.github.javaparser.ASTParser.Statements(ASTParser.java:1555)
    at com.github.javaparser.ASTParser.Block(ASTParser.java:3687)
    at com.github.javaparser.ASTParser.MethodDeclaration(ASTParser.java:1219)
    at com.github.javaparser.ASTParser.ClassOrInterfaceBodyDeclaration(ASTParser.java:948)
    at com.github.javaparser.ASTParser.ClassOrInterfaceBody(ASTParser.java:854)
    at com.github.javaparser.ASTParser.ClassOrInterfaceDeclaration(ASTParser.java:444)
    at com.github.javaparser.ASTParser.TypeDeclaration(ASTParser.java:372)
    at com.github.javaparser.ASTParser.CompilationUnit(ASTParser.java:185)
    at com.github.javaparser.JavaParser.parse(JavaParser.java:111)
    at com.github.javaparser.JavaParser.parse(JavaParser.java:133)
    at com.samczsun.helios.tasks.DecompileTask.run(DecompileTask.java:83)
    at com.samczsun.helios.handler.BackgroundTaskHandler$WrappedRunnable.run(BackgroundTaskHandler.java:69)
    at com.samczsun.helios.handler.BackgroundTaskHandler.lambda$null$16(BackgroundTaskHandler.java:39)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)

Got you another error which appears to be caused by one of your dependencies (but perhaps you could investigate it further - with a bit of luck it's fixable from Helios)

I vaguely remember the code used UTF-16 in their obfuscation, but I cannot find any sources for confirmation.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.