mirror of
https://github.com/modmii/SysCheck-ModMii-Edition.git
synced 2024-11-22 08:09:19 +01:00
-Added hashes for hermes cIOS 2XX[38+60]v4, 2XX[38+37]v4, and 2XX[57]v5.1 (thanks Cyan)
-Corrected hash values 0 through F from not being preceded with a 0. -Other minor changes
This commit is contained in:
parent
62e4b77c4a
commit
12a1cfb776
1
SysCheck HDE.pnproj
Normal file
1
SysCheck HDE.pnproj
Normal file
@ -0,0 +1 @@
|
|||||||
|
<Project name="SysCheck HDE"><MagicFolder excludeFiles="*.pnproj;*.pnps;*.bak;*.tmp" excludeFolders="CVS;.svn" filter="*.c;*.cpp;*.h" name="source" path="source\"><File path="fatMounter.c"></File><File path="gecko.c"></File><File path="gui.c"></File><File path="http.c"></File><File path="languages.c"></File><File path="mload.c"></File><File path="sha1.c"></File><File path="sys.c"></File><File path="sysCheck.c"></File><File path="SysMenuInfo.c"></File><File path="title.c"></File><File path="tmdIdentification.c"></File><File path="tools.c"></File><File path="update.c"></File><File path="upload.c"></File><File path="wiibasics.c"></File></MagicFolder><MagicFolder excludeFiles="*.pnproj;*.pnps;*.bak;*.tmp" excludeFolders="CVS;.svn" filter="*.h" name="include" path="include\"><File path="fatMounter.h"></File><File path="gecko.h"></File><File path="gui.h"></File><File path="http.h"></File><File path="languages.h"></File><File path="mload.h"></File><File path="sha1.h"></File><File path="sys.h"></File><File path="SysMenuInfo.h"></File><File path="title.h"></File><File path="tmdIdentification.h"></File><File path="tools.h"></File><File path="update.h"></File><File path="wiibasics.h"></File></MagicFolder><File path="Makefile"></File></Project>
|
@ -9,6 +9,7 @@
|
|||||||
#define MEM_PROT (MEM_REG_BASE + 0x20a)
|
#define MEM_PROT (MEM_REG_BASE + 0x20a)
|
||||||
#define HOLLYWOOD_VERSION (vu32*)0x80003138
|
#define HOLLYWOOD_VERSION (vu32*)0x80003138
|
||||||
#define LOADER_STUB (vu32*)0x80001800
|
#define LOADER_STUB (vu32*)0x80001800
|
||||||
|
#define IOS_TOP (*((vu32*)0x80003134))
|
||||||
#define IS_WII_U ((*(vu32*)(0xCd8005A0) >> 16 ) == 0xCAFE)
|
#define IS_WII_U ((*(vu32*)(0xCd8005A0) >> 16 ) == 0xCAFE)
|
||||||
#define MAX_ELEMENTS(x) ((sizeof((x))) / (sizeof((x)[0])))
|
#define MAX_ELEMENTS(x) ((sizeof((x))) / (sizeof((x)[0])))
|
||||||
#define CheckTime(X,Y) while(!(ticks_to_millisecs(diff_ticks((X), gettick())) > (Y)))
|
#define CheckTime(X,Y) while(!(ticks_to_millisecs(diff_ticks((X), gettick())) > (Y)))
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
#include <gctypes.h>
|
#include <gctypes.h>
|
||||||
|
|
||||||
#define base_number 122
|
#define base_number 125
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
u32 hashes[5];
|
u32 hashes[5];
|
||||||
|
@ -13,17 +13,17 @@ bool textVideoInit = false;
|
|||||||
void gprintf( const char *str, ... )
|
void gprintf( const char *str, ... )
|
||||||
{
|
{
|
||||||
if (!(geckoinit))return;
|
if (!(geckoinit))return;
|
||||||
|
char astr[1024];
|
||||||
char astr[4096];
|
|
||||||
|
|
||||||
va_list ap;
|
va_list ap;
|
||||||
va_start(ap,str);
|
va_start(ap,str);
|
||||||
|
|
||||||
vsprintf( astr, str, ap );
|
vsnprintf(astr, sizeof(astr), str, ap);
|
||||||
|
usb_sendbuffer_safe(1, astr, strlen(astr));
|
||||||
|
|
||||||
va_end(ap);
|
va_end(ap);
|
||||||
|
return;
|
||||||
|
|
||||||
usb_sendbuffer_safe( 1, astr, strlen(astr) );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void gsenddata(const u8 *data, int length, const char *filename)
|
void gsenddata(const u8 *data, int length, const char *filename)
|
||||||
|
@ -400,7 +400,7 @@ int main(int argc, char **argv)
|
|||||||
sha1 hash;
|
sha1 hash;
|
||||||
SHA1((u8 *)iosTMDBuffer, tmdSize, hash);
|
SHA1((u8 *)iosTMDBuffer, tmdSize, hash);
|
||||||
|
|
||||||
sprintf(HashLogBuffer[lines], "IOS%d base hash: \r\n%x %x %x %x, %x %x %x %x, %x %x %x %x, %x %x %x %x, %x %x %x %x\r\n", \
|
sprintf(HashLogBuffer[lines], "IOS%d base hash: \r\n%02x %02x %02x %02x, %02x %02x %02x %02x, %02x %02x %02x %02x, %02x %02x %02x %02x, %02x %02x %02x %02x\r\n", \
|
||||||
ios[i].titleID, hash[0], hash[1], hash[2], hash[3], hash[4], hash[5], hash[6], hash[7], hash[8], hash[9], hash[10], hash[11], hash[12], hash[13], hash[14], hash[15], hash[16], hash[17], hash[18], hash[19]);
|
ios[i].titleID, hash[0], hash[1], hash[2], hash[3], hash[4], hash[5], hash[6], hash[7], hash[8], hash[9], hash[10], hash[11], hash[12], hash[13], hash[14], hash[15], hash[16], hash[17], hash[18], hash[19]);
|
||||||
lines++;
|
lines++;
|
||||||
|
|
||||||
@ -621,7 +621,7 @@ int main(int argc, char **argv)
|
|||||||
// Test IOS type
|
// Test IOS type
|
||||||
gprintf("// Test IOS type\n");
|
gprintf("// Test IOS type\n");
|
||||||
logfile("// Test IOS type\r\n");
|
logfile("// Test IOS type\r\n");
|
||||||
ios[i].infovIOS = CheckIOSType(*((vu32*)0x80003134));
|
ios[i].infovIOS = CheckIOSType(IOS_TOP);
|
||||||
|
|
||||||
// Test fake signature
|
// Test fake signature
|
||||||
gprintf("// Test fake signature\n");
|
gprintf("// Test fake signature\n");
|
||||||
@ -687,7 +687,7 @@ int main(int argc, char **argv)
|
|||||||
sprintf(MSG_Buffer, MSG_ReloadIOS, runningIOS, runningIOSRevision);
|
sprintf(MSG_Buffer, MSG_ReloadIOS, runningIOS, runningIOSRevision);
|
||||||
printLoading(MSG_Buffer);
|
printLoading(MSG_Buffer);
|
||||||
IosPatch_FULL(false, false, false, false, runningIOS);
|
IosPatch_FULL(false, false, false, false, runningIOS);
|
||||||
ios[runningIOS].infovIOS = CheckIOSType(*((vu32*)0x80003134));
|
ios[runningIOS].infovIOS = CheckIOSType(IOS_TOP);
|
||||||
CheckTime(current_time, 500);
|
CheckTime(current_time, 500);
|
||||||
|
|
||||||
//--Generate Report--
|
//--Generate Report--
|
||||||
@ -904,8 +904,10 @@ int main(int argc, char **argv)
|
|||||||
sprintf(ReportBuffer[lineOffset], "BC v%d", ios[i].revision);
|
sprintf(ReportBuffer[lineOffset], "BC v%d", ios[i].revision);
|
||||||
} else if (ios[i].titleID == TID_MIOS) {
|
} else if (ios[i].titleID == TID_MIOS) {
|
||||||
sprintf(ReportBuffer[lineOffset], "MIOS v%d%s", ios[i].revision, SystemInfo.miosInfo);
|
sprintf(ReportBuffer[lineOffset], "MIOS v%d%s", ios[i].revision, SystemInfo.miosInfo);
|
||||||
} else if ((ios[i].titleID==222 || ios[i].titleID==224 || ios[i].titleID==223 || ios[i].titleID==202 || ios[i].titleID==225) && ios[i].baseIOS == 75) {
|
} else if (ios[i].baseIOS == 75 && (ios[i].titleID==222 || ios[i].titleID==224 || ios[i].titleID==223 || ios[i].titleID==202 || ios[i].titleID==225)) {
|
||||||
sprintf(ReportBuffer[lineOffset], "IOS%d[38+37] (rev %d, Info: %s):", ios[i].titleID, ios[i].revision, ios[i].info);
|
sprintf(ReportBuffer[lineOffset], "%sIOS%d[38+37] (rev %d, Info: %s):", ios[i].infovIOS ? "v" : "", ios[i].titleID, ios[i].revision, ios[i].info);
|
||||||
|
} else if (ios[i].baseIOS == 98 && (ios[i].titleID==222 || ios[i].titleID==224 || ios[i].titleID==223 || ios[i].titleID==202 || ios[i].titleID==225)) {
|
||||||
|
sprintf(ReportBuffer[lineOffset], "%sIOS%d[38+60] (rev %d, Info: %s):", ios[i].infovIOS ? "v" : "", ios[i].titleID, ios[i].revision, ios[i].info);
|
||||||
} else {
|
} else {
|
||||||
if(ios[i].mloadVersion > 0 && ios[i].baseIOS > 0) {
|
if(ios[i].mloadVersion > 0 && ios[i].baseIOS > 0) {
|
||||||
int v, s;
|
int v, s;
|
||||||
|
@ -51,7 +51,7 @@ iosHashes iosHash[base_number] = {
|
|||||||
{{0x5f178a98, 0x4c4486ee, 0xcdb51ca7, 0xb0b172a0, 0x91ab0d2b}, 38, "rev 21" }, // cIOS38 r21
|
{{0x5f178a98, 0x4c4486ee, 0xcdb51ca7, 0xb0b172a0, 0x91ab0d2b}, 38, "rev 21" }, // cIOS38 r21
|
||||||
{{0x115a5bc1, 0x28fd5a1f, 0xc5ca4b76, 0xd54d4016, 0x5f93e406}, 56, "rev 21" }, // cIOS56 r21
|
{{0x115a5bc1, 0x28fd5a1f, 0xc5ca4b76, 0xd54d4016, 0x5f93e406}, 56, "rev 21" }, // cIOS56 r21
|
||||||
{{0xd3198a49, 0xd4be48b6, 0x74c50488, 0xdf870e48, 0x91ed14a9}, 57, "rev 21" }, // cIOS57 r21
|
{{0xd3198a49, 0xd4be48b6, 0x74c50488, 0xdf870e48, 0x91ed14a9}, 57, "rev 21" }, // cIOS57 r21
|
||||||
{{0x3f0fa343, 0x68413800, 0xe31729a6, 0x1805e71e, 0x680f9add}, 37, "d2xv3" }, // d2x-v3 r21 Base: 37
|
{{0x3f0fa343, 0x68413800, 0xe31729a6, 0x1805e71e, 0x680f9add}, 37, "d2x-v3" }, // d2x-v3 r21 Base: 37
|
||||||
{{0xec25c714, 0xf63e6696, 0x10d6da7a, 0x4c331c64, 0xc3168ce6}, 38, "d2x-v3" }, // d2x-v3 r21 Base: 38
|
{{0xec25c714, 0xf63e6696, 0x10d6da7a, 0x4c331c64, 0xc3168ce6}, 38, "d2x-v3" }, // d2x-v3 r21 Base: 38
|
||||||
{{0xce0b9786, 0x6720fa8a, 0x4c09b54e, 0x42982999, 0xd447208b}, 56, "d2x-v3" }, // d2x-v3 r21 Base: 56
|
{{0xce0b9786, 0x6720fa8a, 0x4c09b54e, 0x42982999, 0xd447208b}, 56, "d2x-v3" }, // d2x-v3 r21 Base: 56
|
||||||
{{0xa24edf73, 0x572c5853, 0xcfe01a7e, 0x050afbf8, 0x6baa0d62}, 57, "d2x-v3" }, // d2x-v3 r21 Base: 57
|
{{0xa24edf73, 0x572c5853, 0xcfe01a7e, 0x050afbf8, 0x6baa0d62}, 57, "d2x-v3" }, // d2x-v3 r21 Base: 57
|
||||||
@ -123,5 +123,8 @@ iosHashes iosHash[base_number] = {
|
|||||||
{{0x1a3200ec, 0x7eaa20de, 0x69c02000, 0x496f2d01, 0x506a7824}, 50, "rev 4889" }, // IOS50 rev 4889
|
{{0x1a3200ec, 0x7eaa20de, 0x69c02000, 0x496f2d01, 0x506a7824}, 50, "rev 4889" }, // IOS50 rev 4889
|
||||||
{{0xea390bf6, 0x4b1f6640, 0xdb46f605, 0xb3c1f6fc, 0x62f173b9}, 30, "rev 2576" }, // IOS30 rev 2576
|
{{0xea390bf6, 0x4b1f6640, 0xdb46f605, 0xb3c1f6fc, 0x62f173b9}, 30, "rev 2576" }, // IOS30 rev 2576
|
||||||
{{0x97f4ad1a, 0x437842a8, 0x015435c7, 0xa2b25178, 0x3564265d}, 20, "rev 12" }, // IOS20 rev 212
|
{{0x97f4ad1a, 0x437842a8, 0x015435c7, 0xa2b25178, 0x3564265d}, 20, "rev 12" }, // IOS20 rev 212
|
||||||
{{0xe42a9e18, 0xa967eb9c, 0x94769498, 0x917c9ab9, 0x6169e7ca}, 11, "rev 10" } // IOS11 rev 10
|
{{0xe42a9e18, 0xa967eb9c, 0x94769498, 0x917c9ab9, 0x6169e7ca}, 11, "rev 10" }, // IOS11 rev 10
|
||||||
|
{{0xac1c011f, 0x596e0fb8, 0x0e83b19e, 0xac99cffa, 0xbeed2e8d}, 98, "hermes-v4" }, // Hermes v4 Base: 60+38
|
||||||
|
{{0x3b8cb30a, 0x64facf46, 0xf49f1342, 0xe27cb546, 0xd6507060}, 75, "hermes-v4" }, // Hermes v4 Base: 38+37
|
||||||
|
{{0x53fb3439, 0xd6fa27c4, 0xf475ca03, 0x4cc113d0, 0x64c84cf5}, 57, "hermes-5.1"} // Hermes v4 Base: 57
|
||||||
};
|
};
|
@ -155,10 +155,10 @@ void formatDate(u32 date, char ReportBuffer[200][100]) {
|
|||||||
char month[2] = {0};
|
char month[2] = {0};
|
||||||
char year[4] = {0};
|
char year[4] = {0};
|
||||||
|
|
||||||
sprintf(temp, "%08x", date);
|
snprintf(temp, sizeof(temp), "%08x", date);
|
||||||
sprintf(year, "%c%c%c%c", temp[0], temp[1], temp[2], temp[3]);
|
snprintf(year, sizeof(year), "%c%c%c%c", temp[0], temp[1], temp[2], temp[3]);
|
||||||
sprintf(month, "%c%c", temp[4], temp[5]);
|
snprintf(month, sizeof(month), "%c%c", temp[4], temp[5]);
|
||||||
sprintf(day, "%c%c", temp[6], temp[7]);
|
snprintf(day, sizeof(day), "%c%c", temp[6], temp[7]);
|
||||||
|
|
||||||
gprintf("MONTH: %s\n", month);
|
gprintf("MONTH: %s\n", month);
|
||||||
gprintf("DAY: %s\n", day);
|
gprintf("DAY: %s\n", day);
|
||||||
@ -173,10 +173,10 @@ void formatDate(u32 date, char ReportBuffer[200][100]) {
|
|||||||
case CONF_LANG_GERMAN:
|
case CONF_LANG_GERMAN:
|
||||||
case CONF_LANG_ITALIAN:
|
case CONF_LANG_ITALIAN:
|
||||||
case CONF_LANG_SPANISH:
|
case CONF_LANG_SPANISH:
|
||||||
sprintf(result, "%s.%s.%s", day, month, year);
|
snprintf(result, sizeof(result), "%s.%s.%s", day, month, year);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
sprintf(result, "%s.%s.%s", month, day, year); // You don't say "I was born 1990 January 1" The year comes last
|
snprintf(result, sizeof(result), "%s.%s.%s", month, day, year); // You don't say "I was born 1990 January 1" The year comes last
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
gprintf("String: %s\n", result);
|
gprintf("String: %s\n", result);
|
||||||
|
@ -1 +0,0 @@
|
|||||||
<Project name="sysCheck"><MagicFolder excludeFiles="*.pnproj;*.pnps;*.bak;*.tmp" excludeFolders="CVS;.svn" filter="*.c;*.cpp;*.h" name="source" path="source\"><File path="fatMounter.c"></File><File path="gecko.c"></File><File path="gui.c"></File><File path="http.c"></File><File path="languages.c"></File><File path="mload.c"></File><File path="sha1.c"></File><File path="sys.c"></File><File path="sysCheck.c"></File><File path="SysMenuInfo.c"></File><File path="title.c"></File><File path="tmdIdentification.c"></File><File path="tools.c"></File><File path="update.c"></File><File path="upload.c"></File><File path="wiibasics.c"></File></MagicFolder><MagicFolder excludeFiles="*.pnproj;*.pnps;*.bak;*.tmp" excludeFolders="CVS;.svn" filter="*.h" name="include" path="include\"><File path="fatMounter.h"></File><File path="gecko.h"></File><File path="gui.h"></File><File path="http.h"></File><File path="languages.h"></File><File path="mload.h"></File><File path="sha1.h"></File><File path="sys.h"></File><File path="SysMenuInfo.h"></File><File path="title.h"></File><File path="tmdIdentification.h"></File><File path="tools.h"></File><File path="update.h"></File><File path="wiibasics.h"></File></MagicFolder><File path="Makefile"></File></Project>
|
|
Loading…
Reference in New Issue
Block a user