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 异步分析下载
![复制代码](http://common.cnblogs.com/images/copycode.gif)
/// 异步更新
/// /summary
/// param name="sender" /param
/// param name="e" /param
private void btnUpdating_Click(object sender, EventArgs e)
{
AppendMessage("开始连接
![](http://www.cnblogs.com/Images/dot.gif)
![](http://www.cnblogs.com/Images/dot.gif)
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("已连接,正在分析
![](http://www.cnblogs.com/Images/dot.gif)
![](http://www.cnblogs.com/Images/dot.gif)
//获取数据
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;
}
}
}
![复制代码](http://common.cnblogs.com/images/copycode.gif)
3.2 Nod32的密码加密与解密
![复制代码](http://common.cnblogs.com/images/copycode.gif)
/// 解密
/// /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;
}
![复制代码](http://common.cnblogs.com/images/copycode.gif)
4. 下载
4.1 安装程序
NodFixSetup.rar 解压安装即可。
4.2 可直接运行的EXE文件,需要Framework 2.0
4.3 源代码
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:
4. 2009-9-20
nod320.org改了匹配的用户名 - -#,请替换NodFix.exe,也附加本次的源代码,自己用闲工夫的人把这个程序改成一个字典形式的吧,我懒 - - #。
5. 2011-3-25
已经购买正版360版ESET NOD32,40元一年。上班已经4年,能承受得起这个费用了,支持正版!本文源代码要是觉得有价值可以下载学习一下,主要是操作注册表。
结束
自己动手,丰衣足食! 短时间内不用到处找升级ID了,而且用起来放心,有源代码在这呢 : )顺便还学习了一下Winform打包: )
转载:http://www.cnblogs.com/over140/archive/2009/05/15/1456605.html
如何为您的 Google 账户启用两步验证 当你觉得自己的Gmail不安全你希望提升您谷歌的安全系数,您可以选择开启登录两步验证(也称为双因素身份验证或 2FA)时,您会为您的 Google帐户添加额外的安全层。您使用您知道的信息(您的密码)和您拥有的信息(发送到您手机的代码)登录。
相关文章
- C#中用ILMerge合并DLL和exe文件成一个exe文件或者DLL
- C#子线程中更新ui
- C# List中写出LINQ类似SQL的语句
- Unity3D热更新全书-脚本(三) C#LightEvil语法与调试
- Unity3D热更新全书-脚本(四) 用C#LightEvil搭建实际开发使用的脚本框架
- C# 调用存储过程操作 OUTPUT参数和Return返回值
- C#Redis列表List
- 编写高质量代码改善C#程序的157个建议[为类型输出格式化字符串、实现浅拷贝和深拷贝、用dynamic来优化反射]
- 重学c#系列——linq(3) [二十九]
- C# 下利用ICSharpCode.SharpZipLib.dll实现文件/文件夹压缩、解压缩
- C#自定义工业控件开发
- C#中的数据格式转换 (未完待更新)
- C# 根据月份来确定每月的最大天数
- C# 格式化string类型的金额
- C# 常量
- C#基础——数组
- c# 将字符串转换为指定类型的值
- 基于虎书实现LALR(1)分析并生成GLSL编译器前端代码(C#)
- (17)C#的params参数关键字
- (一)如何利用C# Roslyn编译器写一个简单的代码提示/错误检查?
- C#创建Windows窗体应用程序实例6【ASCII码查询程序】
- C#序列化枚举为字符串和自定义转换器