喜刷刷

原创 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票?)。如果是不贪心的刷票程序,就只有利用专用数据工具或人工判断了

喜刷刷

二进制中1的个数 int numberOf1(int num) { int i=1; int count=0; while(i) { if(num&i) { count++; ...
  • u012409883
  • u012409883
  • 2015年03月09日 21:53
  • 458

【千里码】Task34-喜刷刷

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

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

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

BUPT training: 5.14喜刷刷 总结

The 13th Zhejiang University Programming Contest 先回忆一下……
  • u010638776
  • u010638776
  • 2013年05月27日 23:47
  • 581

【LeetCode】Jump Game 解题报告

【题目】 Given an array of non-negative integers, you are initially positioned at the first index of t...
  • ljiabin
  • ljiabin
  • 2014年12月09日 09:59
  • 6101

6.15 喜刷刷1 oj 数组输出

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

6.15 喜刷刷 oj 1 b 矩形类定义

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

喜刷刷5——学生信息的输入与输出

阅读并修改以下程序,实现学生信息的输入和输出。 #include #include #include using namespace std; class Student {...
  • cd1202
  • cd1202
  • 2015年07月06日 18:30
  • 340

6,15 喜刷刷oj 1 j 复数类 重载运算符+

题目描述 定义一个复数类Complex,重载运算符“+”,使之能用于复数的加法运算。将运算符函数重载为非成员、非友元的普通函数。编写程序,求两个复数之和。 输入 两个复数 输出...
  • mimgge
  • mimgge
  • 2015年06月15日 12:56
  • 204

6.15 喜刷刷 1 oj 1 对象数组中的最大值

主页 讨论版 问题 名次 状态 统计 系统测试进行中,遇到问题,请联系:18865513850 18865550239 18865513930 18865516568 ...
  • mimgge
  • mimgge
  • 2015年06月15日 13:49
  • 191
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:喜刷刷
举报原因:
原因补充:

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