投票作弊程序製作思路

最近有個朋友 讓我幫他在線投票,因爲站點是限制IP的(這裏其實是騙人的),我就幫他點了一下,可是我突然發現,第一名的投票數比後面的人多的很多,大概差3-4百票吧。我就覺得,第一個人肯定是找人幫忙投票了,但是這樣就失去了投票本身的意義了。於是我就想故意搞惡一下。想到寫一個自動投票的程序來完成。(算不算以暴制暴啊?)

我分析了投票的網站,上面說是限制IP的,但是根據我的分析,並不是限制IP,而是使用了COOKIES記錄的投票的信息,而如果你清除了COOKIES就可以再投票了,不過這樣需要每次去手動調整IE的參數,累都累死了。於是,我想能不能自動刪除COOKIES並且自動提交頁面提交呢?

通過以上的分析,我們知道了,作這個程序,需要兩個環節:
1、自動清除COOKIES
2、自動提交表單

首先我們先看看第一個
我查詢了,MSDN的網站,裏面有個HI Script的專欄。介紹了很多執行WINDOWS腳本的技術,其中就有關於如何操作IE臨時文件夾和COOKIES目錄的功能。
http://www.microsoft.com/china/technet/community/scriptcenter/resources/hey1102.mspx

根據裏面的方法,我在C#中寫出了以下代碼,用來刪除COOKIES,要注意的是,其中的index.dat文件是無法刪除的,所以我作了一個處理,刪除了除他以爲的所有內容,代碼如下:
None.gif            const int cookies = 33;
None.gif            Shell32.Folder objFolder;
None.gif            Shell32.FolderItems objFolderItems;
None.gif            Shell32.ShellClass objShell;
None.gif            
None.gif            objShell 
= new Shell32.ShellClass();
None.gif            objFolder 
= objShell.NameSpace(cookies);
None.gif            objFolderItems 
= objFolder.Items();
None.gif            
foreach(Shell32.FolderItem objFolderItem in objFolderItems)
ExpandedBlockStart.gif            
{
InBlock.gif                
if(!"index.dat".Equals(objFolderItem.Name.ToLower()))
ExpandedSubBlockStart.gif                
{
InBlock.gif                    File.Delete(objFolderItem.Path.ToString());
ExpandedSubBlockEnd.gif                }

ExpandedBlockEnd.gif            }

None.gif

第一步解決了,該解決第二個問題了,我查詢了一些資料。發現有兩種方式可以解決我的問題
1、使用WebClient
這種方式是直接執行類似頁面提交的方式,進行頁面的控制,並且可以返回提交結果頁的內容,速度快。

2、使用WebBrowser
這種方式類似於自己做了一個瀏覽器,然後控制頁面中的對象進行提交。這樣的速度有點慢。

所以我決定用第一種方式,代碼如下:
None.gif            WebClient wc = new WebClient();
None.gif            
string postData = "username=xxx"
None.gif            wc.Headers.Add(
"Content-Type","application/x-www-form-urlencoded"); 
None.gif            
byte[] bReturn = wc.UploadData("http://www.xxx.xxx/vote.asp","POST",Encoding.Default.GetBytes(postData));
None.gif            
//MessageBox.Show(Encoding.Default.GetString(bReturn));
None.gif
            wc.Dispose();
None.gif
看到了吧,這樣就可以了。

剩下就是在用一個timer來循環執行就可以了。

哈哈,一切都是這麼簡單。不過還是覺得這麼做有背公平的原則。希望大家不要用到不好的地方,當然用於懲戒作弊的人除外
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章