mirror of
https://github.com/StudentBlake/XCI-Explorer
synced 2024-11-24 21:23:02 +00:00
Merge pull request #51 from zzpong/master
master_key_0a supported, fix issue #50 and more
This commit is contained in:
commit
c854cd45a3
5 changed files with 53 additions and 24 deletions
|
@ -11,9 +11,9 @@ using System.Runtime.InteropServices;
|
|||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("")]
|
||||
[assembly: AssemblyProduct("XCI Explorer")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2019")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2020")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: ComVisible(false)]
|
||||
[assembly: Guid("206c6c47-87b1-477f-b6e6-f7e7c1a92f8f")]
|
||||
[assembly: AssemblyFileVersion("1.4.9")]
|
||||
[assembly: AssemblyVersion("1.4.9")]
|
||||
[assembly: AssemblyFileVersion("1.5.0")]
|
||||
[assembly: AssemblyVersion("1.5.0")]
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
<OutputType>WinExe</OutputType>
|
||||
<AssemblyName>XCI-Explorer</AssemblyName>
|
||||
<TargetFrameworkIdentifier>.NETFramework</TargetFrameworkIdentifier>
|
||||
<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
|
||||
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<AllowUnsafeBlocks>True</AllowUnsafeBlocks>
|
||||
<NuGetPackageImportStamp>
|
||||
|
|
|
@ -67,7 +67,7 @@ namespace XCI_Explorer
|
|||
{
|
||||
using (var client = new WebClient())
|
||||
{
|
||||
client.DownloadFile(Util.Base64Decode("aHR0cHM6Ly9wYXN0ZWJpbi5jb20vcmF3L3dZbUxUTkxx"), "keys.txt");
|
||||
client.DownloadFile(Util.Base64Decode("aHR0cHM6Ly9wYXN0ZWJpbi5jb20vcmF3L2NWR3JQSHp6"), "keys.txt");
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -124,6 +124,7 @@ namespace XCI_Explorer
|
|||
where x.Length > 1
|
||||
select x).ToDictionary((string[] x) => x[0].Trim(), (string[] x) => x[1]);
|
||||
Mkey = "master_key_";
|
||||
string MkeyL = "master_key_";
|
||||
if (NCA.NCA_Headers[0].MasterKeyRev == 0 || NCA.NCA_Headers[0].MasterKeyRev == 1)
|
||||
{
|
||||
Mkey += "00";
|
||||
|
@ -131,12 +132,18 @@ namespace XCI_Explorer
|
|||
else if (NCA.NCA_Headers[0].MasterKeyRev < 17)
|
||||
{
|
||||
int num = NCA.NCA_Headers[0].MasterKeyRev - 1;
|
||||
Mkey = Mkey + "0" + num.ToString();
|
||||
string capchar = num.ToString("X");
|
||||
string lowchar = capchar.ToLower();
|
||||
Mkey = Mkey + "0" + capchar;
|
||||
MkeyL = MkeyL + "0" + lowchar;
|
||||
}
|
||||
else if (NCA.NCA_Headers[0].MasterKeyRev >= 17)
|
||||
{
|
||||
int num2 = NCA.NCA_Headers[0].MasterKeyRev - 1;
|
||||
string capchar = num2.ToString("X");
|
||||
string lowchar = capchar.ToLower();
|
||||
Mkey += num2.ToString();
|
||||
MkeyL += num2.ToString();
|
||||
}
|
||||
try
|
||||
{
|
||||
|
@ -144,10 +151,18 @@ namespace XCI_Explorer
|
|||
return true;
|
||||
}
|
||||
catch
|
||||
{
|
||||
try
|
||||
{
|
||||
MkeyL = dictionary[MkeyL].Replace(" ", "");
|
||||
return true;
|
||||
}
|
||||
catch
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void ProcessFile()
|
||||
{
|
||||
|
@ -188,7 +203,7 @@ namespace XCI_Explorer
|
|||
MessageBox.Show("File is corrupt or unsupported.");
|
||||
}
|
||||
}
|
||||
catch(Exception e)
|
||||
catch (Exception e)
|
||||
{
|
||||
MessageBox.Show("Error: " + e.ToString() + "\nFile is corrupt or unsupported.");
|
||||
}
|
||||
|
@ -634,15 +649,24 @@ namespace XCI_Explorer
|
|||
else if (strArray[0] == "Master Key Revision")
|
||||
{
|
||||
string MasterKey = strArray[1].Trim();
|
||||
int keyblob;
|
||||
|
||||
if (MasterKey.Contains("Unknown"))
|
||||
{
|
||||
int keyblob;
|
||||
if (int.TryParse(new string(MasterKey.TakeWhile(Char.IsDigit).ToArray()), out keyblob))
|
||||
{
|
||||
MasterKey = Util.GetMkey((byte)(keyblob + 1)).Replace("MasterKey", "");
|
||||
}
|
||||
}
|
||||
TB_MKeyRev.Text = "MasterKey" + MasterKey;
|
||||
}
|
||||
else
|
||||
{
|
||||
MasterKey = MasterKey.Split(new char[2] { 'x', ' ' })[1];
|
||||
keyblob = Convert.ToInt32(MasterKey, 16);
|
||||
MasterKey = Util.GetMkey((byte)(keyblob + 1));
|
||||
TB_MKeyRev.Text = MasterKey;
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -650,10 +674,19 @@ namespace XCI_Explorer
|
|||
process.Close();
|
||||
}
|
||||
catch { }
|
||||
if (Directory.Exists("tmp"))
|
||||
|
||||
try
|
||||
{
|
||||
File.Delete("meta");
|
||||
Directory.Delete("data", true);
|
||||
}
|
||||
catch { }
|
||||
|
||||
try
|
||||
{
|
||||
Directory.Delete("tmp", true);
|
||||
}
|
||||
catch { }
|
||||
|
||||
TB_Capacity.Text = "eShop";
|
||||
|
||||
|
@ -684,15 +717,12 @@ namespace XCI_Explorer
|
|||
|
||||
if (SecureName[si].EndsWith(".cnmt.nca"))
|
||||
{
|
||||
if (File.Exists("meta"))
|
||||
try
|
||||
{
|
||||
File.Delete("meta");
|
||||
}
|
||||
|
||||
if (Directory.Exists("data"))
|
||||
{
|
||||
Directory.Delete("data", true);
|
||||
}
|
||||
catch { }
|
||||
|
||||
using (FileStream fileStream2 = File.OpenWrite("meta"))
|
||||
{
|
||||
|
@ -755,15 +785,12 @@ namespace XCI_Explorer
|
|||
|
||||
if (ncaTarget.Contains(SecureName[si]))
|
||||
{
|
||||
if (File.Exists("meta"))
|
||||
try
|
||||
{
|
||||
File.Delete("meta");
|
||||
}
|
||||
|
||||
if (Directory.Exists("data"))
|
||||
{
|
||||
Directory.Delete("data", true);
|
||||
}
|
||||
catch { }
|
||||
|
||||
using (FileStream fileStream2 = File.OpenWrite("meta"))
|
||||
{
|
||||
|
|
|
@ -10,6 +10,8 @@ namespace XCI_Explorer
|
|||
{
|
||||
switch (id)
|
||||
{
|
||||
case 250:
|
||||
return "1GB";
|
||||
case 248:
|
||||
return "2GB";
|
||||
case 240:
|
||||
|
@ -51,7 +53,7 @@ namespace XCI_Explorer
|
|||
case 10:
|
||||
return "MasterKey9 (9.0.0-9.0.1)";
|
||||
case 11:
|
||||
return "MasterKey10 (?)";
|
||||
return "MasterKey10 (9.1.0-9.2.0)";
|
||||
case 12:
|
||||
return "MasterKey11 (?)";
|
||||
case 13:
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2"/></startup></configuration>
|
||||
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8"/></startup></configuration>
|
||||
|
|
Loading…
Reference in a new issue