正文
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,如需轉載請自行聯系原作者