首页 > 开发 > 综合 > 正文

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

2024-07-21 02:30:04
字体:
来源:转载
供稿:网友

  最近有个朋友 让我帮他在线投票,因为站点是限制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来循环执行就可以了。

  哈哈,一切都是这么简单。不过还是觉得这么做有背公平的原则。希望大家不要用到不好的地方,当然用于惩戒作弊的人除外

中国最大的web开发资源网站及技术社区,
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表