From 6c51b8e1b6a2bb423f52c71aa93d62a14773601c Mon Sep 17 00:00:00 2001 From: Dmitry Isaenko Date: Sat, 4 Feb 2023 15:25:34 +0300 Subject: [PATCH] Corrections at front and back end --- .../Controllers/PatchesController.java | 11 +- .../Utilities/patches/BinToAsmPrinter.java | 29 +-- .../patches/MalformedIniFileException.java | 26 +++ .../Utilities/patches/es/EsPatch.java | 27 ++- .../Utilities/patches/es/EsPatchMaker.java | 23 +-- .../patches/es/finders/HeuristicEs1.java | 19 +- .../patches/es/finders/HeuristicEs2.java | 20 +- .../patches/es/finders/HeuristicEs3.java | 5 +- .../Utilities/patches/fs/FsNcaSearchTask.java | 14 +- .../Utilities/patches/fs/FsPatch.java | 105 +++++----- .../Utilities/patches/fs/FsPatchMaker.java | 49 ++--- .../Utilities/patches/fs/IniMaker.java | 163 ++++++++++++++++ .../patches/fs/finders/HeuristicFs1.java | 89 +++++++++ .../patches/fs/finders/HeuristicFs2.java | 96 +++++++++ .../patches/fs/finders/HeuristicFsExFAT1.java | 179 ----------------- .../patches/fs/finders/HeuristicFsExFAT2.java | 182 ------------------ .../patches/fs/finders/HeuristicFsFAT1.java | 176 ----------------- .../patches/fs/finders/HeuristicFsFAT2.java | 163 ---------------- .../patches/fs/finders/HeuristicFsWizard.java | 40 +--- src/main/resources/PatchesTab.fxml | 2 +- 20 files changed, 531 insertions(+), 887 deletions(-) create mode 100644 src/main/java/nsusbloader/Utilities/patches/MalformedIniFileException.java create mode 100644 src/main/java/nsusbloader/Utilities/patches/fs/IniMaker.java create mode 100644 src/main/java/nsusbloader/Utilities/patches/fs/finders/HeuristicFs1.java create mode 100644 src/main/java/nsusbloader/Utilities/patches/fs/finders/HeuristicFs2.java delete mode 100644 src/main/java/nsusbloader/Utilities/patches/fs/finders/HeuristicFsExFAT1.java delete mode 100644 src/main/java/nsusbloader/Utilities/patches/fs/finders/HeuristicFsExFAT2.java delete mode 100644 src/main/java/nsusbloader/Utilities/patches/fs/finders/HeuristicFsFAT1.java delete mode 100644 src/main/java/nsusbloader/Utilities/patches/fs/finders/HeuristicFsFAT2.java diff --git a/src/main/java/nsusbloader/Controllers/PatchesController.java b/src/main/java/nsusbloader/Controllers/PatchesController.java index 471bbe0..7b0261b 100644 --- a/src/main/java/nsusbloader/Controllers/PatchesController.java +++ b/src/main/java/nsusbloader/Controllers/PatchesController.java @@ -18,6 +18,7 @@ */ package nsusbloader.Controllers; +import javafx.beans.binding.Bindings; import javafx.fxml.FXML; import javafx.fxml.Initializable; import javafx.scene.input.DragEvent; @@ -74,7 +75,10 @@ public class PatchesController implements Initializable { convertRegionEs = new Region(); convertRegionEs.getStyleClass().add("regionCake"); makeEsBtn.setGraphic(convertRegionEs); - //makeFsBtn.setGraphic(convertRegionEs); + + Region cakeRegionFs = new Region(); + cakeRegionFs.getStyleClass().add("regionCake"); + makeFsBtn.setGraphic(cakeRegionFs); AppPreferences preferences = AppPreferences.getInstance(); String keysLocation = preferences.getKeysLocation(); @@ -85,8 +89,10 @@ public class PatchesController implements Initializable { } saveToLbl.setText(preferences.getPatchesSaveToLocation()); - //makeEsBtn.disableProperty().bind(Bindings.isEmpty(locationFirmwareLbl.textProperty())); + makeEsBtn.disableProperty().bind(Bindings.isEmpty(locationFirmwareLbl.textProperty())); makeEsBtn.setOnAction(actionEvent -> makeEs()); + + makeFsBtn.disableProperty().bind(Bindings.isEmpty(locationFirmwareLbl.textProperty())); makeFsBtn.setOnAction(actionEvent -> makeFs()); } @@ -215,6 +221,7 @@ public class PatchesController implements Initializable { } convertRegionEs.getStyleClass().clear(); + makeFsBtn.setVisible(! isActive); if (isActive) { MediatorControl.getInstance().getContoller().logArea.clear(); diff --git a/src/main/java/nsusbloader/Utilities/patches/BinToAsmPrinter.java b/src/main/java/nsusbloader/Utilities/patches/BinToAsmPrinter.java index 36cb41f..622d27c 100644 --- a/src/main/java/nsusbloader/Utilities/patches/BinToAsmPrinter.java +++ b/src/main/java/nsusbloader/Utilities/patches/BinToAsmPrinter.java @@ -59,7 +59,7 @@ public class BinToAsmPrinter { return printMOV(instructionExpression); case 0x62: if (((instructionExpression & 0x1f) == 0x1f)){ - return printCMN(instructionExpression, offset); + return printCMN(instructionExpression); } } @@ -123,10 +123,10 @@ public class BinToAsmPrinter { case 0xA2: return printSUBSimplified(instructionExpression, offset); case 0xE2: - case 0x1e2: + //case 0x1e2: return printCMPSimplified(instructionExpression, offset); case 0x24: - case 0x124: + //case 0x124: return printANDSimplified(instructionExpression, offset); } @@ -144,13 +144,15 @@ public class BinToAsmPrinter { return printBConditionalSimplified(instructionExpression, offset); } - switch ((instructionExpression >> 26 & 0b111111)) { + switch (instructionExpression >> 26 & 0b111111) { case 0x5: return printBSimplified(instructionExpression, offset); case 0x25: return printBLSimplified(instructionExpression, offset); } - System.out.printf("0x%x\n", (instructionExpression >> 23 & 0xff)); + + if ((instructionExpression >> 10 & 0x3FFFFF) == 0x3597c0 && ((instructionExpression & 0x1F) == 0)) + return printRetSimplified(instructionExpression, offset); return printUnknownSimplified(instructionExpression, offset); } @@ -183,7 +185,7 @@ public class BinToAsmPrinter { conditionalJumpLocation, (conditionalJumpLocation + 0x100)); } - private static String printCMN(int instructionExpression, int offset){ + private static String printCMN(int instructionExpression){ int Rn = instructionExpression >> 5 & 0x1F; int imm = instructionExpression >> 10 & 0xFFF; @@ -271,7 +273,6 @@ public class BinToAsmPrinter { int Rt = instructionExpression & 0b11111; int label = (offset + (instructionExpression >> 5 & 0x3fff) * 4) & 0xfffff; - //System.out.printf("\nInstruction: %x\n", instructionExpression); return String.format(ANSI_YELLOW + "sf == 0 && hw == 0x ? else \n" + "TBZ ,#,