喜刷刷

原创 2006年06月14日 14:30:00

偶听网上投票,可以用某些程序疯狂刷票,遂实践之。
基本原理就是利用IE的自动化接口让程序命令IE反复的执行投票操作。
实现:
vc6下新建对话框工程,添加4个编辑框,分别对应投票地址m_strAction(如http://localhost/vote.aspx?id=1&id2=2) 
 每次投票数目m_lNumber = 20;
 每次投票时间间隔m_dwJG = 1500;
 投票时间m_lTime = 0;//<1时无限投票
添加开始/暂停投票按钮m_ok

包含头文件并引入_Module
#include <atlbase.h>
#include <atlcom.h>
#include <mshtml.h>
CComModule _Module;

//m_ok的响应函数
void CXiShuaShuaDlg::OnStart()
{
 bStart=!bStart;
 if(!bStart)
 {
  this->KillTimer(0);
  m_ok.SetWindowText("开始投票");
  return;
 }
 this->UpdateData();
 bAlert=false;
 m_ok.SetWindowText("暂停投票");
 SetTimer(0,m_dwJG,NULL);
 if(m_lTime>0) SetTimer(1,m_lTime*1000,NULL);
}
//
void CXiShuaShuaDlg::OnTimer(UINT nIDEvent)
{
 if(nIDEvent==1)
 {
  OnStart();
  KillTimer(1);
  return;
 }
 IHTMLWindow2* pHTMLWin;
 IHTMLDocument2* pHTMLDocument;
 CComPtr< IShellWindows > spShellWin;
 if ( FAILED ( spShellWin.CoCreateInstance( CLSID_ShellWindows ) ) )
 {
  if(!bAlert)
  {
   bAlert=true;
   MessageBox("获取 IShellWindows 接口错误");
  }
  return;
 }
 long nCount = 0;// 取得浏览器实例个数(Explorer 和 IExplorer)
 spShellWin->get_Count( &nCount );
 if( 0 == nCount )
 {
  if(!bAlert)
  {
   bAlert=true;
   MessageBox("没有在运行着的浏览器");
  }
  return;
 }
 CString strScript("var s,sm;");
 CString tmp;
 tmp.Format("s='f'+i;sm='fm'+i;if(typeof(document.all[s])=='undefined') document.body.insertAdjacentHTML('beforeEnd',/"<form id=/"+s+/" action='%s' target=/"+sm+/" method=post></form>/");",m_strAction);
 tmp+="if(typeof(document.all[sm])=='undefined') document.body.insertAdjacentHTML('beforeEnd',/"<iframe name=/"+sm+/"></iframe/");";
 strScript.Format("for(var i=0;i<%d;i++){%seval('f'+i+'.submit()');}",m_lNumber,tmp);
 VARIANT v;
 for(long i=0; i<nCount; i++)
 {
  CComPtr< IDispatch > spDispIE;
  if(FAILED(spShellWin->Item(CComVariant(i),&spDispIE))) continue;
  CComQIPtr< IWebBrowser2 > spBrowser = spDispIE;
  if(!spBrowser) continue;
  CComPtr < IDispatch > spDispDoc;
  if(FAILED(spBrowser->get_Document(&spDispDoc))) continue;
  CComQIPtr< IHTMLDocument2 > spDocument2 = spDispDoc;
  if(!spDocument2) continue;
  pHTMLDocument=spDocument2;
  if(FAILED(pHTMLDocument->get_parentWindow(&pHTMLWin))) continue;
  pHTMLWin->execScript(CComBSTR(strScript),CComBSTR("javascript"),&v);
 }
 CDialog::OnTimer(nIDEvent);
}
有的服务器端是通过Request.Forms['xx']或者其他方法获取数据的,此时要构造合适m_strAction句和strScript句
如此,一个简单的刷票工具就完成了

防止刷票?
1、客户端cookie,保存投票状态。这种方法最垃圾,但居然有人用。
2、服务器端记录IP地址。这种方法对局域网用户实在是非常不爽,,,
3、来源判断。防盗链的那种技术,判断提交数据的窗口地址是否为特定页面
4、要求注册为用户。这个就不说了,,
5、稍微进行点数据分析,判断是否刷票。
刷票具有的特征:
1、时间上连续不断
2、IP地址连续
3、某IP或时间段投票数目过多
对于1和2,高级的刷票程序会产生随机时间和随机IP地址进行伪装。
3虽然可以伪装,但这样一来刷票程序就失去其预料的效果(随机IP在10分钟内投1票?)。如果是不贪心的刷票程序,就只有利用专用数据工具或人工判断了

喜刷刷后台修改软件官方版V5.3.7

  • 2016年03月29日 14:53
  • 4.98MB
  • 下载

喜刷刷4——shape类—4(完成RsubC类)

小聪送给小亮和小华的形状他们都很喜欢,小亮和小华非要比一下他们两个的形状,来看看小聪更爱谁,请完成RsubC类。RsubC类中包括Rectangle类和Circle类的数据成员,新增布尔类型的数据成员...
  • cd1202
  • cd1202
  • 2015年07月06日 20:01
  • 191

6.15 喜刷刷 1 oj c 矩形的运算符重载

主页 讨论版 问题 名次 状态 统计 系统测试进行中,遇到问题,请联系:18865513850 18865550239 18865513930 18865516568 ...
  • mimgge
  • mimgge
  • 2015年06月15日 13:44
  • 178

喜刷刷2——构造函数与析构函数

在建立类对象时系统自动该类的构造函数完成对象的初始化工作, 当类对象生命周期结束时,系统在释放对象空间之前自动调用析构函数。此题要求: 根据主程序(main函数)和程序执行结果,结合构造函数和析构函数...
  • cd1202
  • cd1202
  • 2015年07月10日 19:06
  • 260

【千里码】Task34-喜刷刷

计算一个验证码,他是一个自然数x,能使 md5(当天日期+你的用户名+当前的票数+x)的前6位都是0 举例: 假如2015年12月4号食年已经拿到了1014票,当你想投第1015票的时候,你的验证码...

当你喜刷刷时,你可知为何朋友圈能这么流畅?

朋友圈已让人欲罢不能。有人说,早上睁眼第一件事情,是刷朋友圈;晚上睡觉最后一件事情,还是刷朋友圈。 这背后是海量的信息数据和查看请求。如此庞杂的数据,微信却做到了流畅的体验,一切井然有序,刷一下就搞定...
  • wonxxx
  • wonxxx
  • 2016年10月24日 21:21
  • 383

5860+线刷刷机教程.pdf

  • 2012年12月28日 13:49
  • 370KB
  • 下载

htc raph直刷刷机教程--wuxinxinggg

  • 2011年12月24日 14:52
  • 41KB
  • 下载

android项目《刷刷手环》代码review

很多程序猿可能会和我一样,当公司开发项目时,完成功能是第一位,从而总会出现这样的话,这里应该可以写的更好,下版本再说。最近项目接近尾声,感觉需要重新审视一下这个项目,这应该是提升自己和优化项目的最好的...

12313154135刷刷刷

  • 2010年03月14日 00:37
  • 54KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:喜刷刷
举报原因:
原因补充:

(最多只允许输入30个字)