voodooq
如果人类少一些私欲,世界将多一些安详……
博客园
首页
新随笔
联系
订阅
管理
32 Posts :: 3 Stories :: 7 Comments :: 0 Trackbacks
公告
我的MSN: qubin0118@hotmail.com 大家多多交流,世界将会更美好
FastCounter by bCentral
与我联系
发短消息
搜索
常用链接
我的随笔
我的空间
我的短信
我的评论
更多链接
我的参与
我的新闻
最新评论
我的标签
留言簿
(11)
给我留言
查看留言
随笔分类
C#笔记(16)
个人生活(10)
脚本技术(8)
随笔档案
2006年7月 (1)
2006年6月 (2)
2006年2月 (1)
2005年12月 (1)
2004年12月 (4)
2004年10月 (2)
2004年9月 (4)
2004年8月 (5)
2004年7月 (2)
2004年6月 (10)
文章分类
.Net开发(2)
WEB开发(1)
闲情逸致(1)
相册
个人象册
收藏夹
转载的好文章(2)
常用的下载站点
网易社区下载无止境
脚本技术资源
51windows
推荐的.NET资源站点
CodeProject
VBT Bloging...
最新评论
阅读排行榜
1. 投票作弊程序制作思路(续)——突破IP限制投票(6188)
2. 投票作弊程序制作思路(3145)
3. Winform的登录窗体设计思路(1704)
4. 在xp中建立自动联接的dsl拨号连接(1585)
5. Microsoft SharePoint Portal Server 2003 订制开发研讨(流水帐)(1419)
评论排行榜
1. Microsoft SharePoint Portal Server 2003 订制开发研讨(流水帐)(3)
2. 拥有自己的BLOG,博客园使用设置简要说明(2)
3. 《★世★界★9★个★不★可★思★议★的★地★区★》(1)
4. 在xp中建立自动联接的dsl拨号连接(1)
5. [好消息] 330兆杀毒邮箱?2万网易泡泡金币?——网易社区厚礼赠“元老(0)
投票作弊程序制作思路
最近有个朋友 让我帮他在线投票,因为站点是限制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来循环执行就可以了。
哈哈,一切都是这么简单。不过还是觉得这么做有背公平的原则。希望大家不要用到不好的地方,当然用于惩戒作弊的人除外
posted on 2006-06-24 15:24
Voodoo's天空
阅读(3145)
评论(0)
编辑
收藏
所属分类:
C#笔记
、
脚本技术
Powered by:
博客园
Copyright © Voodoo's天空