Skip to content

Commit

Permalink
Health check: Add more hashes and fix broken sonic.exe check
Browse files Browse the repository at this point in the history
  • Loading branch information
Sora-yx committed Oct 16, 2024
1 parent f04b961 commit 25b4a97
Show file tree
Hide file tree
Showing 3 changed files with 45 additions and 24 deletions.
22 changes: 16 additions & 6 deletions SA-Mod-Manager/Configuration/SADX/SADXFileHashes
Original file line number Diff line number Diff line change
Expand Up @@ -4108,11 +4108,13 @@ name=system/re-jp.mpg
hash1=6ff964184d0e4dc3a10771d342cd84b213a372f9d4075c4fe4943c49e2764311
hash2=e333ce16625cd67f1e01ad9f1793c2575415c09f7c48b1c02e2e768b29d32a5b
hash3=cad5cb46831361562dcee731338ee0fcb9504f911274852a2c198c7284a9a95d
hash4=08f4da4d427f25c65bad4b3b191c2bff80de9b496259da0a1f0dd504e7ce402b
[1354]
name=system/re-us.mpg
hash1=8e276183e89d1c7f39a5fd9cb47b91a227d8986a606f422fc0c08fb873c075ae
hash2=4643a7cd9e1f0127e73208048515c54017a38cd6b0fdd9cfdf0abb79cdd52280
hash3=324f919ecd6e594f9ff20b5acf534c023b3204f2ac5397c88dc899dfe26f721d
hash4=80c711d0a7e412bc4e24a62dd31825b08e79e5d46363ea16422435dfec5c2258
[1355]
name=system/robotv.pvm
hash1=44690e8101179cd33250edd9e707f60224c1a5271779601c6892179989e79b6f
Expand All @@ -4139,41 +4141,49 @@ name=system/sa1.mpg
hash1=9d8408dadb3cf600e3288d4d7d71e6c8b7c883ce6aabd648236bf97634fad82e
hash2=b7af13683bddf083bb29442a7f3bbb05928a16f9275a67dd6e5b78d535060ebe
hash3=577803f3503e0eb4a100072df0974c1eedcc3d863c04193f751e962596c4758b
hash4=fcc8b563b3925134356698a49038b871c391e24958ec4c0ea7ad6439cb0ea057
[1363]
name=system/sa2.mpg
hash1=a03f26f7b64eb3b06dce1bf6fc9e1dfd6b31194852bd7f09bde7fc58c1e1d153
hash2=c2c2105bf1fe2859a5e5142b1412cb43a5203f39d591ed9200d38f6bf9b1fa05
hash3=8381e74c100082b580ba2e159905fc44b125ae2bae22a04310230a2dbdf6f272
hash4=f36abfe4df4e67b8fe8b974704c9baca3d9aae6424ed62a917c245c56f050bc5
[1364]
name=system/sa3.mpg
hash1=c27667e0a226c6f96c045928bbb6eb20f4a9da8f5ebe7b85874252f15da2940c
hash2=e2002a601c875bc173b2b8ecdafbcc1283fee39d1cb3839372178e63e61af386
hash3=06ac1497c9abd31c057536b9469475287e4d4e2600407f9e622cb0a04acde7b3
hash4=1926b850d240c1bffc4d3dd682227c6bd16fc6e44a9d893894301f9685b22c14
[1365]
name=system/sa4.mpg
hash1=03ba445399cd7797337483cb41c9284f305b167aa1c2421892b6bbcd355a8c23
hash2=2cfd833cd3846cd5279d13df8ae857eb309a4555099856d6ff4e576b1afb7e0e
hash3=1dfde3366b4975e0fc05a22801491dbcbe39710c601312130ef0634228b6a3db
hash4=37a4a7f5c54cb93932dbe705e67646869beef12c92751df079919d80d7a99642
[1366]
name=system/sa5.mpg
hash1=1d73aea7164c944513c20278907d23f040a36e93fe7283911509693530e3ae4a
hash2=d4cc5ff6da8f529753368128191b9112541ea99f64c6d5246eacaa35a766fcb3
hash3=c26542648c9f72c89d365a42b6863e20cd2ee7d03ce48980904ec9a9d582ab70
hash4=dad1d2718fa3051344ed566f24f997daad57c403093f997ffdf07e1bdde0563c
[1367]
name=system/sa6.mpg
hash1=3886679dccd7eabd1309d4134ccce01c176c5cb5f37e48eaee168f4efab080c5
hash2=f1686b16f2da2843499ac8b95ed8a7bb9e995a24f9b2f8e80ed0cb4f66b3fb0e
hash3=fb710cf2e05a64538e5f60f4258d0e9111f9593f445149e42dc0df0fe946e441
hash4=f8d3573709a2c47eac1d4916f3f53a0c023a482b9740e6d2d6c1ad95be442234
[1368]
name=system/sa7.mpg
hash1=8c6d2f901733533a5f20a5debe0a0f582e0c8c8a5959084c46d95326b139fc7b
hash2=f47d98c99d4956b4378daa4be1e3f6e6cb0cb44440e9f8ecf6af91070914017d
hash3=fce3f32bd9312ea258db04b5ce6f2896663778702f349ad3e83432c948f141f3
hash4=f7723ef5509c88759aa1cc918bf5f8720f5b320cbba0cc0fdb429dcd32c4cb01
[1369]
name=system/sa8.mpg
hash1=295463cd8e6ac70cfb46bbacedeb4c1e4d6eed7a054c34567a7629a58c0d28fe
hash2=170454de71d13c0a063dd9fa73bd0369b66ed9a2700152852ae304f809a9d047
hash3=60d657843e9daa2b6cd251f659d12350aad4dc975d07495f08f76f47f3ae9ac3
hash4=2950f1928a03db08855ef3ca7efd780cea6b669519f91a3dff5d5e5dd6dccf6f
[1370]
name=system/sake.pvm
hash1=f296422c4d8fd48c13a15384806c1281730239d6fa47093f579fca1ab2d5092f
Expand Down Expand Up @@ -5772,9 +5782,9 @@ hash1=7a6d4a8f256acb8770ca834e682d358c3d74c86b2c389a7a4fc45673584c6078
[1891]
name=sonic.exe
hash1=87F25545885009823998332D643EB0BACDD6516D1518A4E621913C152BE875A2
;hash1=6b0937caa0151287c182fcd8cd02b89ea464bd33a13a081c1220fa791f24cd74
;hash2=0405e89a93a3e063013c72cc92419879cdde2f0dcfc020016283cb46050b5229
;hash3=deb32e3367481d37e153f5927de8b5177ad98937afeb827e7ef9fab56c2a5556
;hash4=39e349385f99bd1bc87cee3404e063ef12443eca24312fe7e54ff441f3746531
;hash5=9a0ce853c1fc753b781cb8489edd0e9c2f9f0f81c94cb47d7bdb195795957425
;hash6=ba19afb8fe2e0ec7004523ee570349B393230e0a6118a1618dc2d9e1dafc3460
hash2=6b0937caa0151287c182fcd8cd02b89ea464bd33a13a081c1220fa791f24cd74
hash3=0405e89a93a3e063013c72cc92419879cdde2f0dcfc020016283cb46050b5229
hash4=deb32e3367481d37e153f5927de8b5177ad98937afeb827e7ef9fab56c2a5556
hash5=39e349385f99bd1bc87cee3404e063ef12443eca24312fe7e54ff441f3746531
hash6=9a0ce853c1fc753b781cb8489edd0e9c2f9f0f81c94cb47d7bdb195795957425
hash7=ba19afb8fe2e0ec7004523ee570349B393230e0a6118a1618dc2d9e1dafc3460
Empty file.
47 changes: 29 additions & 18 deletions SA-Mod-Manager/UI/HealthProgress.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ public static StatusValue GetFileStatus(string directory, HealthInfo file)

