麒麟, 发表于 2016-12-24 19:12

关于net程序算法,求解!

论坛某大神分析过程,自己已知加密解密算法都在这两个函数里面,怎么寻找算法,!!!请大家具体教程解法!
encryptionHelper.DecryptString
encryptionHelper.EncryptString


附件奉上




      private void CheckLicense()                                  //就是这个函数
                {
                        XmlDocument xmlDocument = new XmlDocument();
                        try
                        {
                              this.getRNum();
                              bool flag = Data.LocalMachine.Contains(Data.MachineString);
                              if (flag)
                              {
                                        Data.HasLicense = true;
                              }
                              else
                              {
                                        EncryptionHelper encryptionHelper = new EncryptionHelper();
                                        xmlDocument.Load(Application.StartupPath + "\\Key.xml");
                                        XmlElement xmlElement = (XmlElement)xmlDocument.DocumentElement.GetElementsByTagName("License");
                                        List<string> list = encryptionHelper.DecryptString(xmlElement.InnerText).Split(new char).ToList<string>();
                                        bool flag2 = !(Data.MachineString + "k").Equals(list);
                                        if (flag2)
                                        {
                                                this.button_KaiJiang.Enabled = false;
                                                this.button_StartZhu.Enabled = false;
                                                this.button_StopZhu.Enabled = false;
                                                this.textBox_Error.Text = "机器码:" + Data.MachineString;
                                                this.textBox_Error.Visible = true;
                                        }
                                        else
                                        {
                                                int num = DateTime.Now.DayOfYear + (DateTime.Now.Year - Convert.ToDateTime(list).Year) * 365 - Convert.ToDateTime(list).DayOfYear;
                                                bool flag3 = num >= 0;
                                                if (flag3)
                                                {
                                                      int num2 = Convert.ToInt32(list) - num;
                                                      bool flag4 = num2 < 0;
                                                      if (flag4)
                                                      {
                                                                num2 = 0;
                                                      }
                                                      string plainString = string.Concat(new object[]
                                                      {
                                                                Data.MachineString,
                                                                "k ",
                                                                DateTime.Now.ToString("yyyy.MM.dd"),
                                                                " ",
                                                                num2
                                                      });
                                                      xmlElement.InnerText = encryptionHelper.EncryptString(plainString);               //“机器码+K+当前年月日+剩余天数"进行加密
                                                      xmlDocument.Save(Application.StartupPath + "\\Key.xml");                              //加密后保存在Key.xml中
                                                      bool flag5 = num2 == 0;
                                                      if (flag5)
                                                      {
                                                                this.button_KaiJiang.Enabled = false;
                                                                this.button_StartZhu.Enabled = false;
                                                                this.button_StopZhu.Enabled = false;
                                                                this.textBox_Error.Text = "机器码:" + Data.MachineString;
                                                                this.textBox_Error.Visible = true;
                                                      }
                                                      else
                                                      {
                                                                bool flag6 = Convert.ToInt32(list) < 4;         //小于4天开始警告
                                                                if (flag6)
                                                                {
                                                                        MessageBox.Show("剩余" + num2 + "天", "授权时间警告");
                                                                        Data.HasLicense = true;
                                                                }
                                                                else
                                                                {
                                                                        bool flag7 = Convert.ToInt32(list) > 3;
                                                                        if (flag7)
                                                                        {
                                                                              Data.HasLicense = true;                         //关键点。
                                                                        }
                                                                }
                                                      }
                                                }
                                                else
                                                {
                                                      this.button_KaiJiang.Enabled = false;
                                                      this.button_StartZhu.Enabled = false;
                                                      this.button_StopZhu.Enabled = false;
                                                      this.textBox_Error.Text = "机器码:" + Data.MachineString;
                                                      this.textBox_Error.Visible = true;
                                                }
                                        }
                              }
                        }
                        catch (Exception)
                        {
                              this.button_KaiJiang.Enabled = false;
                              this.button_StartZhu.Enabled = false;
                              this.button_StopZhu.Enabled = false;
                              this.textBox_Error.Text = "机器码:" + Data.MachineString;
                              this.textBox_Error.Visible = true;
                        }
                }


@郫一农

相知。 发表于 2016-12-24 19:13

看来楼猪是没用心...

w491065115 发表于 2016-12-25 11:37

能否帮我看一下我那个求助帖,我是一点.NET都不懂- -大神求教

麒麟, 发表于 2016-12-25 15:36

论坛大神们在那??这算法我也是醉了,根本看不懂net玩意!

麒麟, 发表于 2016-12-25 19:03

@郫一农    @囚徒灬   {:5_191:}求算法@Gamers丶伦

麒麟, 发表于 2016-12-25 20:58

相知。 发表于 2016-12-25 20:25
看来楼猪是没用心...

{:5_191:}求方法在群里吼了半天研究了一天!!!!!!!

麒麟, 发表于 2016-12-26 16:10

{:5_191:}人们都去哪里了!!!

麒麟, 发表于 2016-12-26 19:22

相知。 发表于 2016-12-25 20:25
看来楼猪是没用心...

{:5_191:}没上线吗!

158686211 发表于 2016-12-27 10:11

这什么东西啊。?

麒麟, 发表于 2016-12-27 18:37

158686211 发表于 2016-12-27 10:11
这什么东西啊。?

@Shark恒   麻烦鲨鱼把我所有的帖子全删
页: [1] 2
查看完整版本: 关于net程序算法,求解!