This commit is contained in:
parent
338bb699d1
commit
a60d929dcd
7 changed files with 13 additions and 38 deletions
|
@ -22,9 +22,9 @@ With GUI and cookies. Works on Windows, macOS and Linux.
|
|||
|
||||
Sometimes I add new posts about this project [on my blog page](https://developersu.blogspot.com/search/label/NS-USBloader).
|
||||
|
||||
![Application screenshot](screenshots/1.png)
|
||||
<img src="screenshots/2.png" alt="screenshot" width="250"/> <img src="screenshots/3.png" alt="screenshot" width="250"/>
|
||||
<img src="screenshots/4.png" alt="screenshot" width="250"/> <img src="screenshots/5.png" alt="screenshot" width="250"/>
|
||||
<img src="screenshots/1.png" alt="screenshot" width="250"/> <img src="screenshots/2.png" alt="screenshot" width="250"/>
|
||||
<img src="screenshots/3.png" alt="screenshot" width="250"/> <img src="screenshots/4.png" alt="screenshot" width="250"/>
|
||||
<img src="screenshots/5.png" alt="screenshot" width="250"/>
|
||||
|
||||
#### License
|
||||
|
||||
|
|
|
@ -102,21 +102,21 @@ public class BinToAsmPrinter {
|
|||
}
|
||||
|
||||
if ((instructionExpression >> 21 & 0x7FF) == 0x1C2)
|
||||
return printLDURBSimplified(instructionExpression, offset);
|
||||
return printImTooLazy("LDURB", instructionExpression, offset);
|
||||
|
||||
// same to (afterJumpExpression >> 23 & 0x1F9) != 0xA1
|
||||
switch (instructionExpression >> 22 & 0x1FF){
|
||||
case 0xA3: // 0b10100011
|
||||
case 0xA7: // 0b10100111
|
||||
case 0xA5: // 0b10100101
|
||||
return printLDPSimplified(instructionExpression, offset);
|
||||
return printImTooLazy("LDP", instructionExpression, offset);
|
||||
}
|
||||
|
||||
switch ((instructionExpression >> 23 & 0xff)){
|
||||
case 0xA5:
|
||||
return printMOVSimplified(instructionExpression, offset);
|
||||
case 0x22:
|
||||
return printADDSimplified(instructionExpression, offset);
|
||||
return printImTooLazy("ADD", instructionExpression, offset);
|
||||
case 0x62:
|
||||
if (((instructionExpression & 0x1f) == 0x1f)){
|
||||
return printCMNSimplified(instructionExpression, offset);
|
||||
|
@ -416,22 +416,12 @@ public class BinToAsmPrinter {
|
|||
getBConditionalMarker(instructionExpression & 0xf),
|
||||
conditionalJumpLocation, (conditionalJumpLocation + 0x100));
|
||||
}
|
||||
private static String printImTooLazy(String name, int instructionExpression, int offset){
|
||||
return String.format(
|
||||
"%05x "+ANSI_CYAN+"%08x (%08x)"+ANSI_YELLOW + " "+name+" . . . \n"+ ANSI_RESET,
|
||||
offset, Integer.reverseBytes(instructionExpression), instructionExpression);
|
||||
}
|
||||
|
||||
private static String printADDSimplified(int instructionExpression, int offset){ //ADD (immediate)
|
||||
return String.format(
|
||||
"%05x "+ANSI_CYAN+"%08x (%08x)"+ANSI_YELLOW + " ADD . . . \n"+ ANSI_RESET,
|
||||
offset, Integer.reverseBytes(instructionExpression), instructionExpression);
|
||||
}
|
||||
private static String printLDPSimplified(int instructionExpression, int offset){
|
||||
return String.format(
|
||||
"%05x "+ANSI_CYAN+"%08x (%08x)"+ANSI_YELLOW + " LDP . . . \n"+ ANSI_RESET,
|
||||
offset, Integer.reverseBytes(instructionExpression), instructionExpression);
|
||||
}
|
||||
private static String printLDURBSimplified(int instructionExpression, int offset){
|
||||
return String.format(
|
||||
"%05x "+ANSI_CYAN+"%08x (%08x)"+ANSI_YELLOW + " LDURB . . . \n"+ ANSI_RESET,
|
||||
offset, Integer.reverseBytes(instructionExpression), instructionExpression);
|
||||
}
|
||||
private static String printSUBSimplified(int instructionExpression, int offset){
|
||||
String wx = (instructionExpression >> 31 == 0) ? "W" : "X";
|
||||
int Rt = instructionExpression & 0x1f;
|
||||
|
|
|
@ -67,6 +67,8 @@ public class EsPatch {
|
|||
fwVersion = Long.parseLong(""+ncaProvider.getSdkVersion()[3]+ncaProvider.getSdkVersion()[2]
|
||||
+ncaProvider.getSdkVersion()[1] +ncaProvider.getSdkVersion()[0]);
|
||||
logPrinter.print("Internal firmware version: "+ncaProvider.getSdkVersion()[3] +"."+ncaProvider.getSdkVersion()[2] +"."+ncaProvider.getSdkVersion()[1] +"."+ncaProvider.getSdkVersion()[0], EMsgType.INFO);
|
||||
if (fwVersion < 9300)
|
||||
logPrinter.print("WARNING! FIRMWARES VERSIONS BEFORE 9.0.0 ARE NOT SUPPORTED! USING PRODUCED ES PATCHES (IF ANY) COULD BREAK SOMETHING! IT'S NEVER BEEN TESTED!", EMsgType.WARNING);
|
||||
}
|
||||
private void getBuildId(NSO0Provider nso0Provider) throws Exception{
|
||||
NSO0Header nso0DecompressedHeader = nso0Provider.getAsDecompressedNSO0().getHeader();
|
||||
|
|
|
@ -101,9 +101,4 @@ class HeuristicEs1 implements IHeuristicEs {
|
|||
|
||||
return builder.toString();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getId(){
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -160,9 +160,4 @@ class HeuristicEs2 implements IHeuristicEs {
|
|||
|
||||
return builder.toString();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getId(){
|
||||
return 2;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -143,9 +143,4 @@ class HeuristicEs3 implements IHeuristicEs {
|
|||
}
|
||||
return builder.toString();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getId(){
|
||||
return 3;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -42,6 +42,4 @@ interface IHeuristicEs {
|
|||
* @return isFound();
|
||||
* */
|
||||
boolean setOffsetsNearby(int offsetNearby);
|
||||
|
||||
int getId();
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue