前言
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打包: )