├── .mvn └── wrapper │ ├── maven-wrapper.jar │ └── maven-wrapper.properties ├── renovate.json ├── .idea ├── vcs.xml ├── .gitignore ├── encodings.xml ├── misc.xml └── uiDesigner.xml ├── src └── main │ ├── java │ ├── gq │ │ └── malwarefight │ │ │ └── narumiideobfgui │ │ │ ├── Main.java │ │ │ ├── deobfuscatorutils │ │ │ ├── subclasses │ │ │ │ ├── latest_qProtectTransformer.java │ │ │ │ ├── latest_qProtectFlowTransformer.java │ │ │ │ ├── qProtectTransformer_v1_7_2.java │ │ │ │ ├── ColonialOldFlowTransformer.java │ │ │ │ ├── idk_qProtectFlowTransformer.java │ │ │ │ ├── qProtectFlowTransformer_b_3_0.java │ │ │ │ ├── qProtectStringTransformer_b31.java │ │ │ │ ├── qProtectStringTransformer_b3_0.java │ │ │ │ ├── ColonialOldBooleanTransformer.java │ │ │ │ ├── qProtectInvokeDynamicTransformer_b_3_0.java │ │ │ │ ├── latest_qProtectStringTransformer.java │ │ │ │ ├── latest_qProtectInvokeDynamicTransformer.java │ │ │ │ ├── LightStringScutiTransformer.java │ │ │ │ ├── StrongStringScutiTransformer.java │ │ │ │ ├── PackedSuperblaubeereTransformer.java │ │ │ │ ├── StackAnalyzerBinsecureTransformer.java │ │ │ │ ├── NoStackAnalyzerBinsecureTransformer.java │ │ │ │ ├── NotPackedSuperblaubeereTransformer.java │ │ │ │ ├── BozoriuszHeavyControlFlowTransformerF.java │ │ │ │ └── BozoriuszHeavyControlFlowTransformerT.java │ │ │ └── DeobfuscatorRegistry.java │ │ │ ├── DeobfuscatorGUIApp.java │ │ │ └── DeobfuscatorGUIController.java │ └── module-info.java │ └── resources │ └── gq │ └── malwarefight │ └── narumiideobfgui │ ├── deobfuscator-gui-view.fxml │ └── deobfuscator-gui-advanced-view.fxml ├── .github └── workflows │ ├── build-with-provenance.yml │ └── maven.yml ├── README.md ├── .gitignore ├── pom.xml ├── mvnw.cmd ├── mvnw └── LICENSE /.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pandaninjas/narumi-deobfuscator-gui/HEAD/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /renovate.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://docs.renovatebot.com/renovate-schema.json", 3 | "extends": [ 4 | "config:base" 5 | ] 6 | } 7 | -------------------------------------------------------------------------------- /.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /.idea/.gitignore: -------------------------------------------------------------------------------- 1 | # Default ignored files 2 | /shelf/ 3 | /workspace.xml 4 | # Editor-based HTTP Client requests 5 | /httpRequests/ 6 | # Datasource local storage ignored files 7 | /dataSources/ 8 | /dataSources.local.xml 9 | -------------------------------------------------------------------------------- /src/main/java/gq/malwarefight/narumiideobfgui/Main.java: -------------------------------------------------------------------------------- 1 | package gq.malwarefight.narumiideobfgui; 2 | 3 | public class Main { 4 | public static void main(String... args) { 5 | DeobfuscatorGUIApp.main(args); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /.idea/encodings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /src/main/java/gq/malwarefight/narumiideobfgui/deobfuscatorutils/subclasses/latest_qProtectTransformer.java: -------------------------------------------------------------------------------- 1 | package gq.malwarefight.narumiideobfgui.deobfuscatorutils.subclasses; 2 | 3 | public class latest_qProtectTransformer extends uwu.narumi.deobfuscator.transformer.composed.qprotect.latest.qProtectTransformer {} 4 | -------------------------------------------------------------------------------- /src/main/java/gq/malwarefight/narumiideobfgui/deobfuscatorutils/subclasses/latest_qProtectFlowTransformer.java: -------------------------------------------------------------------------------- 1 | package gq.malwarefight.narumiideobfgui.deobfuscatorutils.subclasses; 2 | 3 | public class latest_qProtectFlowTransformer extends uwu.narumi.deobfuscator.transformer.impl.qprotect.latest.qProtectFlowTransformer {} 4 | -------------------------------------------------------------------------------- /src/main/java/gq/malwarefight/narumiideobfgui/deobfuscatorutils/subclasses/qProtectTransformer_v1_7_2.java: -------------------------------------------------------------------------------- 1 | package gq.malwarefight.narumiideobfgui.deobfuscatorutils.subclasses; 2 | 3 | import uwu.narumi.deobfuscator.transformer.composed.qprotect.v1_7_2.qProtectTransformer; 4 | 5 | public class qProtectTransformer_v1_7_2 extends qProtectTransformer {} 6 | -------------------------------------------------------------------------------- /src/main/java/gq/malwarefight/narumiideobfgui/deobfuscatorutils/subclasses/ColonialOldFlowTransformer.java: -------------------------------------------------------------------------------- 1 | package gq.malwarefight.narumiideobfgui.deobfuscatorutils.subclasses; 2 | 3 | import uwu.narumi.deobfuscator.transformer.impl.colonial.old.ColonialFlowTransformer; 4 | 5 | public class ColonialOldFlowTransformer extends ColonialFlowTransformer {} 6 | -------------------------------------------------------------------------------- /src/main/java/gq/malwarefight/narumiideobfgui/deobfuscatorutils/subclasses/idk_qProtectFlowTransformer.java: -------------------------------------------------------------------------------- 1 | package gq.malwarefight.narumiideobfgui.deobfuscatorutils.subclasses; 2 | 3 | import uwu.narumi.deobfuscator.transformer.impl.qprotect.idk.qProtectFlowTransformer; 4 | 5 | public class idk_qProtectFlowTransformer extends qProtectFlowTransformer {} 6 | -------------------------------------------------------------------------------- /src/main/java/gq/malwarefight/narumiideobfgui/deobfuscatorutils/subclasses/qProtectFlowTransformer_b_3_0.java: -------------------------------------------------------------------------------- 1 | package gq.malwarefight.narumiideobfgui.deobfuscatorutils.subclasses; 2 | 3 | import uwu.narumi.deobfuscator.transformer.impl.qprotect.b3_0.qProtectFlowTransformer; 4 | 5 | public class qProtectFlowTransformer_b_3_0 extends qProtectFlowTransformer {} 6 | -------------------------------------------------------------------------------- /src/main/java/gq/malwarefight/narumiideobfgui/deobfuscatorutils/subclasses/qProtectStringTransformer_b31.java: -------------------------------------------------------------------------------- 1 | package gq.malwarefight.narumiideobfgui.deobfuscatorutils.subclasses; 2 | 3 | import uwu.narumi.deobfuscator.transformer.impl.qprotect.b31.qProtectStringTransformer; 4 | public class qProtectStringTransformer_b31 extends qProtectStringTransformer {} 5 | -------------------------------------------------------------------------------- /src/main/java/gq/malwarefight/narumiideobfgui/deobfuscatorutils/subclasses/qProtectStringTransformer_b3_0.java: -------------------------------------------------------------------------------- 1 | package gq.malwarefight.narumiideobfgui.deobfuscatorutils.subclasses; 2 | 3 | import uwu.narumi.deobfuscator.transformer.impl.qprotect.b3_0.qProtectFlowTransformer; 4 | 5 | public class qProtectStringTransformer_b3_0 extends qProtectFlowTransformer {} 6 | -------------------------------------------------------------------------------- /src/main/java/gq/malwarefight/narumiideobfgui/deobfuscatorutils/subclasses/ColonialOldBooleanTransformer.java: -------------------------------------------------------------------------------- 1 | package gq.malwarefight.narumiideobfgui.deobfuscatorutils.subclasses; 2 | 3 | import uwu.narumi.deobfuscator.transformer.impl.colonial.old.ColonialBooleanTransformer; 4 | 5 | public class ColonialOldBooleanTransformer extends ColonialBooleanTransformer {} 6 | -------------------------------------------------------------------------------- /src/main/java/gq/malwarefight/narumiideobfgui/deobfuscatorutils/subclasses/qProtectInvokeDynamicTransformer_b_3_0.java: -------------------------------------------------------------------------------- 1 | package gq.malwarefight.narumiideobfgui.deobfuscatorutils.subclasses; 2 | 3 | import uwu.narumi.deobfuscator.transformer.impl.qprotect.b3_0.*; 4 | 5 | public class qProtectInvokeDynamicTransformer_b_3_0 extends qProtectInvokeDynamicTransformer {} 6 | -------------------------------------------------------------------------------- /.github/workflows/build-with-provenance.yml: -------------------------------------------------------------------------------- 1 | name: Build with provenance 2 | on: 3 | - workflow_dispatch 4 | 5 | permissions: read-all 6 | 7 | jobs: 8 | build: 9 | permissions: 10 | id-token: write 11 | contents: read 12 | actions: read 13 | uses: slsa-framework/slsa-github-generator/.github/workflows/builder_maven_slsa3.yml@v2.1.0 14 | -------------------------------------------------------------------------------- /src/main/java/gq/malwarefight/narumiideobfgui/deobfuscatorutils/subclasses/latest_qProtectStringTransformer.java: -------------------------------------------------------------------------------- 1 | package gq.malwarefight.narumiideobfgui.deobfuscatorutils.subclasses; 2 | 3 | import uwu.narumi.deobfuscator.transformer.impl.qprotect.latest.qProtectStringTransformer; 4 | 5 | public class latest_qProtectStringTransformer extends qProtectStringTransformer {} 6 | -------------------------------------------------------------------------------- /src/main/java/module-info.java: -------------------------------------------------------------------------------- 1 | module NarumiDeobfGUI { 2 | requires javafx.fxml; 3 | requires javafx.graphics; 4 | requires javafx.controls; 5 | requires org.objectweb.asm; 6 | requires Deobfuscator.b0599f6; 7 | opens gq.malwarefight.narumiideobfgui to javafx.fxml; 8 | exports gq.malwarefight.narumiideobfgui to javafx.graphics; 9 | } 10 | -------------------------------------------------------------------------------- /src/main/java/gq/malwarefight/narumiideobfgui/deobfuscatorutils/subclasses/latest_qProtectInvokeDynamicTransformer.java: -------------------------------------------------------------------------------- 1 | package gq.malwarefight.narumiideobfgui.deobfuscatorutils.subclasses; 2 | 3 | import uwu.narumi.deobfuscator.transformer.impl.qprotect.latest.qProtectFlowTransformer; 4 | 5 | public class latest_qProtectInvokeDynamicTransformer extends qProtectFlowTransformer {} 6 | -------------------------------------------------------------------------------- /src/main/java/gq/malwarefight/narumiideobfgui/deobfuscatorutils/subclasses/LightStringScutiTransformer.java: -------------------------------------------------------------------------------- 1 | package gq.malwarefight.narumiideobfgui.deobfuscatorutils.subclasses; 2 | 3 | import uwu.narumi.deobfuscator.transformer.composed.ScutiTransformer; 4 | 5 | public class LightStringScutiTransformer extends ScutiTransformer { 6 | public LightStringScutiTransformer() { 7 | super(false); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/main/java/gq/malwarefight/narumiideobfgui/deobfuscatorutils/subclasses/StrongStringScutiTransformer.java: -------------------------------------------------------------------------------- 1 | package gq.malwarefight.narumiideobfgui.deobfuscatorutils.subclasses; 2 | 3 | import uwu.narumi.deobfuscator.transformer.composed.ScutiTransformer; 4 | 5 | public class StrongStringScutiTransformer extends ScutiTransformer { 6 | public StrongStringScutiTransformer() { 7 | super(true); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/main/java/gq/malwarefight/narumiideobfgui/deobfuscatorutils/subclasses/PackedSuperblaubeereTransformer.java: -------------------------------------------------------------------------------- 1 | package gq.malwarefight.narumiideobfgui.deobfuscatorutils.subclasses; 2 | 3 | import uwu.narumi.deobfuscator.transformer.composed.SuperblaubeereTransformer; 4 | 5 | public class PackedSuperblaubeereTransformer extends SuperblaubeereTransformer { 6 | public PackedSuperblaubeereTransformer() { 7 | super(true); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/main/java/gq/malwarefight/narumiideobfgui/deobfuscatorutils/subclasses/StackAnalyzerBinsecureTransformer.java: -------------------------------------------------------------------------------- 1 | package gq.malwarefight.narumiideobfgui.deobfuscatorutils.subclasses; 2 | 3 | import uwu.narumi.deobfuscator.transformer.composed.BinsecureTransformer; 4 | 5 | public class StackAnalyzerBinsecureTransformer extends BinsecureTransformer { 6 | 7 | public StackAnalyzerBinsecureTransformer() { 8 | super(true); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/main/java/gq/malwarefight/narumiideobfgui/deobfuscatorutils/subclasses/NoStackAnalyzerBinsecureTransformer.java: -------------------------------------------------------------------------------- 1 | package gq.malwarefight.narumiideobfgui.deobfuscatorutils.subclasses; 2 | 3 | import uwu.narumi.deobfuscator.transformer.composed.BinsecureTransformer; 4 | 5 | public class NoStackAnalyzerBinsecureTransformer extends BinsecureTransformer { 6 | 7 | public NoStackAnalyzerBinsecureTransformer() { 8 | super(false); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/main/java/gq/malwarefight/narumiideobfgui/deobfuscatorutils/subclasses/NotPackedSuperblaubeereTransformer.java: -------------------------------------------------------------------------------- 1 | package gq.malwarefight.narumiideobfgui.deobfuscatorutils.subclasses; 2 | 3 | import uwu.narumi.deobfuscator.transformer.composed.SuperblaubeereTransformer; 4 | 5 | public class NotPackedSuperblaubeereTransformer extends SuperblaubeereTransformer { 6 | public NotPackedSuperblaubeereTransformer() { 7 | super(false); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/main/java/gq/malwarefight/narumiideobfgui/deobfuscatorutils/subclasses/BozoriuszHeavyControlFlowTransformerF.java: -------------------------------------------------------------------------------- 1 | package gq.malwarefight.narumiideobfgui.deobfuscatorutils.subclasses; 2 | 3 | import uwu.narumi.deobfuscator.transformer.impl.bozoriusz.BozoriuszHeavyControlFlowTransformer; 4 | 5 | public class BozoriuszHeavyControlFlowTransformerF extends BozoriuszHeavyControlFlowTransformer { 6 | public BozoriuszHeavyControlFlowTransformerF() { 7 | super(false); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/main/java/gq/malwarefight/narumiideobfgui/deobfuscatorutils/subclasses/BozoriuszHeavyControlFlowTransformerT.java: -------------------------------------------------------------------------------- 1 | package gq.malwarefight.narumiideobfgui.deobfuscatorutils.subclasses; 2 | 3 | import uwu.narumi.deobfuscator.transformer.impl.bozoriusz.BozoriuszHeavyControlFlowTransformer; 4 | 5 | public class BozoriuszHeavyControlFlowTransformerT extends BozoriuszHeavyControlFlowTransformer { 6 | public BozoriuszHeavyControlFlowTransformerT() { 7 | super(true); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /.idea/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # narumi-deobfuscator-gui 2 | ![downloads](https://download-counter.thefightagainstmalware.workers.dev/pandaninjas/narumi-deobfuscator-gui?filter=jar)
3 | GUI for the [Narumi deobfuscator](https://github.com/narumii/Deobfuscator) 4 | ## Usage 5 | If you want *all* the transformers, not just the composed transformers, run the program with the argument `useraw`
6 | For example: 7 | `java -jar narumi-deobf-gui-version-jar-with-dependencies.jar useraw` 8 | ## Screenshots 9 | ![image](https://github.com/pandaninjas/narumi-deobfuscator-gui/assets/101084582/3a6ad7c3-b825-4eac-8910-e6fb69140c77) 10 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | target/ 2 | !.mvn/wrapper/maven-wrapper.jar 3 | !**/src/main/**/target/ 4 | !**/src/test/**/target/ 5 | 6 | ### IntelliJ IDEA ### 7 | .idea/modules.xml 8 | .idea/jarRepositories.xml 9 | .idea/compiler.xml 10 | .idea/libraries/ 11 | *.iws 12 | *.iml 13 | *.ipr 14 | 15 | # Logging 16 | *.log 17 | 18 | ### Eclipse ### 19 | .apt_generated 20 | .classpath 21 | .factorypath 22 | .project 23 | .settings 24 | .springBeans 25 | .sts4-cache 26 | 27 | ### NetBeans ### 28 | /nbproject/private/ 29 | /nbbuild/ 30 | /dist/ 31 | /nbdist/ 32 | /.nb-gradle/ 33 | build/ 34 | !**/src/main/**/build/ 35 | !**/src/test/**/build/ 36 | 37 | ### VS Code ### 38 | .vscode/ 39 | 40 | ### Mac OS ### 41 | .DS_Store 42 | -------------------------------------------------------------------------------- /.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one 2 | # or more contributor license agreements. See the NOTICE file 3 | # distributed with this work for additional information 4 | # regarding copyright ownership. The ASF licenses this file 5 | # to you under the Apache License, Version 2.0 (the 6 | # "License"); you may not use this file except in compliance 7 | # with the License. You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, 12 | # software distributed under the License is distributed on an 13 | # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 14 | # KIND, either express or implied. See the License for the 15 | # specific language governing permissions and limitations 16 | # under the License. 17 | wrapperVersion=3.3.2 18 | distributionType=only-script 19 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.9/apache-maven-3.9.9-bin.zip 20 | -------------------------------------------------------------------------------- /src/main/java/gq/malwarefight/narumiideobfgui/DeobfuscatorGUIApp.java: -------------------------------------------------------------------------------- 1 | package gq.malwarefight.narumiideobfgui; 2 | 3 | import javafx.application.Application; 4 | import javafx.fxml.FXMLLoader; 5 | import javafx.scene.Scene; 6 | import javafx.stage.Stage; 7 | 8 | import java.io.IOException; 9 | 10 | public class DeobfuscatorGUIApp extends Application { 11 | public static Stage stage; 12 | public static boolean useRaw = false; 13 | @Override 14 | public void start(Stage stage) throws IOException { 15 | DeobfuscatorGUIApp.stage = stage; 16 | FXMLLoader fxmlLoader = new FXMLLoader(DeobfuscatorGUIApp.class.getResource( 17 | (useRaw) ? "deobfuscator-gui-advanced-view.fxml": "deobfuscator-gui-view.fxml") 18 | ); 19 | Scene scene = new Scene(fxmlLoader.load(), 320, 240); 20 | stage.setTitle("Narumii Deobfuscator"); 21 | stage.setScene(scene); 22 | stage.show(); 23 | } 24 | 25 | public static void main(String[] args) { 26 | if (args.length > 0 && args[0].equalsIgnoreCase("useraw")) { 27 | useRaw = true; 28 | } 29 | launch(); 30 | } 31 | } -------------------------------------------------------------------------------- /src/main/resources/gq/malwarefight/narumiideobfgui/deobfuscator-gui-view.fxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |