手机微信免费刷票神器及免费投票刷票器手机版的使用流程,越来越多的人在平常生活中使用微信,以微信为载体的许多功能就被开发和使用了起来,比如——微信投票。于是乎,微信上兴起了各种投票,从小学生到gov部门的投票活动都有,,刷票交易也越来越火。刷票单纯在请求的技术手段上,都是正常的访问请求,基本是没法识别的,但它真的像吃瓜群众一样说的没法认出来吗?未必!
1.水军为了做更多生意自曝身份,在微信昵称上用了显而易见的刷票词语,比如用“票”筛选投票数据,就得到了大量的刷票信息,见图:
这样,只要通过一定的规则来匹配投票人的微信昵称,判断出投票人是否是刷票的,如果是进入黑名单。如果一个被投票的有大量黑名单的人给他投票,那么他就有花钱买票嫌疑。
2.每天投票量统计分析,如果是持续几天的投票。我们设想被投票人每天都在努力地拉票,从开始到结束应该是一个影响力越来越大或者影响力在结束的时候弱一点,所以每天的投票量统计曲线是先抑后扬或呈正态分布。把每个选 手的每天投票量曲线做出来,和其他人不一样的就一眼看出来了。
3.时段投票量统计分析,这个应该比较容易理解,投票时间应该符合一般人的作息时间,如果在凌晨一、两点某个选手出现大量的投票,而他白天投票量反正少,这就很难用正常投票解释了。
4.投票数爆发点与超越关系的分析。买票是需要成本的,被投票人买票的话当然是想用最少的成本取得第一。如果他被别人超越了的话,不想让自己先期投入变成“沉没成本”,只能加钱再买票再次超越别人。所以,如果一个选手多次被别人超越后投票数立马上升,特别是上升的票数都差不多(想象一下每次都是一百一百地买票),那就基本是刷票了。
5. 多人刷票的情况。这种情况下就有点好玩了,发展的结果是:
a.谁也不服谁,杠上了,超越关系明显。最后钱多的2,3个人超过其他人好多倍的票;
b.为了节约成本,保持第二或第三,在最后时段为了夺冠冲刺刷票,产生了一个非常异常的投票量曲线。
谁最清楚哪个人是刷票水军呢?应该是疼xun。如果是专门做投票系统,积累了大量数据的话,是可以建立模型识别是刷票行为的(至于为了点击量是否愿意做这个,或者做了这个不启用就不得而知了),小公司的话也可以用第1点做简单地判断,另外可以加验证码,增加投票时间操作,提高刷票水军的时间成本,另外验证码看多了眼睛也会花的偷笑。
延伸阅读:
最近看到网上一投票。
下载了个抓包工具
简单的抓了下数据包。。。内容如下
POST /Vote_doIP.asp HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/x-ms-application, application/x-ms-xbap,
application/vnd.ms-xpsdocument, application/xaml+xml, */*
Referer: http://show.qingdaobaby.com/Vote.asp?id=1247
Accept-Language: zh-cn
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022)
Host: show.qingdaobaby.com
Content-Length: 59
Connection: Keep-Alive
Cache-Control: no-cache
Cookie: ASPSESSIONIDQQBBTADB=GNKABLHAIHABJFEGDJBHLFAK; cnzz_a634504=4; sin634504=none; rtime=0; ltime=1322322790279; cnzz_eid=99430049-1322321123-;
oesun=vitistime=2011%2D11%2D26+23%3A52%3A15
ValidCode=G%26KG&pid=1247&Submitok=%C8%B7%C8%CF%CD%B6%C6%B1
上面是抓包工具抓到的内容。。
从上面的内容可以看出
数据接收页面是这个
http://show.qingdaobaby.com/Vote_doIP.asp
数据发送页面是
http://show.qingdaobaby.com/Vote.asp?id=1247
post的数据是 ValidCode=G%26KG&pid=1247&Submitok=%C8%B7%C8%CF%CD%B6%C6%B1 就是验证码。跟投票的编号 跟按钮的value
就这些东西
因为这个系统需要验证码 又找了下验证码的地址
http://show.qingdaobaby.com/getcode.asp
要解决的问题有
1.验证码问题
只要不第二次访问getcode.asp页面,服务器session中存的验证码不变。(有些网站比较完验证码后,不把session里的验证码清空)
2.ip地址限制问题
adsl网络换ip很容易
用web代理也可以
开发工具vs2008
主要代码
1.得到cookie的代码
public void GetSession(string url)
{
cc = new CookieContainer();
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.CookieContainer = cc;
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
cc.Add(response.Cookies);
}
2.取出当前cookie的验证码内容把它显示到 pictureBox中
string url = "http://show.qingdaobaby.com/getcode.asp";
HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;
request.CookieContainer = cc;
HttpWebResponse response = request.GetResponse() as HttpWebResponse;
System.IO.Stream responseStream = response.GetResponseStream();
this.pictureBox1.Image = Image.FromStream(responseStream);
3.可以输入验证码发送post请求了 session不过期,验证码是同一个 ,post代码
ASCIIEncoding encoding = new ASCIIEncoding();
string postData = "ValidCode=" + this.textBox2.Text + "&pid=1247";
byte[] data = encoding.GetBytes(postData);
HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create("http://show.qingdaobaby.com/Vote_doIP.asp");
myRequest.Method = "POST";
myRequest.ContentType = "application/x-www-form-urlencoded";//这个必须要加
myRequest.ContentLength = data.Length;
myRequest.Referer = "http://show.qingdaobaby.com";
myRequest.CookieContainer = cc;
Stream newStream = myRequest.GetRequestStream();
newStream.Write(data, 0, data.Length);
newStream.Close();
HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse();
StreamReader reader = new StreamReader(myResponse.GetResponseStream(), Encoding.Default);
string content = reader.ReadToEnd();
4.adsl网络下可以用dos命令rasdial 来换ip
private void com(string command)
{
System.Diagnostics.Process p = new System.Diagnostics.Process();
p.StartInfo.FileName = "cmd.exe";
p.StartInfo.Arguments = "/c " + command;
p.StartInfo.CreateNoWindow =true;
//MessageBox.Show(arg);
//下面两句必须加
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
p.Start();
string output = p.StandardOutput.ReadToEnd();
//MessageBox.Show(output);
//Console.WriteLine(output);
}
Thread.Sleep(1000);
com("rasdial \"test\" /DISCONNECT"); //断开adsl连接
Thread.Sleep(1000);
com("rasdial \"test\" XXXXXX XXXXXX"); //adsl连接名称,用户名,密码。
Thread.Sleep(10000);
5.通过代理可以用下面的代码
WebProxy proxy = new WebProxy("xxxxxxxx", 80);
request.Proxy = proxy;
使用方法 :先点“得到cookie按钮”,再点“取验证码”,在文本框里输入输入验证码后,最后点“自动投票”。