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