Ghidra error: Error constructing plugin: class reva.RevaPlugin
Very new to this plugin and it looks very exciting! I cannot get this to work with Ghidra however, as it spits out Error constructing plugin: class reva.RevaPlugin. Running ghidra-11.1.1
ghidra.framework.plugintool.util.PluginException: Error constructing plugin: class reva.RevaPlugin
at ghidra.framework.plugintool.util.PluginUtils.instantiatePlugin(PluginUtils.java:58)
at ghidra.framework.plugintool.PluginManager.addPlugins(PluginManager.java:146)
at ghidra.framework.plugintool.PluginTool.lambda$addPlugins$3(PluginTool.java:918)
at ghidra.framework.plugintool.PluginTool.lambda$checkedRunSwingNow$12(PluginTool.java:1658)
at ghidra.util.Swing.doRun(Swing.java:292)
at ghidra.util.Swing.runNow(Swing.java:208)
at ghidra.util.Swing.runNow(Swing.java:163)
at ghidra.framework.plugintool.PluginTool.checkedRunSwingNow(PluginTool.java:1656)
at ghidra.framework.plugintool.PluginTool.addPlugins(PluginTool.java:916)
at ghidra.framework.plugintool.DefaultPluginInstaller.addPlugins(DefaultPluginInstaller.java:40)
at ghidra.framework.plugintool.PluginConfigurationModel.addPlugin(PluginConfigurationModel.java:139)
at ghidra.framework.plugintool.dialog.PluginInstallerTableModel.addPlugin(PluginInstallerTableModel.java:170)
at ghidra.framework.plugintool.dialog.PluginInstallerTableModel.setValueAt(PluginInstallerTableModel.java:135)
at java.desktop/javax.swing.JTable.setValueAt(JTable.java:2787)
at java.desktop/javax.swing.JTable.editingStopped(JTable.java:4785)
at java.desktop/javax.swing.AbstractCellEditor.fireEditingStopped(AbstractCellEditor.java:152)
at java.desktop/javax.swing.DefaultCellEditor$EditorDelegate.stopCellEditing(DefaultCellEditor.java:375)
at java.desktop/javax.swing.DefaultCellEditor.stopCellEditing(DefaultCellEditor.java:234)
It continues on and on.
Thank you for trying! I am going to do some fresh installs and add some integration tests, there have been issues installing for other too.
Getting the same thing on a fresh install. Ghidra installed via flathub on Arch KDE Plasma
Error constructing plugin: class reva.RevaPlugin
ghidra.framework.plugintool.util.PluginException: Error constructing plugin: class reva.RevaPlugin
at ghidra.framework.plugintool.util.PluginUtils.instantiatePlugin(PluginUtils.java:58)
at ghidra.framework.plugintool.PluginManager.addPlugins(PluginManager.java:146)
at ghidra.framework.plugintool.PluginTool.lambda$addPlugins$3(PluginTool.java:918)
at ghidra.framework.plugintool.PluginTool.lambda$checkedRunSwingNow$12(PluginTool.java:1658)
at ghidra.util.Swing.doRun(Swing.java:292)
at ghidra.util.Swing.runNow(Swing.java:208)
at ghidra.util.Swing.runNow(Swing.java:163)
at ghidra.framework.plugintool.PluginTool.checkedRunSwingNow(PluginTool.java:1656)
at ghidra.framework.plugintool.PluginTool.addPlugins(PluginTool.java:916)
at ghidra.framework.plugintool.DefaultPluginInstaller.addPlugins(DefaultPluginInstaller.java:40)
at ghidra.framework.plugintool.PluginConfigurationModel.addPlugin(PluginConfigurationModel.java:139)
at ghidra.framework.plugintool.dialog.PluginInstallerTableModel.addPlugin(PluginInstallerTableModel.java:170)
at ghidra.framework.plugintool.dialog.PluginInstallerTableModel.setValueAt(PluginInstallerTableModel.java:135)
at java.desktop/javax.swing.JTable.setValueAt(JTable.java:2787)
at java.desktop/javax.swing.JTable.editingStopped(JTable.java:4785)
at java.desktop/javax.swing.AbstractCellEditor.fireEditingStopped(AbstractCellEditor.java:152)
at java.desktop/javax.swing.DefaultCellEditor$EditorDelegate.stopCellEditing(DefaultCellEditor.java:375)
at java.desktop/javax.swing.DefaultCellEditor.stopCellEditing(DefaultCellEditor.java:234)
at java.desktop/javax.swing.DefaultCellEditor$EditorDelegate.actionPerformed(DefaultCellEditor.java:392)
at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1972)
at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2313)
at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:405)
at java.desktop/javax.swing.JToggleButton$ToggleButtonModel.setPressed(JToggleButton.java:411)
at java.desktop/javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:279)
at java.desktop/java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:297)
at java.desktop/java.awt.Component.processMouseEvent(Component.java:6626)
at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3389)
at java.desktop/java.awt.Component.processEvent(Component.java:6391)
at java.desktop/java.awt.Container.processEvent(Container.java:2266)
at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5001)
at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2324)
at java.desktop/java.awt.Component.dispatchEvent(Component.java:4833)
at java.desktop/javax.swing.plaf.basic.BasicTableUI$Handler.repostEvent(BasicTableUI.java:987)
at java.desktop/javax.swing.plaf.basic.BasicTableUI$Handler.mouseReleased(BasicTableUI.java:1203)
at java.desktop/java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:297)
at java.desktop/java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:297)
at java.desktop/java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:297)
at java.desktop/java.awt.Component.processMouseEvent(Component.java:6626)
at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3389)
at java.desktop/java.awt.Component.processEvent(Component.java:6391)
at java.desktop/java.awt.Container.processEvent(Container.java:2266)
at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5001)
at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2324)
at java.desktop/java.awt.Component.dispatchEvent(Component.java:4833)
at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4948)
at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4575)
at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4516)
at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2310)
at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2780)
at java.desktop/java.awt.Component.dispatchEvent(Component.java:4833)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:775)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:720)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:714)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:97)
at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:747)
at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:745)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:744)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:117)
at java.desktop/java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:191)
at java.desktop/java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:236)
at java.desktop/java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:234)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:318)
at java.desktop/java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:234)
at java.desktop/java.awt.Dialog.show(Dialog.java:1080)
at java.desktop/java.awt.Component.show(Component.java:1728)
at java.desktop/java.awt.Component.setVisible(Component.java:1675)
at java.desktop/java.awt.Window.setVisible(Window.java:1036)
at java.desktop/java.awt.Dialog.setVisible(Dialog.java:1016)
at docking.DockingDialog.setVisible(DockingDialog.java:351)
at docking.DockingWindowManager.lambda$doShowDialog$6(DockingWindowManager.java:1856)
at ghidra.util.Swing.doRun(Swing.java:292)
at ghidra.util.Swing.runNow(Swing.java:208)
at ghidra.util.Swing.runNow(Swing.java:163)
at docking.DockingWindowManager.doShowDialog(DockingWindowManager.java:1860)
at docking.DockingWindowManager.showDialog(DockingWindowManager.java:1809)
at docking.AbstractDockingTool.showDialog(AbstractDockingTool.java:168)
at ghidra.framework.project.tool.ExtensionManager.propmtToConfigureNewPlugins(ExtensionManager.java:73)
at ghidra.framework.project.tool.ExtensionManager.checkForNewExtensions(ExtensionManager.java:60)
at ghidra.framework.project.tool.GhidraTool.setVisible(GhidraTool.java:146)
at ghidra.framework.project.tool.WorkspaceImpl.lambda$runTool$0(WorkspaceImpl.java:95)
at ghidra.util.Swing.lambda$runNow$1(Swing.java:148)
at ghidra.util.Swing.lambda$runNow$2(Swing.java:227)
at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:318)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:773)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:720)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:714)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:742)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:117)
at java.desktop/java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:191)
at java.desktop/java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:236)
at java.desktop/java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:234)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:318)
at java.desktop/java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:234)
at java.desktop/java.awt.Dialog.show(Dialog.java:1080)
at java.desktop/java.awt.Component.show(Component.java:1728)
at java.desktop/java.awt.Component.setVisible(Component.java:1675)
at java.desktop/java.awt.Window.setVisible(Window.java:1036)
at java.desktop/java.awt.Dialog.setVisible(Dialog.java:1016)
at docking.DockingDialog.setVisible(DockingDialog.java:351)
at docking.DockingWindowManager.lambda$doShowDialog$6(DockingWindowManager.java:1856)
at ghidra.util.Swing.doRun(Swing.java:292)
at ghidra.util.Swing.runNow(Swing.java:208)
at ghidra.util.Swing.runNow(Swing.java:163)
at docking.DockingWindowManager.doShowDialog(DockingWindowManager.java:1860)
at docking.DockingWindowManager.showDialog(DockingWindowManager.java:1809)
at ghidra.util.task.TaskDialog.lambda$doShow$7(TaskDialog.java:373)
at ghidra.util.Swing.runIfSwingOrRunLater(Swing.java:124)
at ghidra.util.task.TaskDialog.doShow(TaskDialog.java:370)
at ghidra.util.task.TaskDialog.doShowModal(TaskDialog.java:350)
at ghidra.util.task.TaskDialog.show(TaskDialog.java:324)
at ghidra.util.task.TaskRunner.lambda$showTaskDialog$1(TaskRunner.java:123)
at ghidra.util.Swing.runIfSwingOrRunLater(Swing.java:124)
at ghidra.util.task.TaskRunner.showTaskDialog(TaskRunner.java:120)
at ghidra.util.task.TaskRunner.run(TaskRunner.java:54)
at ghidra.util.task.TaskLauncher.<init>(TaskLauncher.java:221)
at ghidra.util.task.TaskLauncher.<init>(TaskLauncher.java:203)
at ghidra.framework.project.tool.WorkspaceImpl.launchSwing(WorkspaceImpl.java:117)
at ghidra.framework.project.tool.WorkspaceImpl.runTool(WorkspaceImpl.java:92)
at ghidra.framework.project.tool.ToolServicesImpl.defaultLaunch(ToolServicesImpl.java:209)
at ghidra.framework.project.tool.ToolServicesImpl.launchTool(ToolServicesImpl.java:235)
at ghidra.framework.main.ToolButton.openDomainFiles(ToolButton.java:564)
at ghidra.framework.main.ToolButton$2.end(ToolButton.java:541)
at ghidra.framework.main.ZoomImageRunner$1.end(ZoomImageRunner.java:54)
at org.jdesktop.animation.timing.Animator.end(Animator.java:755)
at org.jdesktop.animation.timing.Animator.stop(Animator.java:660)
at org.jdesktop.animation.timing.Animator.timingEvent(Animator.java:732)
at org.jdesktop.animation.timing.Animator.access$200(Animator.java:75)
at org.jdesktop.animation.timing.Animator$TimerTarget.actionPerformed(Animator.java:1041)
at java.desktop/javax.swing.Timer.fireActionPerformed(Timer.java:311)
at java.desktop/javax.swing.Timer$DoPostEvent.run(Timer.java:243)
at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:318)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:773)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:720)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:714)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:742)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
Caused by: java.lang.reflect.InvocationTargetException
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:480)
at ghidra.framework.plugintool.util.PluginUtils.instantiatePlugin(PluginUtils.java:46)
... 152 more
Caused by: java.lang.NoClassDefFoundError: Could not initialize class reva.protocol.RevaGetDecompilation$RevaGetDecompilationResponse
at reva.protocol.RevaDecompilationServiceGrpc.getGetDecompilationMethod(RevaDecompilationServiceGrpc.java:40)
at reva.protocol.RevaDecompilationServiceGrpc.getServiceDescriptor(RevaDecompilationServiceGrpc.java:498)
at reva.protocol.RevaDecompilationServiceGrpc.bindService(RevaDecompilationServiceGrpc.java:421)
at reva.protocol.RevaDecompilationServiceGrpc$RevaDecompilationServiceImplBase.bindService(RevaDecompilationServiceGrpc.java:226)
at io.grpc.internal.ServerImplBuilder.addService(ServerImplBuilder.java:143)
at io.grpc.internal.ServerImplBuilder.addService(ServerImplBuilder.java:57)
at io.grpc.ForwardingServerBuilder.addService(ForwardingServerBuilder.java:77)
at reva.RevaPlugin.<init>(RevaPlugin.java:278)
... 158 more
Caused by: java.lang.ExceptionInInitializerError: Exception java.lang.IllegalAccessError: class reva.protocol.RevaGetDecompilation$RevaGetDecompilationResponse tried to access method 'com.google.protobuf.LazyStringArrayList com.google.protobuf.LazyStringArrayList.emptyList()' (reva.protocol.RevaGetDecompilation$RevaGetDecompilationResponse and com.google.protobuf.LazyStringArrayList are in unnamed module of loader ghidra.GhidraClassLoader @3d04a311) [in thread "AWT-EventQueue-0"]
at reva.protocol.RevaGetDecompilation$RevaGetDecompilationResponse.<init>(RevaGetDecompilation.java:1003)
at reva.protocol.RevaGetDecompilation$RevaGetDecompilationResponse.<clinit>(RevaGetDecompilation.java:2696)
... 166 more
---------------------------------------------------
Build Date: 2024-Jun-15 1007 UTC
Ghidra Version: 11.1.1
Java Home: /app/jdk
JVM Version: Flathub 17.0.11
OS: Linux 6.10.1-arch1-1 amd64```
Thank you both! I will try to reproduce on my linux machine.
I am not sure, I have seen this when the wrong version of Gradle is used (it does not pull the protobuf library and compile the protobufs correctly).
Are you building locally? Can you try the version from the CI?
https://github.com/cyberkaida/reverse-engineering-assistant/actions/runs/10129853390
I am using:
kaida@Kaidas-Maxbook ~ % gradle --version
------------------------------------------------------------
Gradle 7.6.4
------------------------------------------------------------
Build time: 2024-02-05 14:29:18 UTC
Revision: e0bb3fc8cefad8432c9033cdfb12dc14facc9dd9
Kotlin: 1.7.10
Groovy: 3.0.13
Ant: Apache Ant(TM) version 1.10.13 compiled on January 4 2023
JVM: 17.0.11 (Homebrew 17.0.11+0)
OS: Mac OS X 14.5 aarch64
I am not sure, I have seen this when the wrong version of Gradle is used (it does not pull the protobuf library and compile the protobufs correctly).
Are you building locally? Can you try the version from the CI?
https://github.com/cyberkaida/reverse-engineering-assistant/actions/runs/10129853390
I am using:
kaida@Kaidas-Maxbook ~ % gradle --version ------------------------------------------------------------ Gradle 7.6.4 ------------------------------------------------------------ Build time: 2024-02-05 14:29:18 UTC Revision: e0bb3fc8cefad8432c9033cdfb12dc14facc9dd9 Kotlin: 1.7.10 Groovy: 3.0.13 Ant: Apache Ant(TM) version 1.10.13 compiled on January 4 2023 JVM: 17.0.11 (Homebrew 17.0.11+0) OS: Mac OS X 14.5 aarch64
It does work with the CI version. I'll try to build again soon but this fixes for now. Thanks!
Interesting, I'm using windows currently (linux machine died ๐ข ) and I'm not sure how to get this to work? I'm just trying to find the artifact download.
Update: Found it, going to run some tests now. Thanks!
Tried it with the CI version, same error.
Tried it with the CI version, same error.
Can you please tell me your gradle and Java version, can you do a build of the extension and attach the build logs?
I am trying to see if there is some problem in the Gradle script when it compiles the protobufs.
Tried it with the CI version, same error.
I'm going to improve the CI and try to get it working on Windows. I had some trouble with the GitHub action I tried.
It is time to add some integration tests I think!
Tried it with the CI version, same error.
Can you please tell me your gradle and Java version, can you do a build of the extension and attach the build logs?
I am trying to see if there is some problem in the Gradle script when it compiles the protobufs.
Yes sorry for the late reply, I will get this done as soon as possible.
Tried it with the CI version, same error.
I'm going to improve the CI and try to get it working on Windows. I had some trouble with the GitHub action I tried.
It is time to add some integration tests I think!
Indeed I believe that's the right idea!
OK! CI for Windows and macOS is now added. Can you try the latest build?
OK! CI for Windows and macOS is now added. Can you try the latest build?
Sure thing! I was having crazy trouble with building it. Testing now.
Update: Might be doing something wrong, same errors.
Error:
Error constructing plugin: class reva.RevaPlugin
ghidra.framework.plugintool.util.PluginException: Error constructing plugin: class reva.RevaPlugin
at ghidra.framework.plugintool.util.PluginUtils.instantiatePlugin(PluginUtils.java:58)
at ghidra.framework.plugintool.PluginManager.addPlugins(PluginManager.java:146)
at ghidra.framework.plugintool.PluginTool.lambda$addPlugins$3(PluginTool.java:918)
at ghidra.framework.plugintool.PluginTool.lambda$checkedRunSwingNow$12(PluginTool.java:1658)
at ghidra.util.Swing.doRun(Swing.java:292)
at ghidra.util.Swing.runNow(Swing.java:208)
at ghidra.util.Swing.runNow(Swing.java:163)
at ghidra.framework.plugintool.PluginTool.checkedRunSwingNow(PluginTool.java:1656)
at ghidra.framework.plugintool.PluginTool.addPlugins(PluginTool.java:916)
at ghidra.framework.plugintool.DefaultPluginInstaller.addPlugins(DefaultPluginInstaller.java:40)
at ghidra.framework.plugintool.PluginConfigurationModel.addPlugin(PluginConfigurationModel.java:139)
at ghidra.framework.plugintool.dialog.PluginInstallerTableModel.addPlugin(PluginInstallerTableModel.java:170)
at ghidra.framework.plugintool.dialog.PluginInstallerTableModel.setValueAt(PluginInstallerTableModel.java:135)
at java.desktop/javax.swing.JTable.setValueAt(JTable.java:2787)
at java.desktop/javax.swing.JTable.editingStopped(JTable.java:4785)
at java.desktop/javax.swing.AbstractCellEditor.fireEditingStopped(AbstractCellEditor.java:152)
at java.desktop/javax.swing.DefaultCellEditor$EditorDelegate.stopCellEditing(DefaultCellEditor.java:375)
at java.desktop/javax.swing.DefaultCellEditor.stopCellEditing(DefaultCellEditor.java:234)
at java.desktop/javax.swing.DefaultCellEditor$EditorDelegate.actionPerformed(DefaultCellEditor.java:392)
at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1972)
at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2313)
at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:405)
at java.desktop/javax.swing.JToggleButton$ToggleButtonModel.setPressed(JToggleButton.java:411)
at java.desktop/javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:279)
at java.desktop/java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:297)
at java.desktop/java.awt.Component.processMouseEvent(Component.java:6626)
at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3389)
at java.desktop/java.awt.Component.processEvent(Component.java:6391)
at java.desktop/java.awt.Container.processEvent(Container.java:2266)
at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5001)
at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2324)
at java.desktop/java.awt.Component.dispatchEvent(Component.java:4833)
at java.desktop/javax.swing.plaf.basic.BasicTableUI$Handler.repostEvent(BasicTableUI.java:987)
at java.desktop/javax.swing.plaf.basic.BasicTableUI$Handler.mouseReleased(BasicTableUI.java:1203)
at java.desktop/java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:297)
at java.desktop/java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:297)
at java.desktop/java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:297)
at java.desktop/java.awt.Component.processMouseEvent(Component.java:6626)
at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3389)
at java.desktop/java.awt.Component.processEvent(Component.java:6391)
at java.desktop/java.awt.Container.processEvent(Container.java:2266)
at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5001)
at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2324)
at java.desktop/java.awt.Component.dispatchEvent(Component.java:4833)
at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4948)
at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4575)
at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4516)
at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2310)
at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2780)
at java.desktop/java.awt.Component.dispatchEvent(Component.java:4833)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:773)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:722)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:716)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:97)
at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:746)
at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:744)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:743)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:117)
at java.desktop/java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:191)
at java.desktop/java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:236)
at java.desktop/java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:234)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:318)
at java.desktop/java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:234)
at java.desktop/java.awt.Dialog.show(Dialog.java:1080)
at java.desktop/java.awt.Component.show(Component.java:1728)
at java.desktop/java.awt.Component.setVisible(Component.java:1675)
at java.desktop/java.awt.Window.setVisible(Window.java:1036)
at java.desktop/java.awt.Dialog.setVisible(Dialog.java:1016)
at docking.DockingDialog.setVisible(DockingDialog.java:351)
at docking.DockingWindowManager.lambda$doShowDialog$6(DockingWindowManager.java:1856)
at ghidra.util.Swing.doRun(Swing.java:292)
at ghidra.util.Swing.runNow(Swing.java:208)
at ghidra.util.Swing.runNow(Swing.java:163)
at docking.DockingWindowManager.doShowDialog(DockingWindowManager.java:1860)
at docking.DockingWindowManager.showDialog(DockingWindowManager.java:1809)
at docking.AbstractDockingTool.showDialog(AbstractDockingTool.java:168)
at ghidra.framework.plugintool.dialog.PluginManagerComponent.managePlugins(PluginManagerComponent.java:73)
at ghidra.framework.plugintool.dialog.PluginManagerComponent$PluginPackageComponent.lambda$createConfigureHyperlink$1(PluginManagerComponent.java:196)
at docking.widgets.HyperlinkComponent$1.hyperlinkUpdate(HyperlinkComponent.java:66)
at java.desktop/javax.swing.JEditorPane.fireHyperlinkUpdate(JEditorPane.java:401)
at java.desktop/javax.swing.text.html.HTMLEditorKit$LinkController.activateLink(HTMLEditorKit.java:906)
at java.desktop/javax.swing.text.html.HTMLEditorKit$LinkController.mouseClicked(HTMLEditorKit.java:702)
at java.desktop/java.awt.AWTEventMulticaster.mouseClicked(AWTEventMulticaster.java:278)
at java.desktop/java.awt.AWTEventMulticaster.mouseClicked(AWTEventMulticaster.java:277)
at java.desktop/java.awt.AWTEventMulticaster.mouseClicked(AWTEventMulticaster.java:277)
at java.desktop/java.awt.AWTEventMulticaster.mouseClicked(AWTEventMulticaster.java:277)
at java.desktop/java.awt.Component.processMouseEvent(Component.java:6629)
at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3389)
at java.desktop/java.awt.Component.processEvent(Component.java:6391)
at java.desktop/java.awt.Container.processEvent(Container.java:2266)
at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5001)
at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2324)
at java.desktop/java.awt.Component.dispatchEvent(Component.java:4833)
at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4948)
at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4584)
at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4516)
at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2310)
at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2780)
at java.desktop/java.awt.Component.dispatchEvent(Component.java:4833)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:773)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:722)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:716)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:97)
at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:746)
at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:744)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:743)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
Caused by: java.lang.reflect.InvocationTargetException
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:480)
at ghidra.framework.plugintool.util.PluginUtils.instantiatePlugin(PluginUtils.java:46)
... 121 more
Caused by: java.lang.NoClassDefFoundError: Could not initialize class reva.protocol.RevaGetDecompilation$RevaGetDecompilationResponse
at reva.protocol.RevaDecompilationServiceGrpc.getGetDecompilationMethod(RevaDecompilationServiceGrpc.java:40)
at reva.protocol.RevaDecompilationServiceGrpc.getServiceDescriptor(RevaDecompilationServiceGrpc.java:498)
at reva.protocol.RevaDecompilationServiceGrpc.bindService(RevaDecompilationServiceGrpc.java:421)
at reva.protocol.RevaDecompilationServiceGrpc$RevaDecompilationServiceImplBase.bindService(RevaDecompilationServiceGrpc.java:226)
at io.grpc.internal.ServerImplBuilder.addService(ServerImplBuilder.java:143)
at io.grpc.internal.ServerImplBuilder.addService(ServerImplBuilder.java:57)
at io.grpc.ForwardingServerBuilder.addService(ForwardingServerBuilder.java:77)
at reva.RevaPlugin.<init>(RevaPlugin.java:278)
... 127 more
Caused by: java.lang.ExceptionInInitializerError: Exception java.lang.IllegalAccessError: class reva.protocol.RevaGetDecompilation$RevaGetDecompilationResponse tried to access method 'com.google.protobuf.LazyStringArrayList com.google.protobuf.LazyStringArrayList.emptyList()' (reva.protocol.RevaGetDecompilation$RevaGetDecompilationResponse and com.google.protobuf.LazyStringArrayList are in unnamed module of loader ghidra.GhidraClassLoader @38cccef) [in thread "AWT-EventQueue-0"]
at reva.protocol.RevaGetDecompilation$RevaGetDecompilationResponse.<init>(RevaGetDecompilation.java:1003)
at reva.protocol.RevaGetDecompilation$RevaGetDecompilationResponse.<clinit>(RevaGetDecompilation.java:2696)
... 135 more
---------------------------------------------------
Build Date: 2024-Jun-14 1025 EDT
Ghidra Version: 11.1.1
Java Home: C:\Program Files\Java\jdk-17
JVM Version: Oracle Corporation 17.0.10
OS: Windows 11 10.0 amd64
Workstation: USERPC
i have the same prb , on kali , cant build the extention or run it Cannot invoke "reva.RevaChatService.revaChat(String)" because "chat" is null java.lang.NullPointerException: Cannot invoke "reva.RevaChatService.revaChat(String)" because "chat" is null at reva.Analysis.RevaFunctionAnalyzer.lambda$added$0(RevaFunctionAnalyzer.java:38) at java.base/java.util.Iterator.forEachRemaining(Iterator.java:133) at reva.Analysis.RevaFunctionAnalyzer.added(RevaFunctionAnalyzer.java:30) at ghidra.app.plugin.core.analysis.AnalysisScheduler.runAnalyzer(AnalysisScheduler.java:186) at ghidra.app.plugin.core.analysis.AnalysisTask.applyTo(AnalysisTask.java:39) at ghidra.app.plugin.core.analysis.AutoAnalysisManager$AnalysisTaskWrapper.run(AutoAnalysisManager.java:686) at ghidra.app.plugin.core.analysis.AutoAnalysisManager.startAnalysis(AutoAnalysisManager.java:786) at ghidra.app.plugin.core.analysis.AutoAnalysisManager.startAnalysis(AutoAnalysisManager.java:665) at ghidra.app.plugin.core.analysis.AutoAnalysisManager.startAnalysis(AutoAnalysisManager.java:630) at ghidra.app.plugin.core.analysis.AnalysisBackgroundCommand.applyTo(AnalysisBackgroundCommand.java:58) at ghidra.framework.plugintool.mgr.BackgroundCommandTask.run(BackgroundCommandTask.java:103) at ghidra.framework.plugintool.mgr.ToolTaskManager.run(ToolTaskManager.java:334) at java.base/java.lang.Thread.run(Thread.java:1575)
Build Date: 2023-Dec-23 2258 UTC Ghidra Version: 11.0 Java Home: /usr/lib/jvm/java-23-openjdk-amd64 JVM Version: Debian 23 OS: Linux 6.10.9-amd64 amd64
- NAME=ghidra-assistant
- rm -f 'dist/*'
- gradle Picked up _JAVA_OPTIONS: -Dawt.useSystemAAFontSettings=on -Dswing.aatext=true
Task :compileJava FAILED
FAILURE: Build failed with an exception.
- What went wrong: Execution failed for task ':compileJava'.
Error while evaluating property 'javaCompiler' of task ':compileJava'. Failed to calculate the value of task ':compileJava' property 'javaCompiler'. > Toolchain installation '/usr/lib/jvm/java-23-openjdk-amd64' does not provide the required capabilities: [JAVA_COMPILER]
- Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights. Get more help at https://help.gradle.org.
BUILD FAILED in 369ms 5 actionable tasks: 1 executed, 4 up-to-date
Currently trying to install this on my Ghidra 11.2.1, as it looks fantastically promising.
I can get ghidra-assistant to build, using the latest version of Gradle (supposedly >8.5 is required for Ghidra 11.2.1), but I then get the class error when loading the plugin in Ghidra. If I try using Gradle 7.6.4 and jdk 17.0.12, ghidra-assistant doesn't build due to the Gradle version mismatch.
I tried the pre-build ghidra-assistant (supposedly for Ghidra 11.1.1) and I also get the class error when enabling the plugin.
I forgot to mention that I'm on Windows.
Has there been any progress?
I am refactoring for Ghidra 11.3 and the new Python 3 support.
I would recommend trying the older version of Ghidra or waiting for 11.3 support. I can release an early version for you built on the development version of 11.3.
The new Python 3 support will allow removing the gRPC and make the design much more simple.
If you are interested in testing please let me know! ๐๐๐
Iยดd be happy to test, but I can also wait until 11.3 (I don't want to put more work on you).
I quickly tried v3.0.0-alpha2 on a fresh Ghidra 11.1.1 install, but still got the error Error constructing plugin: class reva.RevaPlugin when loading the plugin
I am refactoring for Ghidra 11.3 and the new Python 3 support.
I would recommend trying the older version of Ghidra or waiting for 11.3 support. I can release an early version for you built on the development version of 11.3.
The new Python 3 support will allow removing the gRPC and make the design much more simple.
If you are interested in testing please let me know! ๐๐๐
I would also be happy to test, seems like a while since this issue has been posted, so hopefully revisions since then would improve this issue. I'll be tracking the full repository for updates.
I have finished the core of the re-write for Ghidra 11.3 and have moved to an MCP server. Please try the latest version, built from source I think you will get good results!