foreach (string hash in file.Hashes)
{
if (hash == currenthash)
if (hash.Equals(currenthash, StringComparison.CurrentCultureIgnoreCase))
{
return StatusValue.Good;
}
Expand Down Expand Up @@ -108,34 +108,41 @@ public static FileStatus SADXExecutableCheck(KeyValuePair<int, HealthInfo> file)

try
{

if (File.Exists(filename))
{
byte[] hash;
using (SHA256 sha = SHA256.Create())
using FileStream stream = File.OpenRead(filename);
using BinaryReader binr = new(stream);

// Move the stream's position to 0x004DB2A0 (start reading from this offset)
stream.Seek(0x004DB2A0, SeekOrigin.Begin);

byte[] checkrange = new byte[50445648];

// Read data into checkrange array
int bytesRead = stream.Read(checkrange, 0, 50445648);

if (bytesRead == 50445648)
{
using (FileStream stream = File.OpenRead(filename))
hash = SHA256.HashData(checkrange);

string hashed = string.Concat(hash.Select(x => x.ToString("x2")));

foreach (string filehash in file.Value.Hashes)
{
using (BinaryReader binr = new BinaryReader(stream))
if (hashed.Equals(filehash, StringComparison.CurrentCultureIgnoreCase))
{
byte[] checkrange = new byte[50445648];
stream.Read(checkrange, 0x004DB2A0, 50445648);
hash = sha.ComputeHash(checkrange);
statusValue = StatusValue.Good;
break;
}
}
}

string hashed = string.Concat(hash.Select(x => x.ToString("x2")));

foreach (string filehash in file.Value.Hashes)
{
if (hashed == filehash)
statusValue = StatusValue.Good;
break;
}
}
else
{
statusValue = StatusValue.NotFound;
}
} catch { }

return new(Path.GetFileName(file.Value.Filename), statusValue);
Expand Down Expand Up @@ -277,10 +284,14 @@ private async void OnLoaded(object sender, RoutedEventArgs e)

FileStatus status;

if (game == SetGame.SADX && file.Value.Filename == "sonic.exe")
if (game == SetGame.SADX && file.Value.Filename.Equals("sonic.exe", StringComparison.CurrentCultureIgnoreCase))
{
status = SADXExecutableCheck(file);
}
else
{
status = new(Path.GetFileName(file.Value.Filename), FileStatus.GetFileStatus(App.CurrentGame.gameDirectory, file.Value));
}

if (status.Status != FileStatus.StatusValue.Good)
{
Expand Down

0 comments on commit 25b4a97

Please sign in to comment.