cosmetic fixes
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
Dmitry Isaenko 2022-12-23 06:23:40 +03:00
parent 119b615797
commit 14479963d5
6 changed files with 45 additions and 45 deletions

View file

@ -47,7 +47,7 @@ public class Converter {
return ByteBuffer.wrap(holder).order(ByteOrder.LITTLE_ENDIAN).getLong(); return ByteBuffer.wrap(holder).order(ByteOrder.LITTLE_ENDIAN).getLong();
} }
public static String byteArrToHexString(byte[] bArr){ public static String byteArrToHexStringAsLE(byte[] bArr){
if (bArr == null) if (bArr == null)
return ""; return "";
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();

View file

@ -33,7 +33,7 @@ import java.nio.charset.StandardCharsets;
import java.util.Arrays; import java.util.Arrays;
import java.util.HashMap; import java.util.HashMap;
import static libKonogonka.Converter.byteArrToHexString; import static libKonogonka.Converter.byteArrToHexStringAsLE;
import static libKonogonka.Converter.getLElong; import static libKonogonka.Converter.getLElong;
// TODO: check file size // TODO: check file size
@ -253,7 +253,7 @@ public class NCAProvider {
if (Arrays.equals(rightsId, new byte[0x10])) // If empty Rights ID if (Arrays.equals(rightsId, new byte[0x10])) // If empty Rights ID
return decryptedKey2; // NOTE: Just remember this dumb hack return decryptedKey2; // NOTE: Just remember this dumb hack
byte[] rightsIdKey = hexStrToByteArray(keys.get(byteArrToHexString(rightsId))); // throws NullPointerException byte[] rightsIdKey = hexStrToByteArray(keys.get(byteArrToHexStringAsLE(rightsId))); // throws NullPointerException
SecretKeySpec skSpec = new SecretKeySpec( SecretKeySpec skSpec = new SecretKeySpec(
hexStrToByteArray(keys.get(String.format("titlekek_%02x", cryptoTypeReal)) hexStrToByteArray(keys.get(String.format("titlekek_%02x", cryptoTypeReal))
@ -264,7 +264,7 @@ public class NCAProvider {
} }
catch (Exception e){ catch (Exception e){
throw new Exception("No title.keys loaded for '"+ throw new Exception("No title.keys loaded for '"+
String.format("titlekek_%02x", cryptoTypeReal)+"' or '"+byteArrToHexString(rightsId)+"'? ("+e+")", e); String.format("titlekek_%02x", cryptoTypeReal)+"' or '"+ byteArrToHexStringAsLE(rightsId)+"'? ("+e+")", e);
} }
} }
private void setupNcaContentByNumber(int number, byte[] key){ private void setupNcaContentByNumber(int number, byte[] key){
@ -371,7 +371,7 @@ public class NCAProvider {
if (Arrays.equals(rightsId, new byte[0x10])) if (Arrays.equals(rightsId, new byte[0x10]))
return false; return false;
else else
return keys.containsKey(byteArrToHexString(rightsId)); return keys.containsKey(byteArrToHexStringAsLE(rightsId));
} }
/** /**
* Get content for the selected section * Get content for the selected section

View file

@ -24,7 +24,7 @@ import org.apache.logging.log4j.Logger;
import java.util.Arrays; import java.util.Arrays;
import static libKonogonka.Converter.byteArrToHexString; import static libKonogonka.Converter.byteArrToHexStringAsLE;
import static libKonogonka.Converter.getLElong; import static libKonogonka.Converter.getLElong;
public class NcaFsHeader { public class NcaFsHeader {
@ -178,12 +178,12 @@ public class NcaFsHeader {
} }
log.debug("NCASectionBlock:\n" + log.debug("NCASectionBlock:\n" +
"Version : " + byteArrToHexString(version) + "\n" + "Version : " + byteArrToHexStringAsLE(version) + "\n" +
"FS Type : " + fsType +(fsType == 0?" (RomFS)":fsType == 1?" (PartitionFS)":" (Unknown)")+ "\n" + "FS Type : " + fsType +(fsType == 0?" (RomFS)":fsType == 1?" (PartitionFS)":" (Unknown)")+ "\n" +
"Hash Type : " + hashType +" ("+ hashTypeDescription + ")\n" + "Hash Type : " + hashType +" ("+ hashTypeDescription + ")\n" +
"Crypto Type : " + cryptoType + " (" + cryptoTypeDescription + ")\n" + "Crypto Type : " + cryptoType + " (" + cryptoTypeDescription + ")\n" +
"Meta Data Hash Type : " + metaDataHashType + "\n" + "Meta Data Hash Type : " + metaDataHashType + "\n" +
"Padding : " + byteArrToHexString(padding) + "\n" + "Padding : " + byteArrToHexStringAsLE(padding) + "\n" +
"Super Block IVFC : " + (superBlockIVFC == null ? "-\n": "YES\n") + "Super Block IVFC : " + (superBlockIVFC == null ? "-\n": "YES\n") +
"Super Block PFS0 : " + (superBlockPFS0 == null ? "-\n": "YES\n") + "Super Block PFS0 : " + (superBlockPFS0 == null ? "-\n": "YES\n") +
"================================================================================================\n" + "================================================================================================\n" +
@ -197,47 +197,47 @@ public class NcaFsHeader {
"| Level 1 Offset : " + RainbowDump.formatDecHexString(superBlockIVFC.getLvl1Offset()) + "\n" + "| Level 1 Offset : " + RainbowDump.formatDecHexString(superBlockIVFC.getLvl1Offset()) + "\n" +
"| Level 1 Size : " + RainbowDump.formatDecHexString(superBlockIVFC.getLvl1Size()) + "\n" + "| Level 1 Size : " + RainbowDump.formatDecHexString(superBlockIVFC.getLvl1Size()) + "\n" +
"| Level 1 Block Size (log2) : " + RainbowDump.formatDecHexString(superBlockIVFC.getLvl1SBlockSize()) + "\n" + "| Level 1 Block Size (log2) : " + RainbowDump.formatDecHexString(superBlockIVFC.getLvl1SBlockSize()) + "\n" +
"| Level 1 reserved : " + byteArrToHexString(superBlockIVFC.getReserved1()) + "\n\n" + "| Level 1 reserved : " + byteArrToHexStringAsLE(superBlockIVFC.getReserved1()) + "\n\n" +
"| Level 2 Offset : " + RainbowDump.formatDecHexString(superBlockIVFC.getLvl2Offset()) + "\n" + "| Level 2 Offset : " + RainbowDump.formatDecHexString(superBlockIVFC.getLvl2Offset()) + "\n" +
"| Level 2 Size : " + RainbowDump.formatDecHexString(superBlockIVFC.getLvl2Size()) + "\n" + "| Level 2 Size : " + RainbowDump.formatDecHexString(superBlockIVFC.getLvl2Size()) + "\n" +
"| Level 2 Block Size (log2) : " + RainbowDump.formatDecHexString(superBlockIVFC.getLvl2SBlockSize()) + "\n" + "| Level 2 Block Size (log2) : " + RainbowDump.formatDecHexString(superBlockIVFC.getLvl2SBlockSize()) + "\n" +
"| Level 2 reserved : " + byteArrToHexString(superBlockIVFC.getReserved2()) + "\n\n" + "| Level 2 reserved : " + byteArrToHexStringAsLE(superBlockIVFC.getReserved2()) + "\n\n" +
"| Level 3 Offset : " + RainbowDump.formatDecHexString(superBlockIVFC.getLvl3Offset()) + "\n" + "| Level 3 Offset : " + RainbowDump.formatDecHexString(superBlockIVFC.getLvl3Offset()) + "\n" +
"| Level 3 Size : " + RainbowDump.formatDecHexString(superBlockIVFC.getLvl3Size()) + "\n" + "| Level 3 Size : " + RainbowDump.formatDecHexString(superBlockIVFC.getLvl3Size()) + "\n" +
"| Level 3 Block Size (log2) : " + RainbowDump.formatDecHexString(superBlockIVFC.getLvl3SBlockSize()) + "\n" + "| Level 3 Block Size (log2) : " + RainbowDump.formatDecHexString(superBlockIVFC.getLvl3SBlockSize()) + "\n" +
"| Level 3 reserved : " + byteArrToHexString(superBlockIVFC.getReserved3()) + "\n\n" + "| Level 3 reserved : " + byteArrToHexStringAsLE(superBlockIVFC.getReserved3()) + "\n\n" +
"| Level 4 Offset : " + RainbowDump.formatDecHexString(superBlockIVFC.getLvl4Offset()) + "\n" + "| Level 4 Offset : " + RainbowDump.formatDecHexString(superBlockIVFC.getLvl4Offset()) + "\n" +
"| Level 4 Size : " + RainbowDump.formatDecHexString(superBlockIVFC.getLvl4Size()) + "\n" + "| Level 4 Size : " + RainbowDump.formatDecHexString(superBlockIVFC.getLvl4Size()) + "\n" +
"| Level 4 Block Size (log2) : " + RainbowDump.formatDecHexString(superBlockIVFC.getLvl4SBlockSize()) + "\n" + "| Level 4 Block Size (log2) : " + RainbowDump.formatDecHexString(superBlockIVFC.getLvl4SBlockSize()) + "\n" +
"| Level 4 reserved : " + byteArrToHexString(superBlockIVFC.getReserved4()) + "\n\n" + "| Level 4 reserved : " + byteArrToHexStringAsLE(superBlockIVFC.getReserved4()) + "\n\n" +
"| Level 5 Offset : " + RainbowDump.formatDecHexString(superBlockIVFC.getLvl5Offset()) + "\n" + "| Level 5 Offset : " + RainbowDump.formatDecHexString(superBlockIVFC.getLvl5Offset()) + "\n" +
"| Level 5 Size : " + RainbowDump.formatDecHexString(superBlockIVFC.getLvl5Size()) + "\n" + "| Level 5 Size : " + RainbowDump.formatDecHexString(superBlockIVFC.getLvl5Size()) + "\n" +
"| Level 5 Block Size (log2) : " + RainbowDump.formatDecHexString(superBlockIVFC.getLvl5SBlockSize()) + "\n" + "| Level 5 Block Size (log2) : " + RainbowDump.formatDecHexString(superBlockIVFC.getLvl5SBlockSize()) + "\n" +
"| Level 5 reserved : " + byteArrToHexString(superBlockIVFC.getReserved5()) + "\n\n" + "| Level 5 reserved : " + byteArrToHexStringAsLE(superBlockIVFC.getReserved5()) + "\n\n" +
"| Level 6 Offset : " + RainbowDump.formatDecHexString(superBlockIVFC.getLvl6Offset()) + "\n" + "| Level 6 Offset : " + RainbowDump.formatDecHexString(superBlockIVFC.getLvl6Offset()) + "\n" +
"| Level 6 Size : " + RainbowDump.formatDecHexString(superBlockIVFC.getLvl6Size()) + "\n" + "| Level 6 Size : " + RainbowDump.formatDecHexString(superBlockIVFC.getLvl6Size()) + "\n" +
"| Level 6 Block Size (log2) : " + RainbowDump.formatDecHexString(superBlockIVFC.getLvl6SBlockSize()) + "\n" + "| Level 6 Block Size (log2) : " + RainbowDump.formatDecHexString(superBlockIVFC.getLvl6SBlockSize()) + "\n" +
"| Level 6 reserved : " + byteArrToHexString(superBlockIVFC.getReserved6()) + "\n\n" + "| Level 6 reserved : " + byteArrToHexStringAsLE(superBlockIVFC.getReserved6()) + "\n\n" +
"| SignatureSalt : " + byteArrToHexString(superBlockIVFC.getSignatureSalt()) + "\n" + "| SignatureSalt : " + byteArrToHexStringAsLE(superBlockIVFC.getSignatureSalt()) + "\n" +
"| Master Hash : " + byteArrToHexString(superBlockIVFC.getMasterHash()) + "\n" + "| Master Hash : " + byteArrToHexStringAsLE(superBlockIVFC.getMasterHash()) + "\n" +
"| Reserved (tail) : " + byteArrToHexString(superBlockIVFC.getReservedTail()) + "\n" "| Reserved (tail) : " + byteArrToHexStringAsLE(superBlockIVFC.getReservedTail()) + "\n"
) )
:(((fsType == 0x1) && (hashType == 0x2))? :(((fsType == 0x1) && (hashType == 0x2))?
("| Hash Data - PFS0\n" + ("| Hash Data - PFS0\n" +
"| SHA256 hash : " + byteArrToHexString(superBlockPFS0.getSHA256hash()) + "\n" + "| SHA256 hash : " + byteArrToHexStringAsLE(superBlockPFS0.getSHA256hash()) + "\n" +
"| Block Size (bytes) : " + superBlockPFS0.getBlockSize() + "\n" + "| Block Size (bytes) : " + superBlockPFS0.getBlockSize() + "\n" +
"| Layer Count (2) : " + superBlockPFS0.getLayerCount() + "\n" + "| Layer Count (2) : " + superBlockPFS0.getLayerCount() + "\n" +
"| Hash table offset : " + RainbowDump.formatDecHexString(superBlockPFS0.getHashTableOffset()) + "\n" + "| Hash table offset : " + RainbowDump.formatDecHexString(superBlockPFS0.getHashTableOffset()) + "\n" +
"| Hash table size : " + RainbowDump.formatDecHexString(superBlockPFS0.getHashTableSize()) + "\n" + "| Hash table size : " + RainbowDump.formatDecHexString(superBlockPFS0.getHashTableSize()) + "\n" +
"| PFS0 header offset : " + RainbowDump.formatDecHexString(superBlockPFS0.getPfs0offset()) + "\n" + "| PFS0 header offset : " + RainbowDump.formatDecHexString(superBlockPFS0.getPfs0offset()) + "\n" +
"| PFS0 header size : " + RainbowDump.formatDecHexString(superBlockPFS0.getPfs0size()) + "\n" + "| PFS0 header size : " + RainbowDump.formatDecHexString(superBlockPFS0.getPfs0size()) + "\n" +
"| Unknown (reserved) : " + byteArrToHexString(superBlockPFS0.getZeroes()) + "\n" "| Unknown (reserved) : " + byteArrToHexStringAsLE(superBlockPFS0.getZeroes()) + "\n"
) )
: :
" // Hash Data - EMPTY \\\\ \n" " // Hash Data - EMPTY \\\\ \n"
@ -250,17 +250,17 @@ public class NcaFsHeader {
"Magic ('BKTR') : " + BktrSection1.getMagic() + "\n" + "Magic ('BKTR') : " + BktrSection1.getMagic() + "\n" +
"Version : " + BktrSection1.getVersion() + "\n" + "Version : " + BktrSection1.getVersion() + "\n" +
"EntryCount : " + BktrSection1.getEntryCount() + "\n" + "EntryCount : " + BktrSection1.getEntryCount() + "\n" +
"Unknown (reserved) : " + byteArrToHexString(BktrSection1.getUnknown()) + "\n" + "Unknown (reserved) : " + byteArrToHexStringAsLE(BktrSection1.getUnknown()) + "\n" +
"------------------------------------------------------------------------------------------------\n" + "------------------------------------------------------------------------------------------------\n" +
"AesCtrEx Offset : " + PatchInfoOffsetSection2 + "\n" + "AesCtrEx Offset : " + PatchInfoOffsetSection2 + "\n" +
"AesCtrEx Size : " + PatchInfoSizeSection2 + "\n" + "AesCtrEx Size : " + PatchInfoSizeSection2 + "\n" +
"Magic ('BKTR') : " + BktrSection2.getMagic() + "\n" + "Magic ('BKTR') : " + BktrSection2.getMagic() + "\n" +
"Version : " + BktrSection2.getVersion() + "\n" + "Version : " + BktrSection2.getVersion() + "\n" +
"EntryCount : " + BktrSection2.getEntryCount() + "\n" + "EntryCount : " + BktrSection2.getEntryCount() + "\n" +
"Unknown (reserved) : " + byteArrToHexString(BktrSection2.getUnknown()) + "\n" + "Unknown (reserved) : " + byteArrToHexStringAsLE(BktrSection2.getUnknown()) + "\n" +
"================================================================================================\n" + "================================================================================================\n" +
"Generation : " + byteArrToHexString(generation) + "\n" + "Generation : " + byteArrToHexStringAsLE(generation) + "\n" +
"Section CTR : " + byteArrToHexString(sectionCTR) + "\n" + "Section CTR : " + byteArrToHexStringAsLE(sectionCTR) + "\n" +
"================================================================================================\n" + "================================================================================================\n" +
" Sparse Info\n" + " Sparse Info\n" +
"Table Offset : " + sparseInfo.getOffset() + "\n" + "Table Offset : " + sparseInfo.getOffset() + "\n" +
@ -268,10 +268,10 @@ public class NcaFsHeader {
"Magic ('BKTR') : " + sparseInfo.getBktrMagic() + "\n" + "Magic ('BKTR') : " + sparseInfo.getBktrMagic() + "\n" +
"Version : " + sparseInfo.getBktrVersion() + "\n" + "Version : " + sparseInfo.getBktrVersion() + "\n" +
"EntryCount : " + sparseInfo.getBktrEntryCount() + "\n" + "EntryCount : " + sparseInfo.getBktrEntryCount() + "\n" +
"Unknown (BKTR) : " + byteArrToHexString(sparseInfo.getBktrUnknown()) + "\n" + "Unknown (BKTR) : " + byteArrToHexStringAsLE(sparseInfo.getBktrUnknown()) + "\n" +
"PhysicalOffset : " + sparseInfo.getPhysicalOffset() + "\n" + "PhysicalOffset : " + sparseInfo.getPhysicalOffset() + "\n" +
"Generation : " + byteArrToHexString(sparseInfo.getGeneration()) + "\n" + "Generation : " + byteArrToHexStringAsLE(sparseInfo.getGeneration()) + "\n" +
"Unknown (reserved) : " + byteArrToHexString(sparseInfo.getUnknown()) + "\n" + "Unknown (reserved) : " + byteArrToHexStringAsLE(sparseInfo.getUnknown()) + "\n" +
"================================================================================================\n" + "================================================================================================\n" +
" Compression Info\n" + " Compression Info\n" +
"Table Offset : " + compressionInfo.getOffset() + "\n" + "Table Offset : " + compressionInfo.getOffset() + "\n" +
@ -279,15 +279,15 @@ public class NcaFsHeader {
"Magic ('BKTR') : " + compressionInfo.getBktrMagic() + "\n" + "Magic ('BKTR') : " + compressionInfo.getBktrMagic() + "\n" +
"Version : " + compressionInfo.getBktrVersion() + "\n" + "Version : " + compressionInfo.getBktrVersion() + "\n" +
"EntryCount : " + compressionInfo.getBktrEntryCount() + "\n" + "EntryCount : " + compressionInfo.getBktrEntryCount() + "\n" +
"Unknown (reserved) : " + byteArrToHexString(compressionInfo.getBktrUnknown()) + "\n" + "Unknown (reserved) : " + byteArrToHexStringAsLE(compressionInfo.getBktrUnknown()) + "\n" +
"Reserved : " + byteArrToHexString(compressionInfo.getUnknown()) + "\n" + "Reserved : " + byteArrToHexStringAsLE(compressionInfo.getUnknown()) + "\n" +
"================================================================================================\n" + "================================================================================================\n" +
" Meta Data Hash Data Info\n" + " Meta Data Hash Data Info\n" +
"Table Offset : " + metaDataHashDataInfo.getOffset() + "\n" + "Table Offset : " + metaDataHashDataInfo.getOffset() + "\n" +
"Table Size : " + metaDataHashDataInfo.getSize() + "\n" + "Table Size : " + metaDataHashDataInfo.getSize() + "\n" +
"Unknown (reserved) : " + byteArrToHexString(metaDataHashDataInfo.getTableHash()) + "\n" + "Unknown (reserved) : " + byteArrToHexStringAsLE(metaDataHashDataInfo.getTableHash()) + "\n" +
"================================================================================================\n" + "================================================================================================\n" +
"Unknown End Padding : " + byteArrToHexString(unknownEndPadding) + "\n" + "Unknown End Padding : " + byteArrToHexStringAsLE(unknownEndPadding) + "\n" +
"################################################################################################\n" "################################################################################################\n"
); );
} }

View file

@ -121,7 +121,7 @@ public class NSO0Header {
" ============================================================= \n" + " ============================================================= \n" +
"Magic \"NSO0\" " + magic + "\n" + "Magic \"NSO0\" " + magic + "\n" +
"Version (always 0) " + version + "\n" + "Version (always 0) " + version + "\n" +
"Reserved " + Converter.byteArrToHexString(upperReserved) + "\n" + "Reserved " + Converter.byteArrToHexStringAsLE(upperReserved) + "\n" +
"Flags " + Converter.intToBinaryString(flags) + "\n" + "Flags " + Converter.intToBinaryString(flags) + "\n" +
" |- 0. .text Compress " + isTextCompressFlag() + "\n" + " |- 0. .text Compress " + isTextCompressFlag() + "\n" +
" |- 1. .rodata Compress " + isRoCompressFlag() + "\n" + " |- 1. .rodata Compress " + isRoCompressFlag() + "\n" +
@ -147,11 +147,11 @@ public class NSO0Header {
" |- Memory Offset - - - - - - - - - - - - - " + RainbowDump.formatDecHexString(dataSegmentHeader.getMemoryOffset()) + "\n" + " |- Memory Offset - - - - - - - - - - - - - " + RainbowDump.formatDecHexString(dataSegmentHeader.getMemoryOffset()) + "\n" +
" |- Size As Decompressed - - - - - - - - - " + RainbowDump.formatDecHexString(dataSegmentHeader.getSizeAsDecompressed()) + "\n" + " |- Size As Decompressed - - - - - - - - - " + RainbowDump.formatDecHexString(dataSegmentHeader.getSizeAsDecompressed()) + "\n" +
" .bss Size " + RainbowDump.formatDecHexString(bssSize) + "\n" + // Block Started by Symbol " .bss Size " + RainbowDump.formatDecHexString(bssSize) + "\n" + // Block Started by Symbol
"Module ID (aka Build ID) " + Converter.byteArrToHexString(moduleId) + "\n" + "Module ID (aka Build ID) " + Converter.byteArrToHexStringAsLE(moduleId) + "\n" +
" .text Size (compressed) " + RainbowDump.formatDecHexString(textCompressedSize) + "\n" + " .text Size (compressed) " + RainbowDump.formatDecHexString(textCompressedSize) + "\n" +
" .rodata Size (compressed) " + RainbowDump.formatDecHexString(rodataCompressedSize) + "\n" + " .rodata Size (compressed) " + RainbowDump.formatDecHexString(rodataCompressedSize) + "\n" +
" .data Size (compressed) " + RainbowDump.formatDecHexString(dataCompressedSize) + "\n" + " .data Size (compressed) " + RainbowDump.formatDecHexString(dataCompressedSize) + "\n" +
"Reserved " + Converter.byteArrToHexString(bottomReserved) + "\n" + "Reserved " + Converter.byteArrToHexStringAsLE(bottomReserved) + "\n" +
" xxx\n"+ " xxx\n"+
"SegmentHeaderRelative for .api_info\n" + "SegmentHeaderRelative for .api_info\n" +
" |- Offset - - - - - - - - - - - - - - - - " + RainbowDump.formatDecHexString(_api_infoRelative.getOffset()) + "\n" + " |- Offset - - - - - - - - - - - - - - - - " + RainbowDump.formatDecHexString(_api_infoRelative.getOffset()) + "\n" +
@ -165,9 +165,9 @@ public class NSO0Header {
" |- Offset - - - - - - - - - - - - - - - - " + RainbowDump.formatDecHexString(_dynsymRelative.getOffset()) + "\n" + " |- Offset - - - - - - - - - - - - - - - - " + RainbowDump.formatDecHexString(_dynsymRelative.getOffset()) + "\n" +
" |- Size - - - - - - - - - - - - - - - - - " + RainbowDump.formatDecHexString(_dynsymRelative.getSize()) + "\n" + " |- Size - - - - - - - - - - - - - - - - - " + RainbowDump.formatDecHexString(_dynsymRelative.getSize()) + "\n" +
" xxx\n"+ " xxx\n"+
".text decompressed' SHA-256 hash " + Converter.byteArrToHexString(textHash) + "\n" + ".text decompressed' SHA-256 hash " + Converter.byteArrToHexStringAsLE(textHash) + "\n" +
".rodata decompressed' SHA-256 hash " + Converter.byteArrToHexString(rodataHash) + "\n" + ".rodata decompressed' SHA-256 hash " + Converter.byteArrToHexStringAsLE(rodataHash) + "\n" +
".data decompressed' SHA-256 hash " + Converter.byteArrToHexString(dataHash) + "\n" + ".data decompressed' SHA-256 hash " + Converter.byteArrToHexStringAsLE(dataHash) + "\n" +
" ============================================================= " " ============================================================= "
); );
} }

View file

@ -111,13 +111,13 @@ public class PFS0Header {
"Magic " + magic + "\n" + "Magic " + magic + "\n" +
"Files count " + RainbowDump.formatDecHexString(filesCount) + "\n" + "Files count " + RainbowDump.formatDecHexString(filesCount) + "\n" +
"String Table Size " + RainbowDump.formatDecHexString(stringTableSize) + "\n" + "String Table Size " + RainbowDump.formatDecHexString(stringTableSize) + "\n" +
"Padding " + Converter.byteArrToHexString(padding) + "\n\n" "Padding " + Converter.byteArrToHexStringAsLE(padding) + "\n\n"
); );
for (PFS0subFile subFile : pfs0subFiles){ for (PFS0subFile subFile : pfs0subFiles){
log.debug("\nName: " + subFile.getName() + "\n" + log.debug("\nName: " + subFile.getName() + "\n" +
"Offset " + RainbowDump.formatDecHexString(subFile.getOffset()) + "\n" + "Offset " + RainbowDump.formatDecHexString(subFile.getOffset()) + "\n" +
"Size " + RainbowDump.formatDecHexString(subFile.getSize()) + "\n" + "Size " + RainbowDump.formatDecHexString(subFile.getSize()) + "\n" +
"Zeroes " + Converter.byteArrToHexString(subFile.getZeroes()) + "\n" + "Zeroes " + Converter.byteArrToHexStringAsLE(subFile.getZeroes()) + "\n" +
"----------------------------------------------------------------" "----------------------------------------------------------------"
); );
} }

View file

@ -63,14 +63,14 @@ public class XCIGamecardCert {
public void printDebug(){ public void printDebug(){
log.debug("== XCIGamecardCert ==\n" + log.debug("== XCIGamecardCert ==\n" +
"rsa2048PKCS1sig " + Converter.byteArrToHexString(rsa2048PKCS1sig) + "\n" + "rsa2048PKCS1sig " + Converter.byteArrToHexStringAsLE(rsa2048PKCS1sig) + "\n" +
"magicCert " + Converter.byteArrToHexString(magicCert) + "\n" + "magicCert " + Converter.byteArrToHexStringAsLE(magicCert) + "\n" +
"unknown1 " + Converter.byteArrToHexString(unknown1) + "\n" + "unknown1 " + Converter.byteArrToHexStringAsLE(unknown1) + "\n" +
"kekIndex " + kekIndex + "\n" + "kekIndex " + kekIndex + "\n" +
"unknown2 " + Converter.byteArrToHexString(unknown2) + "\n" + "unknown2 " + Converter.byteArrToHexStringAsLE(unknown2) + "\n" +
"deviceID " + Converter.byteArrToHexString(deviceID) + "\n" + "deviceID " + Converter.byteArrToHexStringAsLE(deviceID) + "\n" +
"unknown3 " + Converter.byteArrToHexString(unknown3) + "\n" + "unknown3 " + Converter.byteArrToHexStringAsLE(unknown3) + "\n" +
"encryptedData " + Converter.byteArrToHexString(encryptedData) + "\n" "encryptedData " + Converter.byteArrToHexStringAsLE(encryptedData) + "\n"
); );
} }
} }