领导测试软件测试网

免责声明:纯技术交流,请勿用于其他目的!!

文中讨论的技术的应用范围似乎比较广,不仅为这些相对否定的应用投票,还可以完成手动填表、手动申请邮箱、网站注册等功能。

这里提供了两种方式:

方式一:通过IE控件提供的COM套接字实现。这些方法都是通过来编辑web表单(有时要修改web代码),然后触发提交web页面的风暴。因为这些方法使用的是IE控件,所以打开网页时会下载很多与应用无关的数据,比如图片等(其实IE中可以关闭图片等选项),效率很低,你必须为每一票投票。打开一个IE控件,如果你的机器比较差,等着按Reset~~。另外,这些方法编码比较多,很烦人。

方法二:通过API实现表单提交工作。这些方法比上述技术要复杂得多,不仅执行效率高、资源消耗少,而且具体实现也比前一种简单。

这两种方法描述如下:

方法一:通过IE控件提供的COM套接字实现

1、我的程序是基于对话框的,没有用到,所以我必须先在对话框上放一个IE控件(上面有web浏览器),并给这个IE控件起个名字,比如。另外,记得添加头文件,来自IECOM套接字的所有东西都放在上面。如果没有,请添加它。

2、使用响应加入风暴,这样页面下载完成后,就可以做填表等工作了。其实你也可以在这样的风暴中进行这种操作,但是接下来你要判断网页是否快要下载到合适的位置了。如果想省事,直接用就行了。

3、下一步就是使用这个控件打开目标网页。您可以决定何时打开它。我在上面打开它。代码如下:

vaUrl="";

.(&vaUrl,&,&,&,&);

其中哪个用作默认参数。

4、 然后是主要操作。这个操作就放进去了,为了方便,我写了几个函数来完成具体的功能。在具体说明中执行的操作之前,我先解释一下这些功能。

//功能:判断网页中是否有指定元素

//:: 网页中所有元素的集合

//: 网页中元素的id或名称

布尔(开*,)

{

;

->item((),((long)0),&pDisp);

如果(pDisp==NULL)

错误的;

别的

真的;

}

//功能:在网页的文本框中输入字符串

//:: 网页中所有元素的集合

//: 要编辑的文本框的 id 或名称

//: 在文本框中写什么

无效(开*,,)

{

显示;

->item((),((long)0),&pDisp);

;

如果(pDisp==NULL)

{

(+"未找到!");

}

别的

{

=pDisp;

->(.());

}

}

//功能:为网页提交表单

//:: 网页中所有元素的集合

//: 可以提交Form的按钮的id或者名称(也可以直接提交Form)

无效(开*,)

{

;

->item((),((long)0),&pDisp);

;

如果(pDisp==NULL)

{

(+"未找到!");

}

别的

{

=pDisp;

->点击();

}

}

//功能:选择其中一个网页(当然是点击)

//:: 网页中所有元素的集合

//: 要选择的 id 或名称

无效(开*,)

{

显示;

->item((),((long)0),&pDisp);

;

如果(pDisp==NULL)

{

(+"未找到!");

}

别的

{

=pDisp;

->点击();

}

}

使用这些功能可以轻松完成投票操作。下面列出的代码。

还假设投票页面是,数据提交到/vote2.asp

空白::()

{

//TODO:在此处添加您的代码

开*=空;

*=空;

,;

=.();//获取当前网页的URL

如果(。())

;

=(*).();//从控件中获取插座针

亚洲十大男神2016投票作弊_投票作弊软件_投票作弊软件

->(&);//获取网页所有元素的集合

//因为这个函数会在所有页面下载完成后执行,所以消息的来源页面必须根据URL来确定

如果(=="")

{

;

if((,"")==true)//投票选项所在的表格

{

->item((""),((long)0),&pDisp);

;

如果(pDisp==NULL)

{

//获取套针失败,程序结束,不做额外处理。原因见下文。

(IDOK);

;

}

别的

{

//如果投票结果是在新窗口中打开,网页代码要改成在这个控件中显示结果

=pDisp;

->(("_self"));//等价于="_self"

->(("投票2.asp"));//等价于="投票2.asp"

}

(,"chk2");//在表格中选择chk2的id

(,"vote");//提交网页,vote是按钮的id或者名字

}

}

(=="")

{

(IDOK);//如果投票处理页面已经下载,则结束程序,原因见下。

}

}

