程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> 關於C# >> C#投票作弊程序制作思路

C#投票作弊程序制作思路

編輯:關於C#

最近有個朋友 讓我幫他在線投票,因為站點是限制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文件是無法刪除的,所以我作了一個處理,刪除了除他以為的所有內容,代碼如下:

const int cookies = 33;
Shell32.Folder objFolder;
Shell32.FolderItems objFolderItems;
Shell32.ShellClass objShell;

objShell = new Shell32.ShellClass();
objFolder = objShell.NameSpace(cookies);
objFolderItems = objFolder.Items();
foreach(Shell32.FolderItem objFolderItem in objFolderItems)
{
if(!"index.dat".Equals(objFolderItem.Name.ToLower()))
{
File.Delete(objFolderItem.Path.ToString());
}
}

第一步解決了,該解決第二個問題了,我查詢了一些資料。發現有兩種方式可以解決我的問題

1、使用WebClient

這種方式是直接執行類似頁面提交的方式,進行頁面的控制,並且可以返回提交結果頁的內容,速度快。

2、使用WebBrowser

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

所以我決定用第一種方式,代碼如下:

WebClient wc = new WebClient();
string postData = "username=xxx"
wc.Headers.Add("Content-Type","application/x-www-form-urlencoded");
byte[] bReturn = wc.UploadData("http://www.xxx.xxx/vote.asp","POST",Encoding.Default.GetBytes(postData));
//MessageBox.Show(Encoding.Default.GetString(bReturn));
wc.Dispose();

看到了吧,這樣就可以了。

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

哈哈,一切都是這麼簡單。不過還是覺得這麼做有背公平的原則。希望大家不要用到不好的地方,當然用於懲戒作弊的人除外

http://voodooq.cnblogs.com/archive/2006/06/24/434767.html

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved