找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 23616|回复: 2

[特效代码] [分享]百度抢红包BAT代码

[复制链接]
发表于 2013-2-15 15:35:31 | 显示全部楼层 |阅读模式
本人刷了2万多次,只抢到20个中粮我买网的10元券,灰心了...

各位谁运气好的不妨试试,今天最后一天。
奖品信息存储在prize.txt中,拿奖需要自己设置个WEB服务器返回中奖的JSON,或者通过fidder调试来更改网页响应。
prizeid:215 就是中粮券,中这个的就不用麻烦了。

请注意 :main 之前的设置说明,否者奖品刷给别人了。
如果不想充值,通过第三方验证码输入,可以将 call :yzm 这一行注释掉,把call :inyzm 注释去掉
  1. @echo off
  2. setlocal ENABLEDELAYEDEXPANSION
  3. ::本机代理,测试用 set "daili=-x 127.0.0.1:8888"

  4. md log  >nul 2>nul

  5. set ag=-A  "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0; BOIE9;ZHCN)"

  6. ::填入www.yambuy.com注册的账号,密码
  7. set yzmuser=user
  8. set yzmpass=pass
  9. ::填入手机号码
  10. set phone=13712345678
  11. ::起始日期
  12. if EXIST log.log (
  13.         set /p Bday=<log.log
  14. ) else (
  15.         set Bday=1980-01-20
  16. )
  17. ::循环多少次日期,数字越大,持续时间越长。每增加1,大约刷红包55次。
  18. set max=1000
  19. :loop
  20. set /a k+=1
  21. for /f "skip=2 tokens=1-3 delims=年月日 " %%a in ('Calendar /A !Bday! 00:00:00 1 00:00:00') do (
  22.         set /a yy=%%a,mm=%%b+100,dd=%%c+100
  23.         set "Bday=%%a-%%b-%%c"
  24.         set "nday=!yy!!mm:~-2!!dd:~-2!"
  25. )
  26. echo,!Bday!>log.log
  27. if !k! geq !max! exit

  28. :main
  29. conset /d @  >nul
  30. conset /d _  >nul
  31. set "@phone=!phone!"
  32. set "@birth=!nday!"
  33. call :putUser
  34. ::call :search
  35. call :topic
  36. call :lottery
  37. echo,!nday!
  38. call :拿奖 && goto :loop
  39. echo,!@wish!
  40. echo,剩余抽奖次数:!@count!
  41. if !@count! geq 1 (
  42.         goto :main
  43. ) else (
  44.         goto :loop
  45. )
  46. goto :eof


  47. :putUser
  48. echo,验证用户...
  49. 2>nul curl !ag!  !daili!  -b cookies.txt -c cookies.txt -d "phone=!@phone!&birth=!@birth!&validcode=!@validcode!&valid=!@valid!&_r=0.7948380977831662" -e http://www.baidu.com/chunjie/show/welcome http://www.baidu.com/chunjie/submit/checkusr |iconv -f utf-8 -c|conset _rjson=
  50. for /f "tokens=2-7 delims={}:," %%a in ('conset /v _rjson') do  (
  51.         if %%b=="4001" echo,"生日错误!"
  52.         if %%b=="4002" echo,"手机号错误!"
  53.         if %%b=="4003" (
  54.                 echo,"验证码错误!";
  55.                 if DEFINED @valid call :codeerr
  56.                 call :getCoed
  57.                 call :putUser
  58.         )
  59.         if %%b=="5001" echo,"unable"
  60.         if %%b=="6001" echo,"系统繁忙,请稍后再试^_^"
  61.         if %%b=="0" (
  62.                 set /a auto=0
  63.                 echo,验证成功,得到搜索字串..
  64.                 call :stv %%c %%d
  65.                 call :stv %%e %%f
  66.         )
  67. )
  68. set "@cookie=CJKEY=!@key!;CJEGG=1;CJPHONE=!@phone!;CJBIRTH=!@birth!"
  69. goto :eof



  70. :getCoed
  71. echo,获取验证码...
  72. 2>nul curl !ag!  !daili!  --cookie "!@cookie!" -b cookies.txt "http://www.baidu.com/chunjie/data/valid?phone=!@phone!&birth=!@birth!&_r=0.2951152564330317" |conset _rjson=
  73. for /f "tokens=1-3 delims={}," %%a in ('conset /v _rjson') do  (
  74.         for /f "tokens=1,2 delims=:" %%A in ("%%a") do (
  75.                 call :stv %%A %%B
  76.         )
  77.         for /f "tokens=1,2 delims=:" %%A in ("%%b") do (
  78.                 call :stv %%A %%B
  79.         )
  80.         for /f "tokens=1* delims=:" %%A in ("%%c") do (
  81.                 call :stv %%A %%B
  82.         )
  83. )
  84. 2>nul curl !ag!  !daili!  "!@validUrl!" >code.jpg
  85. ::call :inyzm  这里是手动输入验证码,启用去掉该行::注释即可,把下一行前加上::
  86. call :yzm || echo,自动验证失败!
  87. goto :eof


  88. :search   该段代码已经可以省略 ,仅供参考
  89. echo,开始搜索,取得cookie...
  90. for /f "delims=" %%a in ('echo,!@query!^|urlencode.bat') do set "@query_URL=%%a"
  91. 2>nul curl !ag!  !daili! -I  -c cookies.txt -e "http://www.baidu.com/chunjie/show/welcome"  "http://www.baidu.com/s?bhjc=zl&wd=!@query_URL!" |findstr "Set-Cookie"|conset @Set-Cookie=
  92. for /f "tokens=1* delims=:" %%a in ('conset /v @Set-Cookie') do (
  93.         for /f "tokens=1 delims=; " %%A in ("%%b") do (
  94.                 set @%%A
  95.                 set "@cookie=!@cookie!;%%A"
  96.         )
  97. )
  98. goto :eof

  99. :topic   获取礼品用的key
  100. echo,获取KEY...
  101. 2>nul curl !daili!  -H "Cookie: !@cookie!" --cookie "!@cookie!" -c cookies.txt -e "http://www.baidu.com/s?bhjc=zl&wd=!@query!" http://www.baidu.com/chunjie/show/topic >topic.txt
  102. cut topic.txt  {errNo });|conset @top=
  103. set @top=errNo!@top!
  104. for %%a in (!@top!) do (
  105.         for /f "tokens=1,2 delims=:" %%A in ("%%a") do (
  106.                 call :stv top_%%A %%B
  107.         )
  108. )       
  109. goto :eof


  110. :lottery
  111. echo,获取礼品...
  112. set /a ff=0
  113. 2>nul curl !daili!  -H "Cookie: !@cookie!" --cookie "!@cookie!" -c cookies.txt -d "key=!@top_nextKey!&key1=areyoucheating&_r=0.8628629175014569"  -e   http://www.baidu.com/chunjie/show/topic http://www.baidu.com/chunjie/submit/lottery|iconv -f utf-8 -c|conset @prize=
  114. set @prize=!@prize::{=!
  115. set @prize=!@prize:{=!
  116. set @prize=!@prize:}=!
  117. set @prize=!@prize: =!
  118. for %%D in (!@prize!) do (
  119.         for /f "tokens=1,2 delims=:" %%a in ("%%D") do (
  120.                 call :stv %%a %%b
  121.         )
  122. )
  123. goto :eof

  124. :拿奖
  125. if not "!@prizeid!"=="" (
  126.         msg * "你中奖了!注意拿奖!"
  127.         echo,================================>>prize.txt
  128.         set @>>prize.txt
  129.         echo,================================>>prize.txt
  130.         exit /b 0
  131. )
  132. exit /b 1


  133. :stv  解析JSON,创建变量
  134. set "@%~1=%~2"
  135. goto :eof


  136. :yzm  自动验证码识别,这里调用了 www.yzmbuy.com 的第三方验证码输入平台。
  137. echo,正在上传验证码...
  138. 2>nul curl -F "info[lz_user]=!yzmuser!" -F "info[lz_pass]=!yzmpass!" -F "imagepath=@code.jpg;type=image/pjpeg" -F "pesubmit=" http://api.yzmbuy.com/index.php/demo |conset _rjson=
  139. for /f  "tokens=9 delims==<'/" %%a in ("!_rjson!") do (
  140.         set "@cdid=%%a"
  141. )
  142. set /a cs=0
  143. :getyzm  取得验证码结果
  144. set /a cs+=1
  145. 2>nul curl "http://api.yzmbuy.com/index.php?mod=demo&act=result&id=!@cdid!" |conset _rjson=
  146. for %%A in (!_rjson!) do (
  147.         set _rjj=%%A
  148.         set _rjj=!_rjj::= !
  149.         call :stv !_rjj!
  150. )
  151. ping -n 2 127.1 >nul
  152. if !cs! geq 10 exit /b 1
  153. if "!@result!"=="null" goto :getyzm
  154. if "!@result!"=="" goto :getyzm
  155. set "@valid=!@result!"
  156. copy code.jpg "log\!@result!_!@damaworker:~0,-2!.jpg"  >nul
  157. echo,自动识别验证码结果:!@result!
  158. exit /b 0

  159. :codeerr  验证码错误则记录。
  160. ren "log\!@result!_!@damaworker:~0,-2!.jpg" "!fail_@result!_!@damaworker:~0,-2!.jpg"
  161. goto :eof

  162. :inyzm
  163. set /p @valid=请输入验证码:
  164. goto :eof
复制代码

评分

参与人数 1技术 +1 收起 理由
Batcher + 1 感谢分享

查看全部评分

 楼主| 发表于 2013-2-15 15:41:14 | 显示全部楼层
本帖最后由 caruko 于 2013-2-15 15:52 编辑

因为使用了很多第三方命令行工具,附上网盘地址

网盘中没有 手动输 验证码的代码,将1楼的代码复制到QHB.BAT中即可。

http://pan.baidu.com/share/link?shareid=277021&uk=3003494867
发表于 2013-2-27 02:49:42 | 显示全部楼层
呵呵 果然强悍啊 支持!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-20 04:29 , Processed in 0.019565 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表