前些天领导让我们在网站上投票提高他的排名,可是每人投一票才100多票。过了几天领导问我会不会做个刷票程序,提高排名,我说可以试试,研究了一天,终于做出来了,兴奋的我一晚上没睡着。现在拿出来分享一下。
说白了我做的其实就是个批处理文件,批处理扩展名为.bat,其实那个投票页面只是用session去控制是否投票,众所周知,session变量在IE关闭后就会自动消失,重新打开页面时又会创建一个新的连接,这就可以重复投了,这个页面是用的AJAX,我找到ajax所在的JS,把它的真正的投票页面找出来,把ID通过页面传入,实现投票。目前要做的就是自动打开IE连接投票页,然后自动断开,自动再连,从而实现重复投票。
这个投票网站有两个致命点,一是投票不进行IP控制而用session服务端控制 ,导致可以用一个IP重复投票,二是实际投票处理页面的参数是通过GET方式进行传输,这就会导致作弊的可能。
通过利用以上两个漏洞,我做也了一个bat批处理,如下:
@echo off
echo 正在关闭冗余进程,请稍等......
taskkill /f /im iexplore.exe
echo -------------程序初始化完毕,请指示!----------
echo. & pause
:openie
echo 正在投票,请稍等......
start "" "C:\Program Files\Internet Explorer\iexplore.exe"
echo IE打开完成!
ping 127.0.0.1 -n 2
taskkill /f /im iexplore.exe
echo 延时2秒关闭投票完成!
goto openie
echo. & pause
关键点解释:
taskkill /f /im iexplore.exe 强制关闭IE进程,当然也可以关闭其它进程,关于进程名,可以通过任务管理器查到。
start "" "C:\Program Files\Internet Explorer\iexplore.exe" 这个是打开一个windows程序,注意路径,注意 start 后边的 "" 一定不要丢掉。
ping 127.0.0.1 -n 2 用这个是来延时的 ,大家都知道bat批处理的延时执行太麻烦,这样来的简洁一些,需要注意的是 一定要ping 本地 127.0.0.1 ,否则可能导致记时长度不同,-n 2 的意思是重复两次,太约为2秒,当然时长可调,只要调数字即可。
重点:bat批处理的无限循环。:openie 的意思是设置一个点,这个可以随意,任何字母组合都行,不要与关键词重复。 goto openie 的意思是返回 前边设置的那个点 openie ,设置的返回点前后一定要对应。
现在你可以把以上代码复制到 一个文本文档中,一定要把扩展名改为.bat ,.bat 是批处理的标准扩展名。当然98的一个很经典的程序是autoexec.bat 相信很多过来人都听说过,感兴趣的可以百度一下。当然你也可以举一返三,来开启或结束其它程序的进程。
有什么不会的可以Q本人,QQ号在页面底部右边,共同提高共同进步,呵呵
以下这个程序是从网上找的,可以参拷,具体知道是干什么的,有些地方还没看明白,如果你的领悟能力高的话自己研究吧!
提示:以下这个程序是监控一个进程是否存在,如果不存在则启动,如果进程丢失也启动,即让程序永远运行!
@echo off
set _task=notepad.exe
set _svr=c:\windows\notepad.exe
set _des=start.bat
:checkstart
for /f "tokens=5" %%n in ('qprocess.exe ^| find "%_task%" ') do (
if %%n==%_task% (goto checkag) else goto startsvr
)
:startsvr
echo %time%
echo ********程序开始启动********
echo 程序重新启动于 %time% ,请检查系统日志 >> restart_service.txt
echo start %_svr% > %_des%
echo exit >> %_des%
start %_des%
set/p=.
for /L %%i in (1 1 10) do set /p a=.nul
echo .
echo Wscript.Sleep WScript.Arguments(0) >%tmp%\delay.vbs
cscript //b //nologo %tmp%\delay.vbs 10000
del %_des% /Q
echo ********程序启动完成********
goto checkstart
:checkag
echo %time% 程序运行正常,10秒后继续检查..
echo Wscript.Sleep WScript.Arguments(0) >%tmp%\delay.vbs
cscript //b //nologo %tmp%\delay.vbs 10000
goto checkstart