程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 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來循環執行就可以了。

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

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