Various updates, including random cache-break string and directory separator updates.

This commit is contained in:
gb.luke 2009-10-14 20:52:16 +00:00
parent 454a9777d9
commit 35557c2d51
3 changed files with 60 additions and 57 deletions

View File

@ -313,7 +313,8 @@
this.updateDatabaseToolStripMenuItem}); this.updateDatabaseToolStripMenuItem});
this.databaseStrip.Name = "databaseStrip"; this.databaseStrip.Name = "databaseStrip";
this.databaseStrip.ShowItemToolTips = false; this.databaseStrip.ShowItemToolTips = false;
this.databaseStrip.Size = new System.Drawing.Size(164, 148); this.databaseStrip.Size = new System.Drawing.Size(164, 170);
//this.databaseStrip.Opening += new System.ComponentModel.CancelEventHandler(this.databaseStrip_Opening);
// //
// SystemMenuList // SystemMenuList
// //
@ -891,7 +892,7 @@
this.toolStripSeparator6, this.toolStripSeparator6,
this.loadNUSScriptToolStripMenuItem}); this.loadNUSScriptToolStripMenuItem});
this.extrasStrip.Name = "extrasStrip"; this.extrasStrip.Name = "extrasStrip";
this.extrasStrip.Size = new System.Drawing.Size(228, 160); this.extrasStrip.Size = new System.Drawing.Size(228, 138);
// //
// loadInfoFromTMDToolStripMenuItem // loadInfoFromTMDToolStripMenuItem
// //

View File