既然已经投了票,但是看完流程,你可能会疑惑,为什么要在投票后结束流程或者中间有错误,而不是继续投票呢?事情是这样的,有些网站只能投一票,并且在创建一个IE控件并连接到服务器后(用它),设置了key的种类(一家之言),所以如果你继续使用这个 IE 控件进行投票,服务器会告诉你已经投票了(其实如果投票程序写的很笨,忽略这个会容易很多)。本来想通过分析API的运行过程来处理这个问题,觉得很麻烦,于是就用了一个很笨但是很简单的方法:把投票程序当成程序,然后另一个程序调用这个投票程序,在投票过程结束后,主程序再次运行投票过程,以此类推。至于投票程序数量限制之类的,使用共享显存段是最简单的(一家之言),这里就不多说了。

方法二:通过API实现表单提交

这些方法实现的代码量非常小,但是因为不需要下载太多无用的数据(比如图片等),而且表单所在的页面也不需要下载,所以效率是高得多。另外,实现代码是一个函数,非常适合使用。在线程中。

使用这些技术的关键是知道应该向服务器提交哪些数据。如果你自己看网页文件,那么分析哪些数据应该提交给服务器。如果网页很简单投票作弊软件,几乎是一样的。. 既然不是考试,我们就不会那样做。现在有一个更简单的方法,就是使用下面的网络监视器手动投票,看看有哪些数据提交到服务器。这样我们就可以复制属于HTTP合约的部分数据了。直接从监视器复制的数据不能使用,因为监视器显示的部分文本中的回车换行等字符被小数点替换,这部分必须改回原来的回车和换行。(HTTP后面的部分可以忽略,只要你能区分边界)。另请注意,提交信息中可能存在-此信息。如果更改了提交数据的内容,并且数据宽度发生了变化,那么-item的值也必须相应的改变。比如-原来的值为100,数据中有一个数据“1”,你现在改成“12”,那么-一定要改成101,否则服务器会报错。

下面列出了投票功能:

()

{

;

.++;//用于记录投票线程数

尝试

{

*=.("");//网站服务器

*pFile=->(::,"vote2.asp");//直接提交数据到投票处理页面

//在下面提交的数据中添加HTTP头,可以通过网络监视器获取

pFile->(":image/gif,image/x-,image/jpeg,image/pjpeg,/vnd.ms-,/vnd.ms-excel,/,*/*");

pFile->(":");

pFile->("-:zh-cn");

pFile->("-Type:/form-data;=----------------------------");

pFile->("-:gzip,");

pFile->("用户代理:/4.0(;MSIE5.01;NT5.0)");

pFile->("-:1351");

pFile->(":Keep-Alive");

pFile->("缓存-:无缓存");

//真正的数据应该在HTTP头的旁边,要提交的数据在下面。服务器处理返回的信息在pFile中

pFile->(NULL,0,..(0),..());//提交所有数据

//虽然这里的投票已经结束了,但是如果想看结果,可以分析返回的页面,获取一些数据

char[11001];//用来存放返回的处理页,多大视实际情况而定。其实也可以动态分配,如果不是太累的话

=pFile->Read(,11000);//读取返回的内容,虽然是投票结果页面的html代码

[nLen]=0;

=;//其实用的有点过头了,不过用起来很方便,呵呵~

pFile->Close();//读取数据后,关闭所有应该关闭的东西

->关闭();

p文件;

;

。关();

//下面的代码是用来分析HTML代码得到你感兴趣的数据的投票作弊软件,跟投票无关,就不详细解释了。

=.Find("选项 A");

诠释=nPos;

如果(nPos==-1)

{

.--;

0;

}

nPos=.Find("=100>",nPos)+36;

int=.Find("票",nPos);

=atoi(.Mid(nPos,-nPos));

nPos=.Find("

1

");

nPos=.Find("=100>",nPos)+36;

=.Find("票",nPos);

=atoi(.Mid(nPos,-nPos))-;

++;

}

抓住(...)

{

}

.--;

0;

}

如您所见,关键代码只有几行。如果不分析投票结果,比一技能少很多,但看起来没有一技能那么乱。不过,这些方法也有方法一中提到的那种重复问题。当我尝试时,新打开的线程也会重复。所以恐怕Key的种类是根据ID来确定的(一家之言,欢迎大家讨论)。但是,如果同时启动N个线程,则所有N个线程都可以成功投票,而不用说“你已经投票了”。恐怕因为这个信息是同时提交的,服务器在处理一个似乎已经投票的消息时并不知道。不知道是不是这个原因,大家可以讨论一下。

这就是两种投票方式。我的水平真的很一般,所以如果文章有错误,请不要嘲笑他们。我将强调错误并一起讨论。另外,希望大家讨论一下文章中提到的问题。

另一个小广告:呵呵~~

峰会亮点