patterns: Added Nintendo Switch PRODINFO pattern

This commit is contained in:
WerWolv
2021-12-09 14:13:54 -08:00
parent 853da68183
commit 5ec2c64eda
2 changed files with 206 additions and 0 deletions

View File

@@ -21,6 +21,7 @@ Hex patterns, include patterns and magic files for the use with the ImHex Hex Ed
| AR | `application/x-archive` | `patterns/ar.hexpat` | Static library archive files |
| NACP | | `patterns/nacp.hexpat` | Nintendo Switch NACP files |
| NRO | | `patterns/nro.hexpat` | Nintendo Switch NRO files |
| PRODINFO | | `patterns/prodinfo.hexpat` | Nintendo Switch PRODINFO |
| Java Class | `application/x-java-applet` | `patterns/java_class.hexpat` | Java Class files |
| ARM VTOR | | `patterns/arm_cm_vtor.hexpat` | ARM Cortex M Vector Table Layout |
| ICO | | `patterns/ico.hexpat` | Icon (.ico) or Cursor (.cur) files |

205
patterns/prodinfo.hexpat Normal file
View File

@@ -0,0 +1,205 @@
enum Model : u16 {
NX = 1
};
struct WlanCountryCode {
char code[3];
} [[static]];
struct Cert {
u8 DeviceKey[0x30];
padding[0x10];
u8 DeviceCertificate[0x180];
padding[0x10];
} [[static]];
enum RegionCode : u32 {
JPN = 0,
USA = 1,
EUR = 2,
AUS = 3,
CHN = 4,
KOR = 5,
HKG = 6
};
enum ProductModel : u32 {
Invalid = 0,
NX = 1,
Copper = 2,
Iowa = 3,
Hoag = 4,
Calcio = 5,
Aula = 6
};
struct PRODINFO {
char MagicNumber[4];
u32 Version;
u32 BodySize;
Model Model;
u16 UpdateCount;
padding[0x10];
u8 BodyHash[0x20];
char ConfigurationId1[0x1E];
padding[0x02];
padding[0x20];
u32 WlanCountryCodesNum;
u32 WlanCountryCodesLastIndex;
WlanCountryCode WlanCountryCodes[WlanCountryCodesNum];
padding[0x180 - sizeof(WlanCountryCodes)];
padding[0x08];
u8 WlanMacAddress[6];
padding[0x10 - 6];
u8 BdAddress[6];
padding[0x10 - 6];
u8 AccelerometerOffset[6];
padding[2];
u8 AccelerometerScale[6];
padding[2];
u8 GyroscopeOffset[6];
padding[2];
u8 GyroscopeScale[6];
padding[2];
char SerialNumber[0x18];
padding[8];
Cert EccP256Certificate;
Cert EccB233Certificate;
Cert Ecc256ETicket;
Cert Ecc233ETicket;
u8 SslKey[0x110];
padding[0x10];
u32 SslCertificateSize;
padding[0x0C];
u8 SslCertificate[0x800];
u8 SslCertificateHash[0x20];
u8 RandomNumber[0x1000];
u8 RandomNumberHash[0x20];
u8 GameCardKey[0x110];
u8 GameCardCertificate[0x400];
padding[0x10];
u8 GameCardCertificateHash[0x20];
u8 Rsa2048ETicketKey[0x220];
padding[0x10];
u8 Rsa2048ETicketCertificate[0x240];
padding[0x10];
char BatteryLot[0x18];
padding[0x08];
u8 SpeakerCalibrationValue[0x800];
padding[0x10];
RegionCode RegionCode;
padding[0x0C];
u8 AmiiboKey[0x50];
padding[0x10];
u8 AmiiboEcqvCertificate[0x14];
padding[0x0C];
u8 AmiiboEcdsaCertificate[0x70];
padding[0x10];
u8 AmiiboEcqvBlsKey[0x40];
padding[0x10];
u8 AmiiboEcqvBlsCertificate[0x20];
padding[0x10];
u8 AmiiboEcqvBlsRootCertificate[0x90];
padding[0x10];
ProductModel ProductModel;
padding[0x0C];
u8 ColorVariation[6];
padding[0x0A];
u8 LcdBacklightBrightnessMapping[0x0C];
padding[0x04];
u8 ExtendedEccB233DeviceKey[0x50];
padding[0x10];
u8 ExtendedEccP256ETicketKey[0x50];
padding[0x10];
u8 ExtendedEccB233ETicketKey[0x50];
padding[0x10];
u8 ExtendedRsa2048ETicketKey[0x240];
padding[0x10];
u8 ExtendedSslKey[0x130];
padding[0x10];
u8 ExtendedGameCardKey[0x130];
padding[0x10];
u32 LcdVendorId;
padding[0x0C];
u8 ExtendedRsa2048DeviceKey[0x240];
padding[0x10];
u8 Rsa2048DeviceCertificate[0x240];
padding[0x10];
u8 UsbTypeCPowerSourceCircuitVersion;
padding[0x0F];
u32 HousingSubColor;
padding[0x0C];
u32 HousingBezelColor;
padding[0x0C];
u32 HousingMainColor1;
padding[0x0C];
u32 HousingMainColor2;
padding[0x0C];
u32 HousingMainColor3;
padding[0x0C];
u8 AnalogStickModuleTypeL;
padding[0x0F];
u8 AnalogStickModelParameterL[0x12];
padding[0x0E];
u8 AnalogStickFactoryCalibrationL[0x09];
padding[0x07];
u8 AnalogStickModuleTypeR;
padding[0x0F];
u8 AnalogStickModelParameterR[0x12];
padding[0x0E];
u8 AnalogStickFactoryCalibrationR[0x09];
padding[0x07];
u8 ConsoleSixAxisSensorModuleType;
padding[0x0F];
u8 ConsoleSixAxisSensorHorizontalOffset[6];
padding[0x0A];
u8 BatteryVersion;
padding[0x0F];
u8 TouchIcVendorId;
padding[0x0F];
u32 ColorModel;
padding[0x0C];
u8 ConsoleSixAxisSensorMountType;
};
PRODINFO PRODINFO @ 0x00;