@ -19,7 +19,7 @@ namespace NUS_Downloader
const string NUSURL = "http://nus.cdn.shop.wii.com/ccs/download/"; const string NUSURL = "http://nus.cdn.shop.wii.com/ccs/download/";
const string DSiNUSURL = "http://nus.cdn.t.shop.nintendowifi.net/ccs/download/"; const string DSiNUSURL = "http://nus.cdn.t.shop.nintendowifi.net/ccs/download/";
// TODO: Always remember to change version! // TODO: Always remember to change version!
string version = "v1.3 Beta"; string version = "v1.4 Beta";
WebClient generalWC = new WebClient(); WebClient generalWC = new WebClient();
static RijndaelManaged rijndaelCipher; static RijndaelManaged rijndaelCipher;
static bool dsidecrypt = false; static bool dsidecrypt = false;
@ -206,8 +206,8 @@ namespace NUS_Downloader
{ {
// Directory stuff // Directory stuff
string currentdir = Application.StartupPath; string currentdir = Application.StartupPath;
if (currentdir.EndsWith(Convert.ToString(Path.DirectorySeparatorChar)) == false) if (currentdir.EndsWith(Convert.ToString(Path.DirectorySeparatorChar.ToString())) == false)
currentdir += Path.DirectorySeparatorChar; currentdir += Path.DirectorySeparatorChar.ToString();
// Check for Wii common key bin file... // Check for Wii common key bin file...
if (File.Exists(currentdir + "key.bin") == false) if (File.Exists(currentdir + "key.bin") == false)
@ -771,8 +771,8 @@ namespace NUS_Downloader
// Current directory... // Current directory...
string currentdir = Application.StartupPath; string currentdir = Application.StartupPath;
if (!(currentdir.EndsWith(@"\")) || !(currentdir.EndsWith(@"/"))) if (!(currentdir.EndsWith(Path.DirectorySeparatorChar.ToString())) || !(currentdir.EndsWith(Path.AltDirectorySeparatorChar.ToString())))
currentdir += @"\"; currentdir += Path.DirectorySeparatorChar.ToString();
// Prevent crossthread issues // Prevent crossthread issues
string titleid = titleidbox.Text; string titleid = titleidbox.Text;
@ -815,9 +815,9 @@ namespace NUS_Downloader
// Get placement directory early... // Get placement directory early...
string titledirectory; string titledirectory;
if (titleversion.Text == "") if (titleversion.Text == "")
titledirectory = currentdir + titleid + @"\"; titledirectory = currentdir + titleid + Path.DirectorySeparatorChar.ToString();
else else
titledirectory = currentdir + titleid + "v" + titleversion.Text + @"\"; titledirectory = currentdir + titleid + "v" + titleversion.Text + Path.DirectorySeparatorChar.ToString();
downloadstartbtn.Text = "Prerequisites: (0/2)"; downloadstartbtn.Text = "Prerequisites: (0/2)";
@ -880,7 +880,7 @@ namespace NUS_Downloader
dlprogress.Value = 100; dlprogress.Value = 100;
// Create ticket file holder // Create ticket file holder
byte[] cetkbuf = FileLocationToByteArray(titledirectory + @"\cetk"); byte[] cetkbuf = FileLocationToByteArray(titledirectory + Path.DirectorySeparatorChar.ToString() + @"cetk");
// Obtain TitleKey // Obtain TitleKey
byte[] titlekey = new byte[16]; byte[] titlekey = new byte[16];
@ -909,15 +909,15 @@ namespace NUS_Downloader
if (cetkbuf[0x01F1] == 0x01) if (cetkbuf[0x01F1] == 0x01)
{ {
WriteStatus("Key Type: Korean"); WriteStatus("Key Type: Korean");
keyBytes = LoadCommonKey(@"\kkey.bin"); keyBytes = LoadCommonKey(Path.DirectorySeparatorChar.ToString() + @"kkey.bin");
} }
else else
{ {
WriteStatus("Key Type: Standard"); WriteStatus("Key Type: Standard");
if (wiimode) if (wiimode)
keyBytes = LoadCommonKey(@"\key.bin"); keyBytes = LoadCommonKey(Path.DirectorySeparatorChar.ToString() + @"key.bin");
else else
keyBytes = LoadCommonKey(@"\dsikey.bin"); keyBytes = LoadCommonKey(Path.DirectorySeparatorChar.ToString() + @"dsikey.bin");
} }
initCrypt(iv, keyBytes); initCrypt(iv, keyBytes);
@ -954,10 +954,10 @@ namespace NUS_Downloader
WriteStatus("Requires: IOS" + sysversion); WriteStatus("Requires: IOS" + sysversion);
// Renaming would be ideal, but gives too many errors... // Renaming would be ideal, but gives too many errors...
/*if ((currentdir + titleid + "v" + titleversion.Text + @"\") != titledirectory) /*if ((currentdir + titleid + "v" + titleversion.Text + Path.DirectorySeparatorChar.ToString()) != titledirectory)
{ {
Directory.Move(titledirectory, currentdir + titleid + "v" + titleversion.Text + @"\"); Directory.Move(titledirectory, currentdir + titleid + "v" + titleversion.Text + Path.DirectorySeparatorChar.ToString());
titledirectory = currentdir + titleid + "v" + titleversion.Text + @"\"; titledirectory = currentdir + titleid + "v" + titleversion.Text + Path.DirectorySeparatorChar.ToString();
DirectoryInfo di = new DirectoryInfo(titledirectory); DirectoryInfo di = new DirectoryInfo(titledirectory);
} */ } */
@ -1012,14 +1012,14 @@ namespace NUS_Downloader
} }
// Progress reporting advances... // Progress reporting advances...
downloadstartbtn.Text = "Content: (" + (i + 1) + @"/" + contentstrnum + ")"; downloadstartbtn.Text = "Content: (" + (i + 1) + Path.AltDirectorySeparatorChar.ToString() + contentstrnum + ")";
currentcontentlocation += int.Parse(tmdsizes[i], System.Globalization.NumberStyles.HexNumber); currentcontentlocation += int.Parse(tmdsizes[i], System.Globalization.NumberStyles.HexNumber);
// Decrypt stuff... // Decrypt stuff...
if (decryptbox.Checked == true) if (decryptbox.Checked == true)
{ {
// Create content file holder // Create content file holder
byte[] contbuf = FileLocationToByteArray(titledirectory + @"\" + tmdcontents[i]); byte[] contbuf = FileLocationToByteArray(titledirectory + Path.DirectorySeparatorChar.ToString() + tmdcontents[i]);
// IV (00+IDX+more000) // IV (00+IDX+more000)
byte[] iv = new byte[16]; byte[] iv = new byte[16];
@ -1033,12 +1033,12 @@ namespace NUS_Downloader
/* Create decrypted file /* Create decrypted file
string zeros = "000000"; string zeros = "000000";
FileStream decfs = new FileStream(titledirectory + @"\" + zeros + i.ToString("X2") + ".app", FileMode.Create); FileStream decfs = new FileStream(titledirectory + Path.DirectorySeparatorChar.ToString() + zeros + i.ToString("X2") + ".app", FileMode.Create);
decfs.Write(Decrypt(contbuf), 0, int.Parse(tmdsizes[i], System.Globalization.NumberStyles.HexNumber)); decfs.Write(Decrypt(contbuf), 0, int.Parse(tmdsizes[i], System.Globalization.NumberStyles.HexNumber));
decfs.Close(); decfs.Close();
WriteStatus(" - Decrypted: " + zeros + i.ToString("X2") + ".app"); */ WriteStatus(" - Decrypted: " + zeros + i.ToString("X2") + ".app"); */
FileStream decfs = new FileStream(titledirectory + @"\" + tmdcontents[i] + ".app", FileMode.Create); FileStream decfs = new FileStream(titledirectory + Path.DirectorySeparatorChar.ToString() + tmdcontents[i] + ".app", FileMode.Create);
decfs.Write(Decrypt(contbuf), 0, int.Parse(tmdsizes[i], System.Globalization.NumberStyles.HexNumber)); decfs.Write(Decrypt(contbuf), 0, int.Parse(tmdsizes[i], System.Globalization.NumberStyles.HexNumber));
decfs.Close(); decfs.Close();
WriteStatus(" - Decrypted: " + tmdcontents[i] + ".app"); WriteStatus(" - Decrypted: " + tmdcontents[i] + ".app");
@ -1204,15 +1204,15 @@ namespace NUS_Downloader
{ {
// Creates the directory for the downloaded title... // Creates the directory for the downloaded title...
string currentdir = Application.StartupPath; string currentdir = Application.StartupPath;
if (currentdir.EndsWith(Convert.ToString(Path.DirectorySeparatorChar)) == false) if (currentdir.EndsWith(Convert.ToString(Path.DirectorySeparatorChar.ToString())) == false)
currentdir += Path.DirectorySeparatorChar; currentdir += Path.DirectorySeparatorChar.ToString();
// Get placement directory early... // Get placement directory early...
string titledirectory; string titledirectory;
if (titleversion.Text == "") if (titleversion.Text == "")
titledirectory = Path.Combine(currentdir, titleidbox.Text + Path.DirectorySeparatorChar); titledirectory = Path.Combine(currentdir, titleidbox.Text + Path.DirectorySeparatorChar.ToString());
else else
titledirectory = Path.Combine(currentdir, titleidbox.Text + "v" + titleversion.Text + Path.DirectorySeparatorChar); titledirectory = Path.Combine(currentdir, titleidbox.Text + "v" + titleversion.Text + Path.DirectorySeparatorChar.ToString());
// Keep local directory if present and checked out... // Keep local directory if present and checked out...
if ((localuse.Checked) && (Directory.Exists(titledirectory))) if ((localuse.Checked) && (Directory.Exists(titledirectory)))
@ -1234,15 +1234,15 @@ namespace NUS_Downloader
private void DeleteTitleDirectory() private void DeleteTitleDirectory()
{ {
string currentdir = Application.StartupPath; string currentdir = Application.StartupPath;
if (currentdir.EndsWith(Convert.ToString(Path.DirectorySeparatorChar)) == false) if (currentdir.EndsWith(Convert.ToString(Path.DirectorySeparatorChar.ToString())) == false)
currentdir += Path.DirectorySeparatorChar; currentdir += Path.DirectorySeparatorChar.ToString();
// Get placement directory early... // Get placement directory early...
string titledirectory; string titledirectory;
if (titleversion.Text == "") if (titleversion.Text == "")
titledirectory = Path.Combine(currentdir, titleidbox.Text + Path.DirectorySeparatorChar); titledirectory = Path.Combine(currentdir, titleidbox.Text + Path.DirectorySeparatorChar.ToString());
else else
titledirectory = Path.Combine(currentdir, titleidbox.Text + "v" + titleversion.Text + Path.DirectorySeparatorChar); titledirectory = Path.Combine(currentdir, titleidbox.Text + "v" + titleversion.Text + Path.DirectorySeparatorChar.ToString());
if (Directory.Exists(titledirectory)) if (Directory.Exists(titledirectory))
Directory.Delete(titledirectory, true); Directory.Delete(titledirectory, true);
@ -1263,9 +1263,9 @@ namespace NUS_Downloader
// Create NUS URL... // Create NUS URL...
string nusfileurl; string nusfileurl;
if (iswiititle) if (iswiititle)
nusfileurl = NUSURL + titleid + @"/" + filename; nusfileurl = NUSURL + titleid + Path.AltDirectorySeparatorChar.ToString() + filename;
else else
nusfileurl = DSiNUSURL + titleid + @"/" + filename; nusfileurl = DSiNUSURL + titleid + Path.AltDirectorySeparatorChar.ToString() + filename;
WriteStatus("Grabbing " + filename + "..."); WriteStatus("Grabbing " + filename + "...");
@ -1294,8 +1294,8 @@ namespace NUS_Downloader
// Obtain Current Directory // Obtain Current Directory
string currentdir = Application.StartupPath; string currentdir = Application.StartupPath;
if (!(currentdir.EndsWith(@"\")) || !(currentdir.EndsWith(@"/"))) if (!(currentdir.EndsWith(Path.DirectorySeparatorChar.ToString())) || !(currentdir.EndsWith(Path.AltDirectorySeparatorChar.ToString())))
currentdir += @"\"; currentdir += Path.DirectorySeparatorChar.ToString();
// Create instance of WAD Packing class // Create instance of WAD Packing class
WADPacker packer = new WADPacker(); WADPacker packer = new WADPacker();
@ -1322,8 +1322,8 @@ namespace NUS_Downloader
packer.Certs = certsbuf; packer.Certs = certsbuf;
// Read TMD/TIK into Packer. // Read TMD/TIK into Packer.
packer.Ticket = FileLocationToByteArray(totaldirectory + @"\cetk"); packer.Ticket = FileLocationToByteArray(totaldirectory + Path.DirectorySeparatorChar.ToString() + @"cetk");
packer.TMD = FileLocationToByteArray(totaldirectory + @"\" + tmdfilename); packer.TMD = FileLocationToByteArray(totaldirectory + Path.DirectorySeparatorChar.ToString() + tmdfilename);
// Get the TMD variables in here instead... // Get the TMD variables in here instead...
int contentcount = ContentCount(packer.TMD); int contentcount = ContentCount(packer.TMD);
@ -1342,7 +1342,7 @@ namespace NUS_Downloader
} }
else else
{ {
string wad_filename = totaldirectory + @"\" + RemoveIllegalCharacters(wadnamebox.Text); string wad_filename = totaldirectory + Path.DirectorySeparatorChar.ToString() + RemoveIllegalCharacters(wadnamebox.Text);
packer.Directory = totaldirectory; packer.Directory = totaldirectory;
packer.FileName = System.IO.Path.GetFileName(wad_filename); packer.FileName = System.IO.Path.GetFileName(wad_filename);
} }
@ -1362,10 +1362,10 @@ namespace NUS_Downloader
if (deletecontentsbox.Checked) if (deletecontentsbox.Checked)
{ {
WriteStatus("Deleting contents..."); WriteStatus("Deleting contents...");
File.Delete(totaldirectory + @"\" + tmdfilename); File.Delete(totaldirectory + Path.DirectorySeparatorChar.ToString() + tmdfilename);
File.Delete(totaldirectory + @"\cetk"); File.Delete(totaldirectory + Path.DirectorySeparatorChar.ToString() + @"cetk");
for (int a = 0; a < contentnames.Length; a++) for (int a = 0; a < contentnames.Length; a++)
File.Delete(totaldirectory + @"\" + contentnames[a]); File.Delete(totaldirectory + Path.DirectorySeparatorChar.ToString() + contentnames[a]);
WriteStatus(" - Contents have been deleted."); WriteStatus(" - Contents have been deleted.");
string[] leftovers = Directory.GetFiles(totaldirectory); string[] leftovers = Directory.GetFiles(totaldirectory);
if (leftovers.Length <= 0) if (leftovers.Length <= 0)
@ -1462,8 +1462,8 @@ namespace NUS_Downloader
WriteStatus("This application created by WB3000"); WriteStatus("This application created by WB3000");
WriteStatus(""); WriteStatus("");
string currentdir = Application.StartupPath; string currentdir = Application.StartupPath;
if (currentdir.EndsWith(Convert.ToString(Path.DirectorySeparatorChar)) == false) if (currentdir.EndsWith(Convert.ToString(Path.DirectorySeparatorChar.ToString())) == false)
currentdir += Path.DirectorySeparatorChar; currentdir += Path.DirectorySeparatorChar.ToString();
if (File.Exists(currentdir + "key.bin") == false) if (File.Exists(currentdir + "key.bin") == false)
WriteStatus("Wii Decryption: Need (key.bin)"); WriteStatus("Wii Decryption: Need (key.bin)");
else else
@ -1632,8 +1632,8 @@ namespace NUS_Downloader
{ {
// Directory stuff // Directory stuff
string currentdir = Application.StartupPath; string currentdir = Application.StartupPath;
if (!(currentdir.EndsWith(@"\")) || !(currentdir.EndsWith(@"/"))) if (!(currentdir.EndsWith(Path.DirectorySeparatorChar.ToString())) || !(currentdir.EndsWith(Path.AltDirectorySeparatorChar.ToString())))
currentdir += @"\"; currentdir += Path.DirectorySeparatorChar.ToString();
if (File.Exists(currentdir + keyfile) == true) if (File.Exists(currentdir + keyfile) == true)
{ {
@ -2191,7 +2191,7 @@ namespace NUS_Downloader
string[] fileinfo = shamelessvariablelabel.Text.Split(','); string[] fileinfo = shamelessvariablelabel.Text.Split(',');
// Create ticket file holder // Create ticket file holder
byte[] cetkbuff = FileLocationToByteArray(fileinfo[0] + @"\cetk"); byte[] cetkbuff = FileLocationToByteArray(fileinfo[0] + Path.DirectorySeparatorChar.ToString() + @"cetk");
// Titlekey // Titlekey
byte[] titlekey = new byte[16]; byte[] titlekey = new byte[16];
@ -2294,7 +2294,7 @@ namespace NUS_Downloader
string[] fileinfo = shamelessvariablelabel.Text.Split(','); string[] fileinfo = shamelessvariablelabel.Text.Split(',');
// Create ticket file holder // Create ticket file holder
byte[] cetkbuff = FileLocationToByteArray(fileinfo[0] + @"\cetk"); byte[] cetkbuff = FileLocationToByteArray(fileinfo[0] + Path.DirectorySeparatorChar.ToString() + @"cetk");
// Resize Ticket to actual size. // Resize Ticket to actual size.
Array.Resize(ref cetkbuff, 0x2A4); Array.Resize(ref cetkbuff, 0x2A4);
@ -2798,7 +2798,7 @@ namespace NUS_Downloader
etitlekey[a] = ticket[0x1BF + a]; etitlekey[a] = ticket[0x1BF + a];
} }
// TODO: Add more key support // TODO: Add more key support
byte[] commonkey = LoadCommonKey(@"\key.bin"); byte[] commonkey = LoadCommonKey(Path.DirectorySeparatorChar.ToString() + @"key.bin");
// IV (TITLEID00000000) // IV (TITLEID00000000)
byte[] iv = new byte[16]; byte[] iv = new byte[16];
@ -3213,7 +3213,7 @@ namespace NUS_Downloader
} }
// TODO: Add more key support // TODO: Add more key support
byte[] commonkey = LoadCommonKey(@"\key.bin"); byte[] commonkey = LoadCommonKey(Path.DirectorySeparatorChar.ToString() + @"key.bin");
// IV (TITLEID00000000) // IV (TITLEID00000000)
byte[] iv = new byte[16]; byte[] iv = new byte[16];
@ -3419,7 +3419,7 @@ namespace NUS_Downloader
databasedl.UseDefaultCredentials = true; databasedl.UseDefaultCredentials = true;
} }
string wiibrewsource = databasedl.DownloadString("http://www.wiibrew.org/wiki/NUS_Downloader/database"); string wiibrewsource = databasedl.DownloadString("http://www.wiibrew.org/wiki/NUS_Downloader/database?cachesmash=" + System.DateTime.Now.ToString());
statusbox.Refresh(); statusbox.Refresh();
// Strip out HTML // Strip out HTML
@ -3631,8 +3631,8 @@ namespace NUS_Downloader
// Current directory... // Current directory...
string currentdir = Application.StartupPath; string currentdir = Application.StartupPath;
if (!(currentdir.EndsWith(@"\")) || !(currentdir.EndsWith(@"/"))) if (!(currentdir.EndsWith(Path.DirectorySeparatorChar.ToString())) || !(currentdir.EndsWith(Path.AltDirectorySeparatorChar.ToString())))
currentdir += @"\"; currentdir += Path.DirectorySeparatorChar.ToString();
if (!(Directory.Exists(currentdir + "scripts"))) if (!(Directory.Exists(currentdir + "scripts")))
{ {
@ -3822,8 +3822,8 @@ namespace NUS_Downloader
{ {
// Current directory... // Current directory...
string currentdir = Application.StartupPath; string currentdir = Application.StartupPath;
if (!(currentdir.EndsWith(@"\")) || !(currentdir.EndsWith(@"/"))) if (!(currentdir.EndsWith(Path.DirectorySeparatorChar.ToString())) || !(currentdir.EndsWith(Path.AltDirectorySeparatorChar.ToString())))
currentdir += @"\"; currentdir += Path.DirectorySeparatorChar.ToString();
if ((String.IsNullOrEmpty(ProxyURL.Text)) && (String.IsNullOrEmpty(ProxyUser.Text)) && ((File.Exists(currentdir + "proxy.txt")))) if ((String.IsNullOrEmpty(ProxyURL.Text)) && (String.IsNullOrEmpty(ProxyUser.Text)) && ((File.Exists(currentdir + "proxy.txt"))))
{ {
@ -3872,8 +3872,8 @@ namespace NUS_Downloader
{ {
// Current directory... // Current directory...
string currentdir = Application.StartupPath; string currentdir = Application.StartupPath;
if (!(currentdir.EndsWith(@"\")) || !(currentdir.EndsWith(@"/"))) if (!(currentdir.EndsWith(Path.DirectorySeparatorChar.ToString())) || !(currentdir.EndsWith(Path.AltDirectorySeparatorChar.ToString())))
currentdir += @"\"; currentdir += Path.DirectorySeparatorChar.ToString();
// Check for Proxy Settings file... // Check for Proxy Settings file...
if (File.Exists(currentdir + "proxy.txt") == true) if (File.Exists(currentdir + "proxy.txt") == true)
@ -3919,8 +3919,8 @@ namespace NUS_Downloader
{ {
// Current directory... // Current directory...
string currentdir = Application.StartupPath; string currentdir = Application.StartupPath;
if (!(currentdir.EndsWith(@"\")) || !(currentdir.EndsWith(@"/"))) if (!(currentdir.EndsWith(Path.DirectorySeparatorChar.ToString())) || !(currentdir.EndsWith(Path.AltDirectorySeparatorChar.ToString())))
currentdir += @"\"; currentdir += Path.DirectorySeparatorChar.ToString();
// Open a NUS script. // Open a NUS script.
OpenFileDialog ofd = new OpenFileDialog(); OpenFileDialog ofd = new OpenFileDialog();
@ -3977,5 +3977,7 @@ namespace NUS_Downloader
script_mode = false; script_mode = false;
WriteStatus("Script completed!"); WriteStatus("Script completed!");
} }
} }
} }

View File

@ -3,7 +3,7 @@
<PropertyGroup> <PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProductVersion>9.0.21022</ProductVersion> <ProductVersion>9.0.30729</ProductVersion>
<SchemaVersion>2.0</SchemaVersion> <SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{DB1289FA-BA83-408F-A576-326E5EC4CC6D}</ProjectGuid> <ProjectGuid>{DB1289FA-BA83-408F-A576-326E5EC4CC6D}</ProjectGuid>
<OutputType>WinExe</OutputType> <OutputType>WinExe</OutputType>
@ -17,7 +17,7 @@
<ManifestCertificateThumbprint>5828AACDBD1A48E3768B7E0465E90D0E96E2BE4C</ManifestCertificateThumbprint> <ManifestCertificateThumbprint>5828AACDBD1A48E3768B7E0465E90D0E96E2BE4C</ManifestCertificateThumbprint>
<ManifestKeyFile>NUS Downloader_TemporaryKey.pfx</ManifestKeyFile> <ManifestKeyFile>NUS Downloader_TemporaryKey.pfx</ManifestKeyFile>
<GenerateManifests>true</GenerateManifests> <GenerateManifests>true</GenerateManifests>
<SignManifests>true</SignManifests> <SignManifests>false</SignManifests>
<TargetZone>LocalIntranet</TargetZone> <TargetZone>LocalIntranet</TargetZone>
<ApplicationManifest>Properties\app.manifest</ApplicationManifest> <ApplicationManifest>Properties\app.manifest</ApplicationManifest>
<PublishUrl>publish\</PublishUrl> <PublishUrl>publish\</PublishUrl>