正文
1. 先贴效果图
2. 原理与功能
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(); //阻止当前线程,直到收到信号
}
}
/// 异步分析
protected void AsyncURIAnalyze(Object sender, DownloadDataCompletedEventArgs e)
//消息
AppendMessage("已连接,正在分析


//获取数据
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的密码加密与解密
/// 解密
/// <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();
/// 加密
/// <param name="str"></param>
private byte[] str2byte(string str)
byte[] buf = Encoding.ASCII.GetBytes(str);
byte[] result = new byte[buf.Length * 2];
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 安装程序
4.2 可直接运行的EXE文件,需要Framework 2.0
4.3 源代码
5. 注意
后期维护
1. 2009-7-20
修正两个BUG,分别是密码为空是更新出错和匹配用户名密码没考虑Username和Password这种情况,更新exe下载,替换NodFix.exe就行:
2. 2009-8-3
紧急修正分析结果未加Tirm()的BUG,同上,替换NodFix.exe就行:
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年,能承受得起这个费用了,支持正版!本文源代码要是觉得有价值可以下载学习一下,主要是操作注册表。
本文转自over140 51CTO博客,原文链接:http://blog.51cto.com/over140/584869,如需转载请自行联系原作者