diff --git a/Form1.Designer.cs b/Form1.Designer.cs index 33cc1b0..4886942 100644 --- a/Form1.Designer.cs +++ b/Form1.Designer.cs @@ -512,28 +512,28 @@ private void InitializeComponent() this.noneToolStripMenuItem.Checked = true; this.noneToolStripMenuItem.CheckState = System.Windows.Forms.CheckState.Checked; this.noneToolStripMenuItem.Name = "noneToolStripMenuItem"; - this.noneToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + this.noneToolStripMenuItem.Size = new System.Drawing.Size(163, 22); this.noneToolStripMenuItem.Text = "None"; this.noneToolStripMenuItem.Click += new System.EventHandler(this.noneToolStripMenuItem_Click); // // simpleLearningToolStripMenuItem // this.simpleLearningToolStripMenuItem.Name = "simpleLearningToolStripMenuItem"; - this.simpleLearningToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + this.simpleLearningToolStripMenuItem.Size = new System.Drawing.Size(163, 22); this.simpleLearningToolStripMenuItem.Text = "Simple Learning"; this.simpleLearningToolStripMenuItem.Click += new System.EventHandler(this.simpleLearningToolStripMenuItem_Click); // // normalLearningToolStripMenuItem // this.normalLearningToolStripMenuItem.Name = "normalLearningToolStripMenuItem"; - this.normalLearningToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + this.normalLearningToolStripMenuItem.Size = new System.Drawing.Size(163, 22); this.normalLearningToolStripMenuItem.Text = "Normal Learning"; this.normalLearningToolStripMenuItem.Click += new System.EventHandler(this.normalLearningToolStripMenuItem_Click); // // secureLearnToolStripMenuItem // this.secureLearnToolStripMenuItem.Name = "secureLearnToolStripMenuItem"; - this.secureLearnToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + this.secureLearnToolStripMenuItem.Size = new System.Drawing.Size(163, 22); this.secureLearnToolStripMenuItem.Text = "Secure Learn"; this.secureLearnToolStripMenuItem.Click += new System.EventHandler(this.secureLearnToolStripMenuItem_Click); // @@ -724,7 +724,7 @@ private void InitializeComponent() this.MainMenuStrip = this.menuStrip1; this.MinimumSize = new System.Drawing.Size(665, 445); this.Name = "Form1"; - this.Text = "HCS301 Programmer V0.2.4"; + this.Text = "HCS301 Programmer V0.2.5"; this.groupBox1.ResumeLayout(false); this.groupBox1.PerformLayout(); this.groupBox2.ResumeLayout(false); diff --git a/Form1.cs b/Form1.cs index 78a9ac8..b3870ba 100644 --- a/Form1.cs +++ b/Form1.cs @@ -1,7 +1,11 @@ /* HCS Programmer Soft By Liyanboy74 + https://github.com/liyanboy74 + https://github.com/liyanboy74/KeeLoq + https://github.com/hnhkj/documents/tree/master/KEELOQ/docs + https://github.com/ihydrad/Keeloq-decrypt/tree/master/readme */ using System; @@ -847,12 +851,13 @@ public ulong gen_normal_key(ulong mf_key,UInt32 seed) return ret; } - public ulong gen_secure_key(ulong mf_key,UInt32 seed) + public ulong gen_secure_key(ulong mf_key,UInt32 seed,UInt32 ser) { ulong ret = 0; - ret = ((mf_key >> 32) ^ 0) << 32; - ret |= (mf_key & 0xffffffff) ^ seed; + ret = keeloq_decrypt(mf_key, seed, KEELOQ_NROUNDS); + ser &= 0x0fffffff; + ret |= ((UInt64)keeloq_decrypt(mf_key, ser, KEELOQ_NROUNDS) << 32); return ret; } @@ -873,7 +878,7 @@ public void mc_clc() } else if(learn_mode==3) { - hash = gen_secure_key(mkey, seed); + hash = gen_secure_key(mkey, seed,ser); } diff --git a/Programmer.csproj b/Programmer.csproj index 315d63c..9901fb3 100644 --- a/Programmer.csproj +++ b/Programmer.csproj @@ -7,7 +7,7 @@ {917791B5-231E-4832-9E8C-FE4E65DAC6FB} WinExe Programmer - HCS301-Programmer-v0.2.4 + HCS301-Programmer-v0.2.5 v4.7.2 512 true @@ -23,7 +23,7 @@ false false true - 4 + 5 1.0.2.%2a false true