Initial Trucha GUI (eh)

This commit is contained in:
givememystuffplease 2009-06-19 01:57:52 +00:00
parent 6f157a9b3e
commit 3a26a226b1
3 changed files with 564 additions and 67 deletions

View File

@ -32,7 +32,7 @@
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Form1));
this.TMDButton = new System.Windows.Forms.Button();
this.titleidbox = new System.Windows.Forms.TextBox();
this.button3 = new System.Windows.Forms.Button();
this.downloadstartbtn = new System.Windows.Forms.Button();
this.statusbox = new System.Windows.Forms.TextBox();
this.packbox = new System.Windows.Forms.CheckBox();
this.dlprogress = new System.Windows.Forms.ProgressBar();
@ -68,7 +68,36 @@
this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
this.RegionCodesList = new System.Windows.Forms.ToolStripMenuItem();
this.truchabox = new System.Windows.Forms.CheckBox();
this.tmdgpbox = new System.Windows.Forms.GroupBox();
this.tmdversiontrucha = new System.Windows.Forms.TextBox();
this.label5 = new System.Windows.Forms.Label();
this.newtitleidbox = new System.Windows.Forms.TextBox();
this.label4 = new System.Windows.Forms.Label();
this.requiredIOSbox = new System.Windows.Forms.TextBox();
this.label3 = new System.Windows.Forms.Label();
this.ticketgpbox = new System.Windows.Forms.GroupBox();
this.timelimitsecs = new System.Windows.Forms.TextBox();
this.label11 = new System.Windows.Forms.Label();
this.timelimitenabledcb = new System.Windows.Forms.ComboBox();
this.label10 = new System.Windows.Forms.Label();
this.ckeyindexcb = new System.Windows.Forms.ComboBox();
this.label9 = new System.Windows.Forms.Label();
this.dlcamntbox = new System.Windows.Forms.TextBox();
this.label8 = new System.Windows.Forms.Label();
this.titleIDIV = new System.Windows.Forms.TextBox();
this.label7 = new System.Windows.Forms.Label();
this.titlekeybox = new System.Windows.Forms.TextBox();
this.label6 = new System.Windows.Forms.Label();
this.button1 = new System.Windows.Forms.Button();
this.button4 = new System.Windows.Forms.Button();
this.button5 = new System.Windows.Forms.Button();
this.button6 = new System.Windows.Forms.Button();
this.button7 = new System.Windows.Forms.Button();
this.label12 = new System.Windows.Forms.Label();
this.shamelessvariablelabel = new System.Windows.Forms.Label();
this.databaseStrip.SuspendLayout();
this.tmdgpbox.SuspendLayout();
this.ticketgpbox.SuspendLayout();
this.SuspendLayout();
//
// TMDButton
@ -84,8 +113,6 @@
//
// titleidbox
//
this.titleidbox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.titleidbox.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.titleidbox.Location = new System.Drawing.Point(12, 38);
this.titleidbox.MaxLength = 16;
@ -95,24 +122,19 @@
this.titleidbox.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
this.titleidbox.TextChanged += new System.EventHandler(this.titleidbox_TextChanged);
//
// button3
// downloadstartbtn
//
this.button3.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.button3.FlatStyle = System.Windows.Forms.FlatStyle.Popup;
this.button3.Location = new System.Drawing.Point(12, 64);
this.button3.Name = "button3";
this.button3.Size = new System.Drawing.Size(250, 25);
this.button3.TabIndex = 4;
this.button3.Text = "Start NUS Download!";
this.button3.UseVisualStyleBackColor = true;
this.button3.Click += new System.EventHandler(this.button3_Click);
this.downloadstartbtn.FlatStyle = System.Windows.Forms.FlatStyle.Popup;
this.downloadstartbtn.Location = new System.Drawing.Point(12, 64);
this.downloadstartbtn.Name = "downloadstartbtn";
this.downloadstartbtn.Size = new System.Drawing.Size(250, 25);
this.downloadstartbtn.TabIndex = 4;
this.downloadstartbtn.Text = "Start NUS Download!";
this.downloadstartbtn.UseVisualStyleBackColor = true;
this.downloadstartbtn.Click += new System.EventHandler(this.button3_Click);
//
// statusbox
//
this.statusbox.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.statusbox.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.statusbox.Font = new System.Drawing.Font("Microsoft Sans Serif", 6.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.statusbox.Location = new System.Drawing.Point(12, 116);
@ -123,7 +145,6 @@
//
// packbox
//
this.packbox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.packbox.AutoSize = true;
this.packbox.Location = new System.Drawing.Point(12, 422);
this.packbox.Name = "packbox";
@ -135,8 +156,6 @@
//
// dlprogress
//
this.dlprogress.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.dlprogress.Location = new System.Drawing.Point(12, 95);
this.dlprogress.Name = "dlprogress";
this.dlprogress.Size = new System.Drawing.Size(250, 15);
@ -145,7 +164,6 @@
//
// localuse
//
this.localuse.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.localuse.AutoSize = true;
this.localuse.Checked = true;
this.localuse.CheckState = System.Windows.Forms.CheckState.Checked;
@ -163,7 +181,6 @@
//
// titleversion
//
this.titleversion.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.titleversion.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.titleversion.Location = new System.Drawing.Point(204, 38);
this.titleversion.MaxLength = 8;
@ -175,7 +192,6 @@
//
// label1
//
this.label1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.label1.AutoSize = true;
this.label1.BackColor = System.Drawing.Color.Transparent;
this.label1.Location = new System.Drawing.Point(194, 45);
@ -195,7 +211,6 @@
//
// radioButton2
//
this.radioButton2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.radioButton2.Image = global::NUS_Downloader.Properties.Resources.dsi;
this.radioButton2.ImageAlign = System.Drawing.ContentAlignment.TopCenter;
this.radioButton2.Location = new System.Drawing.Point(78, 385);
@ -207,7 +222,6 @@
//
// radioButton1
//
this.radioButton1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.radioButton1.BackColor = System.Drawing.Color.Transparent;
this.radioButton1.Checked = true;
this.radioButton1.Image = global::NUS_Downloader.Properties.Resources.wilolgoi;
@ -221,7 +235,6 @@
//
// button2
//
this.button2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.button2.FlatStyle = System.Windows.Forms.FlatStyle.Popup;
this.button2.Location = new System.Drawing.Point(184, 390);
this.button2.Name = "button2";
@ -233,9 +246,6 @@
//
// getcerts
//
this.getcerts.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.getcerts.BackColor = System.Drawing.Color.Bisque;
this.getcerts.FlatStyle = System.Windows.Forms.FlatStyle.Popup;
this.getcerts.Location = new System.Drawing.Point(48, 246);
@ -248,7 +258,6 @@
//
// wadnamebox
//
this.wadnamebox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.wadnamebox.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.wadnamebox.Enabled = false;
this.wadnamebox.Font = new System.Drawing.Font("Microsoft Sans Serif", 6.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
@ -260,7 +269,6 @@
//
// ignoreticket
//
this.ignoreticket.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.ignoreticket.AutoSize = true;
this.ignoreticket.Location = new System.Drawing.Point(12, 445);
this.ignoreticket.Name = "ignoreticket";
@ -271,7 +279,6 @@
//
// decryptbox
//
this.decryptbox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.decryptbox.AutoSize = true;
this.decryptbox.Location = new System.Drawing.Point(154, 445);
this.decryptbox.Name = "decryptbox";
@ -282,8 +289,6 @@
//
// databaseButton
//
this.databaseButton.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.databaseButton.FlatStyle = System.Windows.Forms.FlatStyle.Popup;
this.databaseButton.Location = new System.Drawing.Point(184, 12);
this.databaseButton.Name = "databaseButton";
@ -422,7 +427,6 @@
//
// truchabox
//
this.truchabox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.truchabox.AutoSize = true;
this.truchabox.Location = new System.Drawing.Point(184, 468);
this.truchabox.Name = "truchabox";
@ -431,11 +435,306 @@
this.truchabox.Text = "Trucha";
this.truchabox.UseVisualStyleBackColor = true;
//
// tmdgpbox
//
this.tmdgpbox.Controls.Add(this.tmdversiontrucha);
this.tmdgpbox.Controls.Add(this.label5);
this.tmdgpbox.Controls.Add(this.newtitleidbox);
this.tmdgpbox.Controls.Add(this.label4);
this.tmdgpbox.Controls.Add(this.requiredIOSbox);
this.tmdgpbox.Controls.Add(this.label3);
this.tmdgpbox.Location = new System.Drawing.Point(278, 12);
this.tmdgpbox.Name = "tmdgpbox";
this.tmdgpbox.Size = new System.Drawing.Size(249, 77);
this.tmdgpbox.TabIndex = 22;
this.tmdgpbox.TabStop = false;
this.tmdgpbox.Text = "Fake (Trucha) TMD Signing...";
//
// tmdversiontrucha
//
this.tmdversiontrucha.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.tmdversiontrucha.Location = new System.Drawing.Point(181, 24);
this.tmdversiontrucha.MaxLength = 6;
this.tmdversiontrucha.Name = "tmdversiontrucha";
this.tmdversiontrucha.Size = new System.Drawing.Size(62, 20);
this.tmdversiontrucha.TabIndex = 5;
this.tmdversiontrucha.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
//
// label5
//
this.label5.AutoSize = true;
this.label5.Location = new System.Drawing.Point(130, 28);
this.label5.Name = "label5";
this.label5.Size = new System.Drawing.Size(45, 13);
this.label5.TabIndex = 4;
this.label5.Text = "Version:";
//
// newtitleidbox
//
this.newtitleidbox.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.newtitleidbox.Location = new System.Drawing.Point(80, 50);
this.newtitleidbox.MaxLength = 16;
this.newtitleidbox.Name = "newtitleidbox";
this.newtitleidbox.Size = new System.Drawing.Size(163, 20);
this.newtitleidbox.TabIndex = 3;
this.newtitleidbox.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
//
// label4
//
this.label4.AutoSize = true;
this.label4.Location = new System.Drawing.Point(6, 54);
this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(69, 13);
this.label4.TabIndex = 2;
this.label4.Text = "New Title ID:";
//
// requiredIOSbox
//
this.requiredIOSbox.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.requiredIOSbox.Location = new System.Drawing.Point(80, 24);
this.requiredIOSbox.MaxLength = 3;
this.requiredIOSbox.Name = "requiredIOSbox";
this.requiredIOSbox.Size = new System.Drawing.Size(44, 20);
this.requiredIOSbox.TabIndex = 1;
this.requiredIOSbox.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
//
// label3
//
this.label3.AutoSize = true;
this.label3.Location = new System.Drawing.Point(6, 28);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(73, 13);
this.label3.TabIndex = 0;
this.label3.Text = "Requires IOS:";
//
// ticketgpbox
//
this.ticketgpbox.Controls.Add(this.timelimitsecs);
this.ticketgpbox.Controls.Add(this.label11);
this.ticketgpbox.Controls.Add(this.timelimitenabledcb);
this.ticketgpbox.Controls.Add(this.label10);
this.ticketgpbox.Controls.Add(this.ckeyindexcb);
this.ticketgpbox.Controls.Add(this.label9);
this.ticketgpbox.Controls.Add(this.dlcamntbox);
this.ticketgpbox.Controls.Add(this.label8);
this.ticketgpbox.Controls.Add(this.titleIDIV);
this.ticketgpbox.Controls.Add(this.label7);
this.ticketgpbox.Controls.Add(this.titlekeybox);
this.ticketgpbox.Controls.Add(this.label6);
this.ticketgpbox.Location = new System.Drawing.Point(278, 127);
this.ticketgpbox.Name = "ticketgpbox";
this.ticketgpbox.Size = new System.Drawing.Size(249, 125);
this.ticketgpbox.TabIndex = 23;
this.ticketgpbox.TabStop = false;
this.ticketgpbox.Text = "Fake (Trucha) Ticket Signing...";
//
// timelimitsecs
//
this.timelimitsecs.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.timelimitsecs.Location = new System.Drawing.Point(95, 99);
this.timelimitsecs.MaxLength = 200;
this.timelimitsecs.Name = "timelimitsecs";
this.timelimitsecs.Size = new System.Drawing.Size(62, 20);
this.timelimitsecs.TabIndex = 15;
this.timelimitsecs.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
//
// label11
//
this.label11.AutoSize = true;
this.label11.Location = new System.Drawing.Point(7, 101);
this.label11.Name = "label11";
this.label11.Size = new System.Drawing.Size(84, 13);
this.label11.TabIndex = 14;
this.label11.Text = "Time (Seconds):";
//
// timelimitenabledcb
//
this.timelimitenabledcb.FormattingEnabled = true;
this.timelimitenabledcb.Items.AddRange(new object[] {
"0 - Disabled",
"1 - Enabled"});
this.timelimitenabledcb.Location = new System.Drawing.Point(95, 72);
this.timelimitenabledcb.Name = "timelimitenabledcb";
this.timelimitenabledcb.Size = new System.Drawing.Size(149, 21);
this.timelimitenabledcb.TabIndex = 13;
//
// label10
//
this.label10.AutoSize = true;
this.label10.Location = new System.Drawing.Point(7, 75);
this.label10.Name = "label10";
this.label10.Size = new System.Drawing.Size(57, 13);
this.label10.TabIndex = 12;
this.label10.Text = "Time Limit:";
//
// ckeyindexcb
//
this.ckeyindexcb.FormattingEnabled = true;
this.ckeyindexcb.Items.AddRange(new object[] {
"0 - Standard Key",
"1 - Korean Key"});
this.ckeyindexcb.Location = new System.Drawing.Point(95, 45);
this.ckeyindexcb.Name = "ckeyindexcb";
this.ckeyindexcb.Size = new System.Drawing.Size(149, 21);
this.ckeyindexcb.TabIndex = 11;
//
// label9
//
this.label9.AutoSize = true;
this.label9.Location = new System.Drawing.Point(7, 48);
this.label9.Name = "label9";
this.label9.Size = new System.Drawing.Size(72, 13);
this.label9.TabIndex = 10;
this.label9.Text = "Common Key:";
//
// dlcamntbox
//
this.dlcamntbox.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.dlcamntbox.Location = new System.Drawing.Point(95, 19);
this.dlcamntbox.MaxLength = 6;
this.dlcamntbox.Name = "dlcamntbox";
this.dlcamntbox.Size = new System.Drawing.Size(62, 20);
this.dlcamntbox.TabIndex = 9;
this.dlcamntbox.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
//
// label8
//
this.label8.AutoSize = true;
this.label8.Location = new System.Drawing.Point(7, 21);
this.label8.Name = "label8";
this.label8.Size = new System.Drawing.Size(82, 13);
this.label8.TabIndex = 8;
this.label8.Text = "Amount of DLC:";
//
// titleIDIV
//
this.titleIDIV.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.titleIDIV.Location = new System.Drawing.Point(64, 145);
this.titleIDIV.MaxLength = 16;
this.titleIDIV.Name = "titleIDIV";
this.titleIDIV.Size = new System.Drawing.Size(149, 20);
this.titleIDIV.TabIndex = 7;
this.titleIDIV.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
this.titleIDIV.Visible = false;
//
// label7
//
this.label7.AutoSize = true;
this.label7.Location = new System.Drawing.Point(7, 152);
this.label7.Name = "label7";
this.label7.Size = new System.Drawing.Size(65, 13);
this.label7.TabIndex = 6;
this.label7.Text = "Title ID / IV:";
this.label7.Visible = false;
//
// titlekeybox
//
this.titlekeybox.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.titlekeybox.Location = new System.Drawing.Point(64, 125);
this.titlekeybox.MaxLength = 16;
this.titlekeybox.Name = "titlekeybox";
this.titlekeybox.Size = new System.Drawing.Size(149, 20);
this.titlekeybox.TabIndex = 5;
this.titlekeybox.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
this.titlekeybox.Visible = false;
//
// label6
//
this.label6.AutoSize = true;
this.label6.Location = new System.Drawing.Point(7, 127);
this.label6.Name = "label6";
this.label6.Size = new System.Drawing.Size(51, 13);
this.label6.TabIndex = 4;
this.label6.Text = "Title Key:";
this.label6.Visible = false;
//
// button1
//
this.button1.FlatStyle = System.Windows.Forms.FlatStyle.Popup;
this.button1.Location = new System.Drawing.Point(350, 95);
this.button1.Name = "button1";
this.button1.Size = new System.Drawing.Size(177, 26);
this.button1.TabIndex = 24;
this.button1.Text = "Write Changes to TMD...";
this.button1.UseVisualStyleBackColor = true;
this.button1.Click += new System.EventHandler(this.button1_Click_1);
//
// button4
//
this.button4.FlatStyle = System.Windows.Forms.FlatStyle.Popup;
this.button4.Location = new System.Drawing.Point(350, 258);
this.button4.Name = "button4";
this.button4.Size = new System.Drawing.Size(177, 26);
this.button4.TabIndex = 25;
this.button4.Text = "Write Changes to Ticket...";
this.button4.UseVisualStyleBackColor = true;
//
// button5
//
this.button5.FlatStyle = System.Windows.Forms.FlatStyle.Popup;
this.button5.Location = new System.Drawing.Point(278, 258);
this.button5.Name = "button5";
this.button5.Size = new System.Drawing.Size(66, 26);
this.button5.TabIndex = 26;
this.button5.Text = "Revert";
this.button5.UseVisualStyleBackColor = true;
this.button5.Click += new System.EventHandler(this.button5_Click);
//
// button6
//
this.button6.FlatStyle = System.Windows.Forms.FlatStyle.Popup;
this.button6.Location = new System.Drawing.Point(278, 95);
this.button6.Name = "button6";
this.button6.Size = new System.Drawing.Size(66, 26);
this.button6.TabIndex = 27;
this.button6.Text = "Revert";
this.button6.UseVisualStyleBackColor = true;
this.button6.Click += new System.EventHandler(this.button6_Click);
//
// button7
//
this.button7.FlatStyle = System.Windows.Forms.FlatStyle.Popup;
this.button7.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.button7.Location = new System.Drawing.Point(278, 290);
this.button7.Name = "button7";
this.button7.Size = new System.Drawing.Size(249, 27);
this.button7.TabIndex = 28;
this.button7.Text = "Continue Operations...";
this.button7.UseVisualStyleBackColor = true;
//
// label12
//
this.label12.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.label12.Location = new System.Drawing.Point(278, 335);
this.label12.Name = "label12";
this.label12.Size = new System.Drawing.Size(249, 148);
this.label12.TabIndex = 29;
this.label12.Text = resources.GetString("label12.Text");
this.label12.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// shamelessvariablelabel
//
this.shamelessvariablelabel.AutoSize = true;
this.shamelessvariablelabel.Location = new System.Drawing.Point(285, 322);
this.shamelessvariablelabel.Name = "shamelessvariablelabel";
this.shamelessvariablelabel.Size = new System.Drawing.Size(0, 13);
this.shamelessvariablelabel.TabIndex = 30;
this.shamelessvariablelabel.Visible = false;
//
// Form1
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(274, 496);
this.ClientSize = new System.Drawing.Size(539, 492);
this.Controls.Add(this.shamelessvariablelabel);
this.Controls.Add(this.label12);
this.Controls.Add(this.button6);
this.Controls.Add(this.button1);
this.Controls.Add(this.button7);
this.Controls.Add(this.ticketgpbox);
this.Controls.Add(this.button5);
this.Controls.Add(this.button4);
this.Controls.Add(this.tmdgpbox);
this.Controls.Add(this.truchabox);
this.Controls.Add(this.databaseButton);
this.Controls.Add(this.decryptbox);
@ -452,15 +751,22 @@
this.Controls.Add(this.dlprogress);
this.Controls.Add(this.packbox);
this.Controls.Add(this.statusbox);
this.Controls.Add(this.button3);
this.Controls.Add(this.downloadstartbtn);
this.Controls.Add(this.titleidbox);
this.Controls.Add(this.TMDButton);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.MinimumSize = new System.Drawing.Size(290, 534);
this.MaximizeBox = false;
this.MaximumSize = new System.Drawing.Size(545, 520);
this.MinimumSize = new System.Drawing.Size(280, 520);
this.Name = "Form1";
this.Text = "NUSD";
this.Load += new System.EventHandler(this.Form1_Load);
this.databaseStrip.ResumeLayout(false);
this.tmdgpbox.ResumeLayout(false);
this.tmdgpbox.PerformLayout();
this.ticketgpbox.ResumeLayout(false);
this.ticketgpbox.PerformLayout();
this.ResumeLayout(false);
this.PerformLayout();
@ -470,7 +776,7 @@
private System.Windows.Forms.Button TMDButton;
private System.Windows.Forms.TextBox titleidbox;
private System.Windows.Forms.Button button3;
private System.Windows.Forms.Button downloadstartbtn;
private System.Windows.Forms.TextBox statusbox;
private System.Windows.Forms.CheckBox packbox;
private System.Windows.Forms.ProgressBar dlprogress;
@ -506,6 +812,33 @@
private System.Windows.Forms.ToolStripSeparator toolStripSeparator1;
private System.Windows.Forms.ToolStripMenuItem RegionCodesList;
private System.Windows.Forms.CheckBox truchabox;
private System.Windows.Forms.GroupBox tmdgpbox;
private System.Windows.Forms.GroupBox ticketgpbox;
private System.Windows.Forms.Button button1;
private System.Windows.Forms.Button button4;
private System.Windows.Forms.Button button5;
private System.Windows.Forms.Button button6;
private System.Windows.Forms.Label label3;
private System.Windows.Forms.TextBox newtitleidbox;
private System.Windows.Forms.Label label4;
private System.Windows.Forms.TextBox requiredIOSbox;
private System.Windows.Forms.TextBox tmdversiontrucha;
private System.Windows.Forms.Label label5;
private System.Windows.Forms.TextBox dlcamntbox;
private System.Windows.Forms.Label label8;
private System.Windows.Forms.TextBox titleIDIV;
private System.Windows.Forms.Label label7;
private System.Windows.Forms.TextBox titlekeybox;
private System.Windows.Forms.Label label6;
private System.Windows.Forms.Label label9;
private System.Windows.Forms.ComboBox timelimitenabledcb;
private System.Windows.Forms.Label label10;
private System.Windows.Forms.ComboBox ckeyindexcb;
private System.Windows.Forms.TextBox timelimitsecs;
private System.Windows.Forms.Label label11;
private System.Windows.Forms.Button button7;
private System.Windows.Forms.Label label12;
private System.Windows.Forms.Label shamelessvariablelabel;
}
}

