NOD32升级账号更新器 [ C# | NOD32 | Eset ]


前言

      NOD32的大名这里就不介绍了,一直使用免费的升级服务器或升级ID,很脸红的说一句:“有钱了一定买正版的!”。

声明

      本软件仅限于参考学习之用,请勿用于其他非法用途!

参考文章

  1.  编程读取NOD32 注册表内的用户名和密码(Delphi)

  2.  ESET(NOD32)有效ID自动获取、检查、写入注册表 纯VBS脚本(论坛要注册,直接下载

运行环境

      1.      Microsoft .NET Framework 2.0

正文

  1.  先贴效果图

                

      2.      原理与功能

            2.1      原理非常简单,从http://www.nod321.com/抓取最新的用户名和密码,然后更新到注册表中。

            2.2      启动进入界面,直接点击"立即更新"按钮就行了,本版没有加入判断是否已经联网,所以需要你先确定自己是否能够上网!如果连续点击立即更新的话,会按上面网页中出现的升级ID从上到下依次设置为当前升级ID。

      3.  部分代码

            3.1      异步分析下载

        /// <summary>
        
/// 异步更新
        
/// </summary>
        
/// <param name="sender"></param>
        
/// <param name="e"></param>
        private void btnUpdating_Click(object sender, EventArgs e)
        {
            AppendMessage(
"开始连接\r\n", Color.Blue);

            
using (WebClient wClient = new WebClient())
            {
                AutoResetEvent waiter 
= new AutoResetEvent(false);
                wClient.Credentials 
= CredentialCache.DefaultCredentials;
                wClient.DownloadDataCompleted 
+= new DownloadDataCompletedEventHandler(AsyncURIAnalyze);
                wClient.DownloadDataAsync(
new Uri(URL_USER), waiter);
                
//waiter.WaitOne();     //阻止当前线程,直到收到信号
            }
        }

        
/// <summary>
        
/// 异步分析
        
/// </summary>
        
/// <param name="sender"></param>
        
/// <param name="e"></param>
        protected void AsyncURIAnalyze(Object sender, DownloadDataCompletedEventArgs e)
        {
            
//消息
            AppendMessage("已连接,正在分析\r\n", Color.Blue);

            
//获取数据
            string pageData = Encoding.UTF8.GetString(e.Result);

            MatchCollection matchs 
= Regex.Matches(pageData, REGULAR_USER, RegexOptions.IgnoreCase);

            
foreach (Match match in matchs)
            {
                
string[] values = match.Value.Replace("<br/>""@").Split('@');
                
string username = values[0].Replace("UserName:"string.Empty).Trim();
                
string password = values[1].Replace("PassWord:"string.Empty).Trim();

                
if (!users.Contains(username))
                {
                    users.Add(username);

                    Regedit(username,password);
                    
                    
break;
                }
            }
        }

              3.2      Nod32的密码加密与解密

        /// <summary>
        
/// 解密
        
/// </summary>
        
/// <param name="buf"></param>
        
/// <returns></returns>
        private string byte2str(byte[] buf)
        {
            StringBuilder pwd 
= new StringBuilder();
            
if (buf != null)
            {
                
for (int i = 0, j = mask.Length; i < j; i += 2)
                {
                    pwd.Append((
char)(buf[i] ^ mask[i]));
                }
            }
            
return pwd.ToString();
        }

        
/// <summary>
        
/// 加密
        
/// </summary>
        
/// <param name="str"></param>
        
/// <returns></returns>
        private byte[] str2byte(string str)
        {
            
byte[] buf = Encoding.ASCII.GetBytes(str);
            
byte[] result = new byte[buf.Length * 2];
            
if (buf != null)
            {
                
for (int i = 0, j = 0; i < mask.Length; i++, j++)
                {
                    result[i] 
= (byte)(buf[j] ^ mask[i]);
                    result[
++i] = mask[i];
                }
            }
            
return result;
        }

      4.  下载

            4.1  安装程序

                  NodFixSetup.rar 解压安装即可。

            4.2  可直接运行的EXE文件,需要Framework 2.0

                 NodFix.rar 

            4.3  源代码

                 NodFixSrc.rar

      5.      注意

            由于http://www.nod321.com/更新升级ID稍慢导致ID无效,需要你重复点击"立即更新"来尝试其他的升级ID,如果本程序更新的ID都无法使用,也代表上面这个网站的升级ID无法使用!比如2009-5-15更新的升级ID中只有最后一组可以使用!


后期维护
      1.      2009-7-20
            修正两个BUG,分别是密码为空是更新出错和匹配用户名密码没考虑Username和Password这种情况,更新exe下载,替换NodFix.exe就行:
            NodFix2009-7-20.rar
      2.      2009-8-3
            紧急修正分析结果未加Tirm()的BUG,同上,替换NodFix.exe就行:
            NodFix2009-8-3.rar

  3.  2009-9-4

    由于nod321.com网站被关闭,在本软件失效之际找到另外一个提供免费升级ID的网站:nod320.org,小有改动代码,请下载替换NodFix.exe:

    NodFix2009-9-4.rar

  4.  2009-9-20

    nod320.org改了匹配的用户名 - -#,请替换NodFix.exe,也附加本次的源代码,自己用闲工夫的人把这个程序改成一个字典形式的吧,我懒 - - #。

    EXE:  NodFix2009-9-20_EXE.rar

    SRC:  NodFix2009-9-20_SRC.rar

  5.  2011-3-25

    已经购买正版360版ESET NOD32,40元一年。上班已经4年,能承受得起这个费用了,支持正版!本文源代码要是觉得有价值可以下载学习一下,主要是操作注册表。

结束

      自己动手,丰衣足食! 短时间内不用到处找升级ID了,而且用起来放心,有源代码在这呢 : )顺便还学习了一下Winform打包:  )

原文地址:https://www.cnblogs.com/over140/p/1456605.html