View File

@ -120,6 +120,7 @@ namespace NUS_Downloader
private void Form1_Load(object sender, EventArgs e)
{
this.Text = "NUSD - " + version + " - WB3000";
this.Size = this.MinimumSize;
}
private bool BootChecks()
@ -540,10 +541,10 @@ namespace NUS_Downloader
// Preparations for Downloading
Control.CheckForIllegalCrossThreadCalls = false;
WriteStatus("Starting NUS Download. Please be patient!");
button3.Enabled = false;
downloadstartbtn.Enabled = false;
titleidbox.Enabled = false;
titleversion.Enabled = false;
button3.Text = "Starting NUS Download!";
downloadstartbtn.Text = "Starting NUS Download!";
// Current directory...
string currentdir = Application.StartupPath;
@ -569,7 +570,7 @@ namespace NUS_Downloader
else
titledirectory = currentdir + titleid + "v" + titleversion.Text + @"\";
button3.Text = "Prerequisites: (0/2)";
downloadstartbtn.Text = "Prerequisites: (0/2)";
// Download TMD before the rest...
string tmdfull = "tmd";
@ -584,15 +585,15 @@ namespace NUS_Downloader
WriteStatus("Download Failed: " + tmdfull);
WriteStatus(" - Reason: " + ex.Message.ToString().Replace("The remote server returned an error: ", ""));
button3.Enabled = true;
downloadstartbtn.Enabled = true;
titleidbox.Enabled = true;
titleversion.Enabled = true;
button3.Text = "Start NUS Download!";
downloadstartbtn.Text = "Start NUS Download!";
dlprogress.Value = 0;
DeleteTitleDirectory();
return;
}
button3.Text = "Prerequisites: (1/2)";
downloadstartbtn.Text = "Prerequisites: (1/2)";
dlprogress.Value = 50;
// Download CETK after tmd...
@ -609,7 +610,7 @@ namespace NUS_Downloader
WriteStatus("You may be able to retrieve the contents by Ignoring the Ticket (Check below)");
titleidbox.Enabled = true;
titleversion.Enabled = true;
button3.Text = "Start NUS Download!";
downloadstartbtn.Text = "Start NUS Download!";
dlprogress.Value = 0;
DeleteTitleDirectory();
return;
@ -621,7 +622,7 @@ namespace NUS_Downloader
decryptbox.Checked = false;
}
}
button3.Text = "Prerequisites: (2/2)";
downloadstartbtn.Text = "Prerequisites: (2/2)";
dlprogress.Value = 100;
// Obtain TitleKey
@ -710,7 +711,7 @@ namespace NUS_Downloader
contentstrnum += TrimLeadingZeros(Convert.ToString(tmd[x]));
}
WriteStatus("Content #: " + contentstrnum);
button3.Text = "Content: (0/" + contentstrnum + ")";
downloadstartbtn.Text = "Content: (0/" + contentstrnum + ")";
dlprogress.Value = 0;
// Gather information...
@ -746,17 +747,17 @@ namespace NUS_Downloader
{
WriteStatus("Download Failed: " + tmdcontents[i]);
WriteStatus(" - Reason: " + ex.Message.ToString().Replace("The remote server returned an error: ", ""));
button3.Enabled = true;
downloadstartbtn.Enabled = true;
titleidbox.Enabled = true;
titleversion.Enabled = true;
button3.Text = "Start NUS Download!";
downloadstartbtn.Text = "Start NUS Download!";
dlprogress.Value = 0;
DeleteTitleDirectory();
return;
}
// Progress reporting advances...
button3.Text = "Content: (" + (i + 1) + @"/" + contentstrnum + ")";
downloadstartbtn.Text = "Content: (" + (i + 1) + @"/" + contentstrnum + ")";
currentcontentlocation += int.Parse(tmdsizes[i], System.Globalization.NumberStyles.HexNumber);
// Decrypt stuff...
@ -821,8 +822,83 @@ namespace NUS_Downloader
// Trucha signing...
if ((truchabox.Checked == true) && (wiimode == true))
{
// Read information from TMD into signing GUI...
requiredIOSbox.Text = Convert.ToString(tmd[0x18B]);
tmdversiontrucha.Text = TrimLeadingZeros(Convert.ToString(tmd[0x1DC]) + Convert.ToString(tmd[0x1DD]));
newtitleidbox.Text = titleid;
// Read information from TIK into signing GUI...
// Create ticket file holder
FileStream cetkf = File.OpenRead(titledirectory + @"\cetk");
byte[] cetkbuff = ReadFully(cetkf, 20);
cetkf.Close();
// Titlekey
for (int i = 0; i < 16; i++)
{
titlekey[i] = cetkbuff[0x1BF + i];
}
//titlekeybox.Text = DisplayBytes(titlekey).Replace(" ", "");
titlekeybox.Text = System.Text.Encoding.UTF7.GetString(titlekey);
// IV (TITLEID+00000000s)
byte[] iv = new byte[16];
for (int i = 0; i < 8; i++)
{
iv[i] = cetkbuff[0x1DC + i];
}
for (int i = 0; i < 8; i++)
{
iv[i + 8] = 0x00;
}
titleIDIV.Text = DisplayBytes(iv).Replace(" ", "");
//DLC
dlcamntbox.Text = TrimLeadingZeros(Convert.ToString(cetkbuff[0x1E6]) + Convert.ToString(cetkbuff[0x1E7]));
//keyindex
if (cetkbuff[0x1F1] == 0x00)
ckeyindexcb.SelectedIndex = 0;
else if (cetkbuff[0x1F1] == 0x01)
ckeyindexcb.SelectedIndex = 1;
else
ckeyindexcb.SelectedIndex = 0;
//time enabled
if (cetkbuff[0x247] == 0x00)
timelimitenabledcb.SelectedIndex = 0;
else if (cetkbuff[0x247] == 0x01)
timelimitenabledcb.SelectedIndex = 1;
else
timelimitenabledcb.SelectedIndex = 0;
//time in seconds
byte[] timelimit = new byte[4];
for (int i = 0; i < timelimit.Length; i++)
{
timelimit[i] = cetkbuff[0x248 + 1];
}
timelimitsecs.Text = Convert.ToString(System.BitConverter.ToInt32(timelimit, 0));
// Resize form to max to show trucha options...
this.Size = this.MaximumSize;
shamelessvariablelabel.Text = String.Format("{0},{1}", titledirectory, tmdfull);
// Loop until finished...
while (this.Size == this.MaximumSize)
{
System.Threading.Thread.Sleep(1000);
}
/*
WriteStatus("Trucha Signing TMD...");
Array.Resize(ref tmd, 484 + (Convert.ToInt32(contentstrnum) * 36));
// DEBUG: Mii Channel Test...
tmd[0x18F] = 0x01;
tmd = ZeroSignature(tmd);
tmd = TruchaSign(tmd);
@ -838,12 +914,16 @@ namespace NUS_Downloader
cetkf.Close();
Array.Resize(ref cetkbuff, 0x2A4);
// DEBUG: Mii Channel Test...
cetkbuff[0x1DF] = 0x01;
cetkbuff = ZeroSignature(cetkbuff);
cetkbuff = TruchaSign(cetkbuff);
FileStream testtik = new FileStream(titledirectory + "cetk", FileMode.Open);
testtik.Write(cetkbuff, 0, cetkbuff.Length);
testtik.Close();
testtik.Close(); */
}
if ((packbox.Checked == true) && (wiimode == true))
@ -851,10 +931,10 @@ namespace NUS_Downloader
PackWAD(titleid, tmdfull, tmdcontents.Length, tmdcontents, tmdsizes, titledirectory);
}
button3.Enabled = true;
downloadstartbtn.Enabled = true;
titleidbox.Enabled = true;
titleversion.Enabled = true;
button3.Text = "Start NUS Download!";
downloadstartbtn.Text = "Start NUS Download!";
dlprogress.Value = 0;
}
@ -890,17 +970,12 @@ namespace NUS_Downloader
private void DeleteTitleDirectory()
{
string currentdir = Application.StartupPath;
/*if (!(currentdir.EndsWith(@"\")) || !(currentdir.EndsWith(@"/")))
currentdir += @"\"; */
if (currentdir.EndsWith(Convert.ToString(Path.DirectorySeparatorChar)) == false)
currentdir += Path.DirectorySeparatorChar;
// Get placement directory early...
string titledirectory;
if (titleversion.Text == "")
//titledirectory = currentdir + titleidbox.Text + @"\";
titledirectory = Path.Combine(currentdir, titleidbox.Text + Path.DirectorySeparatorChar);
else
titledirectory = Path.Combine(currentdir, titleidbox.Text + "v" + titleversion.Text + Path.DirectorySeparatorChar);
@ -1026,7 +1101,7 @@ namespace NUS_Downloader
// Write CertChainLength
wadfs.Seek(0x08, SeekOrigin.Begin);
byte[] chainsize = InttoByteArray(wad.CertChainSize);
byte[] chainsize = InttoByteArray(wad.CertChainSize, 4);
wadfs.Write(chainsize, 0, 4);
// Write res
@ -1041,13 +1116,13 @@ namespace NUS_Downloader
// Write tmdsize
int strippedtmd = 484 + (contentcount * 36);
byte[] tmdsize = InttoByteArray(strippedtmd);
byte[] tmdsize = InttoByteArray(strippedtmd, 4);
wadfs.Seek(0x14, SeekOrigin.Begin);
wadfs.Write(tmdsize, 0, 4);
// Write data size
wadfs.Seek(0x18, SeekOrigin.Begin);
byte[] datasize = InttoByteArray(wad.DataSize);
byte[] datasize = InttoByteArray(wad.DataSize, 4);
wadfs.Write(datasize, 0, 4);
// Finished.
@ -1075,11 +1150,11 @@ namespace NUS_Downloader
return (long)thelength;
}
private byte[] InttoByteArray(int size)
private byte[] InttoByteArray(int inte, int arraysize)
{
// Take integer and make into byte array
byte[] b = new byte[4];
b = BitConverter.GetBytes(size);
byte[] b = new byte[arraysize];
b = BitConverter.GetBytes(inte);
if (BitConverter.IsLittleEndian)
Array.Reverse(b);
@ -1168,7 +1243,7 @@ namespace NUS_Downloader
WriteStatus("");
WriteStatus("Special thanks to:");
WriteStatus(" * Crediar for his wadmaker tool + source, and for the advice!");
WriteStatus(" * SquidMan/Galaxy/comex for advice/sources.");
WriteStatus(" * SquidMan/Galaxy/comex/Xuzz for advice/sources.");
WriteStatus(" * Pasta for database compilation assistance.");
WriteStatus(" * #WiiDev for general assistance whenever I had questions.");
}
@ -1787,5 +1862,87 @@ namespace NUS_Downloader
return array;
}
private void button6_Click(object sender, EventArgs e)
{
// Revert to TMD information...
string[] fileinfo = shamelessvariablelabel.Text.Split(',');
// Read the tmd as a stream...
FileStream fs = File.OpenRead(fileinfo[0] + fileinfo[1]);
byte[] tmd = ReadFully(fs, 20);
fs.Close();
// Read information from TMD into signing GUI...
requiredIOSbox.Text = Convert.ToString(tmd[0x18B]);
tmdversiontrucha.Text = TrimLeadingZeros(Convert.ToString(tmd[0x1DC]) + Convert.ToString(tmd[0x1DD]));
newtitleidbox.Text = titleidbox.Text;
}
private void button5_Click(object sender, EventArgs e)
{
// Revert to Ticket information...
string[] fileinfo = shamelessvariablelabel.Text.Split(',');
// Create ticket file holder
FileStream cetkf = File.OpenRead(fileinfo[0] + @"\cetk");
byte[] cetkbuff = ReadFully(cetkf, 20);
cetkf.Close();
// Titlekey
byte[] titlekey = new byte[16];
for (int i = 0; i < 16; i++)
{
titlekey[i] = cetkbuff[0x1BF + i];
}
//titlekeybox.Text = DisplayBytes(titlekey).Replace(" ", "");
titlekeybox.Text = System.Text.Encoding.UTF7.GetString(titlekey);
// IV (TITLEID+00000000s)
byte[] iv = new byte[16];
for (int i = 0; i < 8; i++)
{
iv[i] = cetkbuff[0x1DC + i];
}
for (int i = 0; i < 8; i++)
{
iv[i + 8] = 0x00;
}
titleIDIV.Text = DisplayBytes(iv).Replace(" ", "");
//DLC
dlcamntbox.Text = TrimLeadingZeros(Convert.ToString(cetkbuff[0x1E6]) + Convert.ToString(cetkbuff[0x1E7]));
//keyindex
if (cetkbuff[0x1F1] == 0x00)
ckeyindexcb.SelectedIndex = 0;
else if (cetkbuff[0x1F1] == 0x01)
ckeyindexcb.SelectedIndex = 1;
else
ckeyindexcb.SelectedIndex = 0;
//time enabled
if (cetkbuff[0x247] == 0x00)
timelimitenabledcb.SelectedIndex = 0;
else if (cetkbuff[0x247] == 0x01)
timelimitenabledcb.SelectedIndex = 1;
else
timelimitenabledcb.SelectedIndex = 0;
//time in seconds
byte[] timelimit = new byte[4];
for (int i = 0; i < timelimit.Length; i++)
{
timelimit[i] = cetkbuff[0x248 + 1];
}
timelimitsecs.Text = Convert.ToString(System.BitConverter.ToInt32(timelimit, 0));
}
private void button1_Click_1(object sender, EventArgs e)
{
// Write Trucha changes to TMD...
}
}
}

View File

@ -123,6 +123,13 @@
<metadata name="databaseStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>159, 17</value>
</metadata>
<data name="label12.Text" xml:space="preserve">
<value>Notice:
* Fake signed content requires an IOS with the fake signing bug to install/use.
* Always have a brick restoration method in place (BootMii boot2).
* Be careful with Ticket values, they are best left alone.</value>
</data>
<assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>