Board logo

标题: [数值计算] 【Warning:此贴已经过气】【挑战】用任何语言在猜数游戏作弊 [打印本页]

作者: bbaa    时间: 2017-7-1 21:09     标题: 【Warning:此贴已经过气】【挑战】用任何语言在猜数游戏作弊

本帖最后由 bbaa 于 2017-7-27 17:20 编辑

【此贴已经过气】


把算法代码发到楼下吧!
挑战地址:bbaass.tk
API:http://bbaass.tk/math/
POST:
注册:
send:"reg",
username:username
发送答案:
send:"Answer",
mathint)答案,
username:username
Return:Json
code => 200
re => ">" or "<" or "=" [=代表正确]
tokens => 本局tokens [如果tokens变化代表,本局结束 开始下一局]
winer => 上局赢家[可以知道谁抢了你的题目]

添加Token可以检测数值变更本来就有但是我忘了.....


活动:7:30P.M清档比赛10分钟后第一者给2.99元[已结束][QQ]恭喜happy886rr

应某人要求... 17-7-19 13点更改
感谢下方大佬捧场

一小时战况:

半小时战况:

十分钟战况:

一分钟战况:

数值总榜

作者: codegay    时间: 2017-7-1 23:05

你这自动请求的频率有点高啊。

我开了有一会刚好数据库500错误了。不知道有没有关系。
作者: bbaa    时间: 2017-7-1 23:15

回复 2# codegay


    500是接收到错误数据返回
  1. if (empty($json["Username"][$Username])) {if ($_POST["send"]!=="reg") {die (header("HTTP/1.1 500 Internal Server Error"));}}
复制代码

作者: 老刘1号    时间: 2017-7-2 09:27

本帖最后由 老刘1号 于 2017-7-2 11:12 编辑

先来个暴力枚举(VBS):
  1. With CreateObject("MSXML2.XMLHTTP")
  2. .Open "POST", "http://bbaass.tk/math/", False
  3. .setRequestHeader "CONTENT-TYPE","application/x-www-form-urlencoded"
  4. .Send "send=reg&username=老刘"
  5. End With
  6. For i = 1 to 100
  7. If math(i) = "=" then msgbox "Win!The number is "&i
  8. next
  9. Function Math(num)
  10. With CreateObject("MSXML2.XMLHTTP")
  11. .Open "POST","http://bbaass.tk/math/", False
  12. .setRequestHeader "CONTENT-TYPE","application/x-www-form-urlencoded"
  13. .send "send=Answer&math=" & num & "&username=老刘"
  14. Math = Split(Split(.responseText,",")(2),"""")(3)
  15. End With
  16. End Function
复制代码

作者: codegay    时间: 2017-7-2 10:57

回复 4# 老刘1号


    我用你的程序跑出一个,你的用户名下成功率没有+1啊。
作者: bbaa    时间: 2017-7-2 11:10

回复 4# 老刘1号


下面Username 应为 username
作者: 老刘1号    时间: 2017-7-2 11:12

回复 6# bbaa
回复 5# codegay

    晕,我说嘛
作者: codegay    时间: 2017-7-2 11:21

无脑暴力比较好写。
  1. # -*- coding: utf-8 -*-
  2. """
  3. Created on 2017-07-02 02:21:10
  4. @author: codegay
  5. python3 & 编辑器 == spyder
  6. """
  7. import requests
  8. apiurl = "http://bbaass.tk/math/"
  9. math = 50
  10. data = {
  11.         'send': 'Answer',
  12.         'username': 'codegay',
  13.         'math': math,
  14.         }
  15. session = requests.Session()
  16. while True:
  17.     for r in range(1, 101):
  18.         data['math'] = r
  19.         post = session.post(apiurl, data=data)
  20.         re = post.json()['re']
  21.         if re == '=':
  22.             break
复制代码

作者: 老刘1号    时间: 2017-7-2 11:35

本帖最后由 老刘1号 于 2017-7-2 17:56 编辑

取平均数递归法
在19楼是最新的防溢出与更改的版本:http://www.bathome.net/redirect.php?goto=findpost&ptid=44616&pid=200845
作者: happy886rr    时间: 2017-7-2 11:54

回复 9# 老刘1号
算法有问题,这不是正宗的二分,是递归。
作者: codegay    时间: 2017-7-2 12:02

回复 10# happy886rr


   有空来写一个看看。我不会写呢。
作者: 老刘1号    时间: 2017-7-2 12:26

本帖最后由 老刘1号 于 2017-7-2 17:57 编辑

回复 10# happy886rr


    改进了下,欢迎测试
作者: codegay    时间: 2017-7-2 12:32

程序是不是崩了。一直返回500
作者: 老刘1号    时间: 2017-7-2 12:47

回复 13# codegay


    确实崩了,楼主说的……
vbs表示下标越界
作者: happy886rr    时间: 2017-7-2 13:01

本帖最后由 happy886rr 于 2017-7-2 15:08 编辑

回复 11# codegay
在你的requests.Session()基础上改的。(外链效果图)
  1. import requests
  2. # 用户信息
  3. userNAMZE='Psaa'
  4. # 主机地址
  5. hostURL='http://bbaass.tk/math/'
  6. # 提交数据
  7. postDATA={'send':'Answer', 'username':userNAMZE, 'math':50}
  8. # 注册用户名
  9. requests.Session().post(hostURL, {'send':'reg', 'username':userNAMZE})
  10. # 辗转移位
  11. def GuessFun(mathMIN, mathMAX):
  12. # 搜索次数
  13. searchTIMES=0
  14. while mathMAX-mathMIN >1:
  15. postDATA['math'] = (mathMAX+mathMIN)>>1
  16. searchTIMES +=1
  17. print("The %d times"%(searchTIMES))
  18. r = requests.Session().post(hostURL, postDATA).json()
  19. ret = r['re']
  20. if ret == '=':
  21. break
  22. elif ret == '<':
  23. mathMIN=postDATA['math']
  24. else:
  25. mathMAX=postDATA['math']
  26. return searchTIMES
  27. # 打印结果
  28. if __name__ == "__main__":
  29. searchTIMES = GuessFun(-1, 101)
  30. print("Search times: %d\nGuess the number: %d"%(searchTIMES, postDATA['math']))
复制代码

作者: bbaa    时间: 2017-7-2 13:04

回复 15# happy886rr


    排查完毕
作者: bbaa    时间: 2017-7-2 13:39

本帖最后由 bbaa 于 2017-7-2 14:07 编辑

回复 14# 老刘1号


    之前崩的原因是有个空用户名的家伙........
  1. unset($json["Username"][""]);
复制代码

作者: codegay    时间: 2017-7-2 14:06

回复 17# bbaa


    举手,我干过。
作者: 老刘1号    时间: 2017-7-2 14:25

本帖最后由 老刘1号 于 2017-7-2 18:02 编辑

回复 1# bbaa
回复 18# codegay
回复 15# happy886rr
取平均数递归法,最多计算6次就可得出结果
欢迎测试~(存Bat)
  1. '&cls&@echo off&cscript -nologo -e:vbscript "%~0"&pause&exit
  2. With CreateObject("MSXML2.XMLHTTP")
  3. .Open "POST", "http://bbaass.tk/math/", False
  4. .setRequestHeader "CONTENT-TYPE","application/x-www-form-urlencoded"
  5. .Send "send=reg&username=老刘"
  6. End With
  7. Do
  8. Bisection -1,101,0
  9. Loop
  10. Sub Bisection(low,high,s)
  11. Mid_=(High+Low)\2
  12. if s<=7 then
  13. Select Case Cstr(Math(Mid_))
  14. Case "="
  15. wscript.echo "Win!The number is "&Mid_
  16. Case ">"
  17. WScript.Echo ">,so try "&Low&","&Mid_
  18. Bisection Low,Mid_,s+1
  19. Case "<"
  20. WScript.Echo "<,so try "&Mid_&","&High
  21. Bisection Mid_,High,s+1
  22. End Select
  23. end if
  24. End Sub
  25. Function Math(num)
  26. With CreateObject("MSXML2.XMLHTTP")
  27. .Open "POST","http://bbaass.tk/math/", False
  28. .setRequestHeader "CONTENT-TYPE","application/x-www-form-urlencoded"
  29. .send "send=Answer&math=" & num & "&username=老刘"
  30. Math = Split(Split(.responseText,",")(2),"""")(3)
  31. End With
  32. End Function
复制代码

作者: happy886rr    时间: 2017-7-2 15:12

回复 19# 老刘1号
不过偶尔还会出现下标越界。而且有几次计算了20多次才猜中正确的数,你的算法还不是标准二分,比较费内存。如果是猜测1到10000之内的数,你的程序就非常缓慢。 把那个递归取消了,有递归的都不是标准二分。
作者: 老刘1号    时间: 2017-7-2 17:44

本帖最后由 老刘1号 于 2017-7-2 17:55 编辑

回复 20# happy886rr


    嗯,猜20多次是因为服务端数字变更了(正常最多7次)
下标越界是服务器没返回JSON,导致无法分割得到符号
尴尬的是,0和100不在范围里面(失误,已修正)……
总之就是递归然后除2取整
当时一脑抽就用的递归而不是循环╮(╯_╰)╭
算是自己研发的变种了吧
感谢大佬鼓励<v<
作者: bbaa    时间: 2017-7-2 18:11

回复 19# 老刘1号


    添加tokens具体看 1#
作者: 老刘1号    时间: 2017-7-2 18:15

回复 22# bbaa


    晕,早说啊
算了,就酱紫吧~
懒得动手了~
作者: reKonquer    时间: 2017-7-2 18:47

本帖最后由 reKonquer 于 2017-7-2 18:49 编辑

回复 1# bbaa


    来个高级的 用到了okhttp,gson
  1. package com.rekonquer.math;
  2. import com.google.gson.Gson;
  3. import okhttp3.*;
  4. import java.io.IOException;
  5. /**
  6. * Author: MagicDroidX
  7. */
  8. public class Main {
  9.     public static OkHttpClient HTTP_CLIENT;
  10.    
  11.     public static String token = null;
  12.     public static int min = 1;
  13.     public static int num = 50;
  14.     public static int max = 100;
  15.     public static void main(String[] args) throws IOException {
  16.         HTTP_CLIENT = new OkHttpClient.Builder()
  17.                 .build();
  18.         while (true) {
  19.             AnswerRequest request = new AnswerRequest();
  20.             request.math = num;
  21.             Response response = HTTP_CLIENT.newCall(
  22.                     new Request.Builder()
  23.                             .url("http://bbaass.tk/math/index.php")
  24.                             .post(new FormBody.Builder()
  25.                                     .add("send", "Answer")
  26.                                     .add("username", "reKonquer")
  27.                                     .add("math", String.valueOf(num))
  28.                                     .build()
  29.                             )
  30.                             .build()
  31.             ).execute();
  32.             if (!response.isSuccessful()) {
  33.                 continue;
  34.             }
  35.             AnswerResponse answer;
  36.             try {
  37.                answer = new Gson().fromJson(response.body().string(), AnswerResponse.class);
  38.             } catch (Exception e) {
  39.                 continue;
  40.             }
  41.             if (answer == null) {
  42.                 continue;
  43.             }
  44.             if (token == null || token.equals(answer.tokens)) {
  45.                 token = answer.tokens;
  46.                 switch (answer.re) {
  47.                     case ">": {
  48.                         System.out.println(num + " 小了");
  49.                         max = num;
  50.                         break;
  51.                     }
  52.                     case "<": {
  53.                         System.out.println(num + " 大了");
  54.                         min = num;
  55.                         break;
  56.                     }
  57.                     case "=":
  58.                     default: {
  59.                         System.out.println("正确答案:" + num);
  60.                         token = null;
  61.                         continue;
  62.                     }
  63.                 }
  64.                 num = (int) ((min + max) / 2d);
  65.             } else {
  66.                 if (answer.re.equals("=")) {
  67.                     System.out.println("正确答案:" + num);
  68.                 }
  69.                 System.out.println("新的一局:" + token + " => " + answer.tokens);
  70.                 min = 1;
  71.                 max = 100;
  72.                 num = 50;
  73.                 token = answer.tokens;
  74.                 continue;
  75.             }
  76.         }
  77.     }
  78. }
  79. package com.rekonquer.math;
  80. /**
  81. * Author: MagicDroidX
  82. */
  83. public class AnswerResponse {
  84.     public int code;
  85.     public String re;
  86.     public String tokens;
  87. }
复制代码
网站崩了,本来能超过第一的
作者: 老刘1号    时间: 2017-7-2 19:03

回复 24# reKonquer


    同志,你再不开我就超了你哈~
作者: codegay    时间: 2017-7-7 21:36

以下是模仿了happy和ro的程序写的。经过几次修改,应该是能比较长时间持续运行了。
这个网站一言不合就返回500错误或者无规律清空数据,在刚开始很困扰,很懵B。

后来长时间运行发现,也有可能极小概率请求后返回404或者跳转到首页。所以也必须要在关键代码上处理错误。
→_→代码丑。但是管用。
  1. # -*- coding: utf-8 -*-
  2. """
  3. Created on 2017-07-02 13:57:56
  4. @author: codegay
  5. python3 & 编辑器 == spyder
  6. """
  7. import requests
  8. import time
  9. apiurl = "http://bbaass.tk/math/"
  10. s = 0
  11. username = "codegay"
  12. data = {
  13.         'send': 'Answer',
  14.         'username': username,
  15.         'math': 0,
  16.         }
  17. def reg(username="codegay"):
  18.     data = {"send": "reg", "username": username}
  19.     try:
  20.         requests.post(apiurl, data=data)
  21.     except:
  22.         global s
  23.         s += 1
  24.         print("reg程序江化,错误+1s")
  25.         time.sleep(2)
  26. def answer(min=0, max=100):
  27.     answering = True
  28.     answercounter = 0
  29.     token = ''
  30.     global s
  31.     while answering:
  32.         math = data['math'] = round((min+max)/2)
  33.         try:
  34.             time.sleep(0.3)
  35.             post = requests.post(apiurl, data=data, timeout=6)
  36.             print(post.text)
  37.         except Exception as err:
  38.             s += 1
  39.             print(err)
  40.             print("程序江化,错误+1s", "    错误总次数:", s)
  41.             time.sleep(1)
  42.         else:
  43.             answercounter += 1
  44.             print("数字:", math, "    counter:", answercounter)
  45.             re = ''
  46.             if post.status_code == 500:
  47.                 reg()
  48.                 time.sleep(1)
  49.             elif post.status_code == 200:
  50.                 try:
  51.                     result = post.json()
  52.                 except:
  53.                     answering = False
  54.                     continue
  55.                 re = result['re']
  56.                 if token and token != result['tokens']:
  57.                     answering = False
  58.                     continue
  59.                 token = result['tokens']
  60.                 if re == '=':
  61.                     answering = False
  62.                 if re == ">":
  63.                     max = data['math']
  64.                 if re == "<":
  65.                     min = data['math']
  66.             else:
  67.                 s += 1
  68.                 print("远程目标服务器程序江化,错误+1s")
  69.                 time.sleep(1)
  70. reg()
  71. while True:
  72.     answer()
复制代码

作者: happy886rr    时间: 2017-7-8 11:17

回复 26# codegay

把细节都考虑进去了,如果把user-agent修改为火狐浏览器,就好了。这个php服务器对py的请求会拒绝,只能伪造user-agent来实现高速和稳定的请求。
作者: 523066680    时间: 2017-7-8 16:12

本帖最后由 523066680 于 2017-7-8 17:01 编辑

清零了?

写了一段代码查看赛跑情况
  1. use JSON;
  2. use Encode;
  3. use Try::Tiny;
  4. use Data::Dumper;
  5. use HTTP::Headers;
  6. use Time::HiRes qw/time sleep/;
  7. use IO::Handle;
  8. STDOUT->autoflush(1);
  9. use LWP::Simple;
  10. use LWP::UserAgent;
  11. our $user    = "vic3";
  12. our $website = 'http://bbaass.tk/math/';
  13. our ($user, $website, $headers);
  14. my ( $min, $max ) = (0, 100);
  15. my $test = int(($max + $min) / 2);
  16. my $data;
  17. our $ua = LWP::UserAgent->new( agent => 'Mozilla/5.0', timeout => 5 );
  18. our $res;
  19. my %ever;
  20. my %current;
  21. getData( \%ever );
  22. my $count = 0;
  23. while (1)
  24. {
  25.     getData(\%current);
  26.     $count = 0;
  27.     for my $k (reverse sort { $ever{$a} <=> $ever{$b} } keys %ever)
  28.     {
  29.         printf "%-10s %d + %d\n", $k, $ever{$k}, $current{$k} - $ever{$k};
  30.         last if ($count++ > 3);
  31.     }
  32.     print "\n";
  33.     sleep 10.0;
  34. }
  35. sub getData
  36. {
  37.     our $res;
  38.     my $href = shift;
  39.     my $data;
  40.     while (1)
  41.     {
  42.         $res = $ua->post( $website, [ username => $user, send => 'reg' ] );
  43.         $res = $ua->post( $website, [ username => $user, send => 'user' ] );
  44.         try { $data = decode_json( $res->content ); last; }
  45.         catch { sleep 2.0; printf "repeat\n" }
  46.     }
  47.     for my $e ( @{$data->{'user'}} )
  48.     {
  49.         ( $times, $name, $state ) = @$e;
  50.         $href->{$name} = $times;
  51.     }
  52. }
复制代码
  1. vic3       0 + 0
  2. bbaa       0 + 0
  3. vic        0 + 0
  4. vic2       55 + 10
  5. codegay    75 + 11
  6. vic3       0 + 0
  7. bbaa       0 + 0
  8. vic        0 + 0
  9. vic2       55 + 11
  10. codegay    75 + 11
  11. vic3       0 + 0
  12. bbaa       0 + 0
  13. vic        0 + 0
  14. vic2       55 + 12
  15. codegay    75 + 12
复制代码

作者: bbaa    时间: 2017-7-8 16:28

回复 26# codegay


    无规律清空是因为我偷懒没用数据库 导致多人请求时同时写文件挂掉
Happy应该知道
作者: 523066680    时间: 2017-7-8 16:31

本帖最后由 523066680 于 2017-7-8 16:37 编辑

我在想能不能在别的网络上运行脚本,假冒 codegay 输入错误的数值来阻击他的刷新频率
(实测然并卵
作者: codegay    时间: 2017-7-8 16:41

回复 30# 523066680


    感觉是没有用,高频率请求对双方都有影响。
我不知道服务器是不是防火墙之类会检查高频率请求会封IP什么的。所以主动加了0.3秒的睡眠。
只要火力全开的应该都超过我。
作者: codegay    时间: 2017-7-8 16:43

回复 27# happy886rr


    主要还是懒。
但是只是能请求成功,对我来说不存在会拒绝这种事情。
作者: happy886rr    时间: 2017-7-8 16:51

回复 32# codegay
主要是网络质量会影响得分。
作者: bbaa    时间: 2017-7-8 16:54

回复 32# codegay

到时后可以做个题目TOKEN 的其他游戏 用:[http://bbaass.tk/Answer.php] [题库来源 https://aoaoao.me/]
反正API都做好了- -
最多数据库一下下
作者: 523066680    时间: 2017-7-8 16:58

本帖最后由 523066680 于 2017-7-8 17:14 编辑

老刘不是发了个 图灵123 API 用来对接这里的问题不知道可否

好了,不赛跑了。代码:
  1. use JSON;
  2. use Encode;
  3. use Try::Tiny;
  4. use Data::Dumper;
  5. use IO::Handle;
  6. STDOUT->autoflush(1);
  7. use LWP::Simple;
  8. use LWP::UserAgent;
  9. our $user = "vic2";
  10. our $website = 'http://bbaass.tk/math/';
  11. our $ua = LWP::UserAgent->new(  agent => 'Mozilla/5.0', timeout => 3 );
  12. our $res;
  13. BEGIN:
  14. $res = $ua->post( $website, [ username => $user, send => 'reg' ] );
  15. $res = $ua->post( $website, [ username => $user, send => 'user' ] );
  16. my $min = 0;
  17. my $max = 100;
  18. my $test = int(($max + $min) / 2);
  19. my $data;
  20. $data = check($test);
  21. my $tokens = $data->{'tokens'};
  22. while ( $data->{re} ne "=" )
  23. {
  24.     $min = $test + 1 if ($data->{re} eq "<");
  25.     $max = $test - 1 if ($data->{re} eq ">");
  26.     $test = int(($max + $min) / 2);
  27.     $data = check( $test );
  28.     printf "min: %d max: %d, test: %d  %s, token: %s\n",
  29.         $min, $max, $test, $data->{re}, $data->{tokens};
  30.     if ( ($data->{tokens} ne $tokens) and $data->{re} ne "=" )
  31.     {
  32.         print "Tokens different, go back\n";
  33.         goto BEGIN;
  34.     }
  35. }
  36. print "Again\n";
  37. goto BEGIN;
  38. sub check
  39. {
  40.     my $data;
  41.     my $res;
  42.     while (1)
  43.     {
  44.         $res = $ua->post(
  45.             $website,
  46.             [ username => $user, send => 'Answer', math => $_[0] ],
  47.         );
  48.         try   { $data = decode_json( $res->content() ); last; }
  49.         catch { sleep 3.0; print "Content error, try again.\n" }
  50.     }
  51.     return $data;
  52. }
复制代码

作者: codegay    时间: 2017-7-17 10:41

网站挂了,快修。
我我我还要测试我的程序。
作者: codegay    时间: 2017-7-17 21:20


前几天网络出奇的好。忘记关程序,跑一晚上就有四千了。
作者: codegay    时间: 2017-7-17 21:22

我发现我网络差,经常超时的情况下,似乎数据经常重置啊。

可能和服务器处理超时的异常有关?
能不能改进一下?
或者改用sqlite数据库?
作者: codegay    时间: 2017-7-17 21:37


又重置。
作者: bbaa    时间: 2017-7-18 18:46

回复 39# codegay

    现在改成sql储存
现在在调试
作者: happy886rr    时间: 2017-7-18 20:37

回复 40# bbaa
你用的pdo还是mysqli,目前数据库没反应。
作者: bbaa    时间: 2017-7-18 22:34

回复 41# happy886rr


    之前有点急事出去....
    现在已经修复完成
    数据库存储
    以前太懒用.... 文件.....
作者: bbaa    时间: 2017-7-18 22:52

本帖最后由 bbaa 于 2017-7-18 22:55 编辑


真是....
另外
  1. {"Math":319137,"Tokens":"24893b1792fb4112cbc13856b42a13ce7a3bd264","Username":{"codegay":{"Count":2078,"stat":{"zt":"playing","Timestamp":1500374817}},"bbaa":{"Count":0,"stat":{"zt":"played","Timestamp":1500371612}}},"winer":"codegay"}
复制代码
谁来猜猜Math是原数字*多少得到的
作者: codegay    时间: 2017-7-19 02:31

回复 43# bbaa


    nim代码:
  1. for r in 1..319137:
  2.     for s in 1..319137:
  3.         if r * s == 319137:
  4.             echo r,"   ",s
复制代码
  1. 1   319137
  2. 3   106379
  3. 7   45591
  4. 13   24549
  5. 21   15197
  6. 39   8183
  7. 49   6513
  8. 91   3507
  9. 147   2171
  10. 167   1911
  11. 273   1169
  12. 501   637
  13. 637   501
  14. 1169   273
  15. 1911   167
  16. 2171   147
  17. 3507   91
  18. 6513   49
  19. 8183   39
  20. 15197   21
  21. 24549   13
  22. 45591   7
  23. 106379   3
复制代码
我不理解,这个数字有什么意义吗?
作者: codegay    时间: 2017-7-19 04:37

哦,理解了,这个才是真正的作弊之道啊。
作者: bbaa    时间: 2017-7-19 10:36

回复 45# codegay


    不过转了数据库就废了-
作者: 523066680    时间: 2017-7-19 10:38

what? 现在的content没有 Math 了?
作者: bbaa    时间: 2017-7-19 10:41

回复 45# codegay


    生成数字原数字*6513
    实际上在以前可以
  1. Http/1.1 Get bbaass.tk/math/server.json
  2.     再把math除去6513作弊.....
复制代码
不过现在是真的 挂了
作者: 523066680    时间: 2017-7-19 10:58

本帖最后由 523066680 于 2017-7-19 11:14 编辑

不懂网络

咨询:
在之前如果想要作弊,如何知道有:bbaass.tk/math/server.json 这个文件?

tokens 是用 SHA1 加密吗?该字串和猜数字是否无关?

二分跑法基础上,改了算法,看到一线曙光
  1. codegay    18011 + 10
  2. vic2       413 + 15
  3. vic        0 + 0
  4. bbaa       0 + 0
  5. vic3       0 + 0
  6. codegay    18011 + 11
  7. vic2       413 + 17
  8. vic        0 + 0
  9. bbaa       0 + 0
  10. vic3       0 + 0
  11. codegay    18011 + 12
  12. vic2       413 + 21
  13. vic        0 + 0
  14. bbaa       0 + 0
  15. vic3       0 + 0
复制代码

作者: bbaa    时间: 2017-7-19 11:21

本帖最后由 bbaa 于 2017-7-19 11:24 编辑

回复 49# 523066680
1猜
2 Happy886绝对知道
3Token是验证比赛还在这局?的东西 [避免别人猜出数值更换还在2分死循环........]
3codegay真的被你阻塞了
作者: 523066680    时间: 2017-7-19 11:33

本帖最后由 523066680 于 2017-7-19 11:40 编辑

回复 50# bbaa

    按照 demon 的一篇文章猜测一下:如果 tokens 是和时间有关的信息加密,并且[猜的数字]的生成也和时间有关的话,也许可以找出关联(大雾

http://demon.tw/reverse/cmd-internal-random.html
Demon
分析上面的代码可知,如果知道调用srand函数的时间,那么就可以知道每次调用rand函数生成的随机数是多少。也就是说,如果知道CMD的启动时间(从CMD启动到CMD调用srand的时间通常不会超过1秒),那么就可以推算出%RANDOM%的值是多少。


其实相关的说法我记得在 Matrix67 还是哪个书上看过,说可以通过时间反推计算出系统给出的随机数

这条路子很渺茫,就是想想而已。只会简单粗暴无脑刷
作者: codegay    时间: 2017-7-19 11:40

回复 51# 523066680


    另一个尝试的方向是网站的一些漏洞什么的,比如SQL注入漏洞。
作者: bbaa    时间: 2017-7-19 11:53

回复 51# 523066680


TOkens生成就是...[php]
  1. function random_str($length) {
  2. $chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()-_ []{}<>~`+=,.;:/?|';   
  3. for ($i = 0; $i < $length; $i++ )  
  4. {  
  5. $str .=substr($chars,mt_rand(0,strlen($chars)-1),1);  
  6.         //$str = $chars[ mt_rand(0, strlen($chars) - 1) ];  
  7. }  
  8. return $str;  
  9. }
  10. $json["Tokens"]=Sha1(random_str(256));
复制代码

作者: codegay    时间: 2017-7-19 11:59

happy 老刘他们这嘴真严啊。知道的都没说。
作者: bbaa    时间: 2017-7-19 12:16

回复 54# codegay


    我把之前文件版的代码给happy了
作者: bbaa    时间: 2017-7-19 12:25

回复 54# codegay
回复 49# 523066680


应某人要求... 17-7-19 13点更改
作者: codegay    时间: 2017-7-19 13:08

哇,我要不行了。
数字改大了之后,还相当于我处理超时的成本提高了。因为我处理超时的方法是直接重头再来。
作者: codegay    时间: 2017-7-19 13:36

老刘这么强?开挂了吧
作者: 老刘1号    时间: 2017-7-19 13:44

本帖最后由 老刘1号 于 2017-7-19 13:46 编辑

回复 58# codegay


    额,我的代码一直没换
就19楼的,连tokens变换都没检测,递归也没优化为循环(2星期前的代码……现在懒得修改了)
只是把数的变换检测的值调到20次,范围扩大到0-10000了
作者: codegay    时间: 2017-7-19 14:30

bbaa来解释一下老刘为什么 这么快?
作者: 523066680    时间: 2017-7-19 14:40

本帖最后由 523066680 于 2017-7-19 14:44 编辑

才午休一下,又出幺蛾子
  1. codegay    18804 + 0
  2. vic2       1554 + 0
  3. 老刘       810 + 1
  4. codeplay   1 + 0
  5. bbbbaa     0 + 0
  6. repeat
  7. repeat
  8. repeat
  9. repeat
  10. repeat
复制代码
先别解释,我刚午休完毕,也改改代码看看能不能PK

网站又做修改了?
作者: 老刘1号    时间: 2017-7-19 14:44

晕,服挂了
作者: codegay    时间: 2017-7-19 14:46

回复 62# 老刘1号


    把我注册的用户名删掉就可以。
作者: 523066680    时间: 2017-7-19 14:51

回复 63# codegay


    codegay大大开始SQL注入了?
作者: 老刘1号    时间: 2017-7-19 14:52

回复 63# codegay


    ???难道是
传说中的
SQL注入攻击?
作者: codegay    时间: 2017-7-19 14:55

回复 64# 523066680


    并没有。只是随意试了试。。
作者: codegay    时间: 2017-7-19 14:56

我只会名词。并不真正懂。
作者: bbaa    时间: 2017-7-19 14:59

回复 67# codegay


    经过检修貌似数据库重新点问题。。。。
作者: bbaa    时间: 2017-7-19 15:02

经过排查
是一个名为老刘的.........人
在id前加了个单引号
然后/////
  1. INSERT INTO `tc_bbaa_math_c` (`Username`,`Count`,`Status`,`Timestamp`) VALUES ('老刘'',0,'played',1500446396) ON DUPLICATE KEY UPDATE Username=VALUES(Username),Count=VALUES(Count),Status=VALUES(Status),Timestamp=VALUES(Timestamp);
复制代码

作者: 老刘1号    时间: 2017-7-19 15:02

看来修好了
作者: 老刘1号    时间: 2017-7-19 15:05

回复 67# codegay


    这个单引号……服
作者: 523066680    时间: 2017-7-19 15:13

本帖最后由 523066680 于 2017-7-19 15:18 编辑

Codegay 发力了
  1. codegay    18809 + 7
  2. vic2       1557 + 4
  3. 老刘       917 + 3
  4. codeplay   1 + 0
  5. bbaa       0 + 0
  6. codegay    18809 + 9
  7. vic2       1557 + 4
  8. 老刘       917 + 3
  9. codeplay   1 + 0
  10. bbaa       0 + 0
  11. codegay    18809 + 12
  12. vic2       1557 + 4
  13. 老刘       917 + 3
  14. codeplay   1 + 0
  15. bbaa       0 + 0
  16. codegay    18809 + 15
  17. vic2       1557 + 4
  18. 老刘       917 + 3
  19. codeplay   1 + 0
  20. bbaa       0 + 0
复制代码
我在上班,给点思考空间,有啥干货明天再发……
作者: 老刘1号    时间: 2017-7-19 15:15

Codegay,拿出你的干货
什么方法?
作者: codegay    时间: 2017-7-19 15:18

回复 73# 老刘1号


    其中之一是用了你的程序。
作者: 老刘1号    时间: 2017-7-19 15:19

回复 74# codegay


    晕……
也说明了个道理,网速也是影响因素啊……
作者: 523066680    时间: 2017-7-19 15:25

回复 75# 老刘1号


    说明他用多进程或者多线程跑啊。(其中之一)
作者: 老刘1号    时间: 2017-7-19 15:30

回复 76# 523066680


    按说服务器的反应速度也就那样,个人觉得多线程反而会拉慢速度(没有测试)
嘿嘿,这是逼我改进代码啊
作者: 523066680    时间: 2017-7-19 15:32

本帖最后由 523066680 于 2017-7-19 15:40 编辑

回复 77# 老刘1号


    不是的,我说说中午之前我的方案吧,
两个进程同时跑,一个随机数做划分,一个是取中值做划分。发现确实比codegay快了。
现在范围变了发现两个进程都慢,还是有优化方向

以及刚才我的后台在跑迅雷,下载 KOF14

现在看来主要还是网络因素,两个进程对比Codegay,勉强持平
  1. codegay    19038 + 11
  2. vic2       1569 + 7
  3. 老刘       920 + 0
  4. vic3       0 + 0
  5. e          0 + 0
  6. repeat
  7. codegay    19038 + 11
  8. vic2       1569 + 9
  9. 老刘       920 + 0
  10. vic3       0 + 0
  11. e          0 + 0
  12. repeat
  13. codegay    19038 + 11
  14. vic2       1569 + 11
  15. 老刘       920 + 0
  16. vic3       0 + 0
  17. e          0 + 0
复制代码

作者: 老刘1号    时间: 2017-7-19 15:34

本帖最后由 老刘1号 于 2017-7-19 15:37 编辑

回复 78# 523066680


    我是纯中心划分
还是感觉多线程会拉慢速率(会挑空测试下)……
确实可以改进

迅雷下载还玩这个666
作者: codegay    时间: 2017-7-19 15:44

网速当然非常影响了。

另外异常处理很重要,不然不能长时间运行。
作者: bbaa    时间: 2017-7-19 16:38

回复 80# codegay


    都快2w了...
作者: codegay    时间: 2017-7-19 17:57

看样子站长的racket代码要来了
作者: codegay    时间: 2017-7-19 18:41

是谁在注册大量小号呢
作者: 老刘1号    时间: 2017-7-19 18:49

一觉起来……还在刷
作者: TSCAN    时间: 2017-7-19 18:56

本帖最后由 TSCAN 于 2017-7-20 10:16 编辑
  1. #lang racket
  2. (require net/http-client json)
  3. (define (reg username)
  4.   (define-values
  5.     (a b c)
  6.     (http-sendrecv "bbaass.tk"
  7.                  "http://bbaass.tk/math/"
  8.                  #:method "POST"
  9.                  #:headers (list "Content-Type: application/x-www-form-urlencoded")
  10.                  #:data (string-append "send=reg&username=" username)))
  11.   (port->string c))
  12. (define ((send-answer username) ans)
  13.   (define-values
  14.     (a b c)
  15.     (http-sendrecv "bbaass.tk"
  16.                  "http://bbaass.tk/math/"
  17.                  #:method "POST"
  18.                  #:headers (list "Content-Type: application/x-www-form-urlencoded")
  19.                  #:data
  20.                  (string-append "send=Answer&username=" username "&"
  21.                                 "math=" (number->string ans) "&")
  22.                                 ))
  23.   c
  24.   )
  25. (define (try-once min max)
  26.   (define (mid x y) (floor (/ (+ x y) 2)))
  27.   (define first-time
  28.                       (read-json ((send-answer "racket")
  29.                       (mid min max)))
  30.                       )
  31.   (define token (hash-ref first-time 'tokens))
  32.   (define first-re (hash-ref first-time 're))
  33.   (define (token-changed? t)
  34.     (not (string=? token t)))
  35.   (define (loop min max exit)
  36.     (printf "min :~a,max :~a\n" min max)
  37.     (define this-time (read-json ((send-answer "racket") (mid min max))))
  38.     (define this-token (hash-ref this-time 'tokens))
  39.     (define this-re (hash-ref this-time 're))
  40.     (when (string=? this-re "=") (exit (printf "succeed.\n")))
  41.     (when (token-changed? this-token) (exit (void)))
  42.     (match this-re
  43.       ["<" (loop (mid min max) max exit)]
  44.       [">" (loop min (mid min max) exit)]))
  45.   (call/ec
  46.    (lambda (exit) (loop min max exit)))
  47.   )
  48. (define (repl) (try-once 0 10000) (repl))
  49. (repl)
复制代码
racket代码,有点慢,注意先用reg函数注册。

更新的代码,速度更快:
  1. #lang racket
  2. (require net/http-client json racket/unsafe/ops)
  3. (define (reg username)
  4.   (define-values
  5.     (a b c)
  6.     (http-sendrecv "bbaass.tk"
  7.                    "http://bbaass.tk/math/"
  8.                    #:method "POST"
  9.                    #:headers (list "Content-Type: application/x-www-form-urlencoded")
  10.                    #:data (string-append "send=reg&username=" username)))
  11.   (port->string c))
  12. (define-syntax-rule (send-answer connection ans)
  13.   (let-values
  14.       [[(a b c)
  15.         (http-conn-sendrecv! connection
  16.                              "http://bbaass.tk/math/"
  17.                              #:method "POST"
  18.                              #:headers (list "Content-Type: application/x-www-form-urlencoded")
  19.                              #:data
  20.                              (string-append "send=Answer&username=racket&"
  21.                                             "math=" (number->string ans) "&")
  22.                              )]]
  23.     c
  24.     ))
  25. ;;Update : No function call here
  26. (define-syntax-rule (mid x y) (if (= 1 (- y x))
  27.                                   y (unsafe-fxquotient (unsafe-fx+ x y) 2)))
  28. (define (try-once)
  29.   (define min 0)
  30.   (define max 10000)
  31.   (define next (mid min max))
  32.   ;;Update : A bug has been fixed.
  33.   (define http-connector (http-conn-open "bbaass.tk" #:auto-reconnect? #t))
  34.   (define first-time
  35.     (read-json (send-answer http-connector
  36.                             (mid min max)))
  37.     )
  38.   (define token (hash-ref first-time 'tokens))
  39.   (define first-re (hash-ref first-time 're))
  40.   (define (token-changed? t)
  41.     (not (string=? token t)))
  42.   
  43.   (define (loop min max)
  44.     (printf "min :~a,max :~a\n" min max)
  45.     (define next (mid min max))
  46.     (define this-time (read-json (send-answer http-connector next)))
  47.     (define this-token (hash-ref this-time 'tokens))
  48.     (define this-re (hash-ref this-time 're))
  49.     (cond
  50.       [(string=? this-re "=") (begin (printf "succeed.\n")
  51.                                      (http-conn-close! http-connector)
  52.                                      )]
  53.       [(token-changed? this-token)  (http-conn-close! http-connector)]
  54.       [(string=? this-re "<") (loop next max)]
  55.       [(string=? this-re ">") (loop min next)]
  56.       
  57.       ))
  58.   ;;Update: Because of tail call optimization, we don't need call/cc or call/ec
  59.   (match first-re
  60.     ["<" (loop next max)]
  61.     [">" (loop min next)]
  62.     [_ (begin (printf "succeed.\n")
  63.               (http-conn-close! http-connector)
  64.               )]
  65.     )
  66.   )
  67.   
  68. (define (repl) (try-once) (repl))
  69. (repl)
复制代码

作者: bbaa    时间: 2017-7-19 22:22

回复 83# codegay


    以加屏蔽 UA策略封禁......
作者: 老刘1号    时间: 2017-7-19 22:41

本帖最后由 老刘1号 于 2017-7-20 18:08 编辑

新版:
1、递归优化为循环,优化算法。
2、强大的错误处理,服务器挂掉了都还会运行等待恢复。
3、开始检测tokens的值的变化。
其它:
为防止利用,做了简单加密(使用乱码兄的加密代码)~
决定开源,代码无法运行,需要改UA
不过算法是完整的
VBS
  1. Const [宿主] = "CSCRIPT.EXE" 'WSCRIPT
  2. If Not UCase(Right(WScript.FullName,11)) = UCase([宿主]) Then
  3. Dim Args,Arg
  4. For Each Arg in Wscript.Arguments
  5. Args=Args&Chr(&H20)&Chr(&H22)&Arg&Chr(&H22)
  6. Next
  7. CreateObject("Wscript.Shell").Run _
  8. [宿主]&Chr(&H20)&Chr(&H22)&WScript.ScriptFullName&Chr(&H22)&Args
  9. WScript.Quit
  10. End If
  11. on error resume next
  12. If MsgBox("是否查看原贴?",1) = 1 Then CreateObject("Wscript.Shell").run "http://www.bathome.net/thread-44616-1-1.html"
  13. With CreateObject("MSXML2.XMLHTTP")
  14. .Open "POST", "http://bbaass.tk/math/", False
  15. .setRequestHeader "CONTENT-TYPE","application/x-www-form-urlencoded"
  16. .Send "send=reg&username=老刘"
  17. End With
  18. dim tokens,[大鱼小鱼或等鱼?],[Arr返回的数据]
  19. High = 10001
  20. Low = -1
  21. Do
  22. Do
  23. Mid_=(High+Low)\2
  24. [Arr返回的数据] = Math(Mid_)
  25. [大鱼小鱼或等鱼?] = [Arr返回的数据](0)
  26. if tokens<>[Arr返回的数据](1) then
  27. If [大鱼小鱼或等鱼?] = "=" then
  28. wscript.echo "Win!The number is "&Mid_
  29. Else
  30. Wscript.echo "Tokens is change"
  31. End if
  32. tokens=[Arr返回的数据](1)
  33. High = 10001
  34. Low = -1
  35. Exit do
  36. Else
  37. Select Case [大鱼小鱼或等鱼?]
  38. Case ">"
  39. WScript.Echo ">,so try "&Low&","&Mid_
  40. High = Mid_
  41. Case "<"
  42. WScript.Echo "<,so try "&Mid_&","&High
  43. Low = Mid_
  44. End Select
  45. End if
  46. Loop
  47. Loop
  48. Function Math(num)
  49. dim [返回数据]
  50. With CreateObject("MSXML2.XMLHTTP")
  51. .Open "POST","http://bbaass.tk/math/", False
  52. .setRequestHeader "CONTENT-TYPE","application/x-www-form-urlencoded"
  53. .send "send=Answer&math=" & num & "&username=老刘"
  54. [返回数据] = .responseText
  55. Math = Split(Split(Split([返回数据],",")(2),"""")(3) & " "&Split([返回数据],"""")(13)," ")
  56. End With
  57. End Function
复制代码

作者: codegay    时间: 2017-7-20 00:12

本帖最后由 codegay 于 2017-7-20 02:17 编辑

来啊。继续挂机赛跑啊。不然不能发现代码中的一些小问题,改进的动力太也不大。
作者: codegay    时间: 2017-7-20 01:03

可以重置我的数据,从头开始。
作者: codegay    时间: 2017-7-20 06:30

本帖最后由 codegay 于 2017-7-20 07:11 编辑

这是nim版的程序,边摸边学,直到前几天写好的。这两天只作了小细节上修改。


编译命令:
  1. nim c -d:release -r "c:\Users\root\Desktop\xx.nim"
复制代码
  1. import httpclient
  2. import strutils
  3. import json
  4. import math
  5. import os
  6. import encodings
  7. const chrome = "Chrome/60.0.3088.3"
  8. let apiurl = "http://bbaass.tk/math/"
  9. var name = "codegay"
  10. var client: HttpClient
  11. var head = { "Content-Type": "application/x-www-form-urlencoded" ,
  12.             "User-Agent": chrome,  "X-Requested-With": "XMLHttpRequest"}
  13. proc reg(): int {.discardable.} =
  14.     var client = newHttpClient()
  15.     try:
  16.         echo client.postContent(apiurl,
  17.         multipart=newMultipartData({"send":"reg","username":name}))
  18.     except:
  19.         result = 0
  20.     finally:
  21.         client.close()
  22. proc showuser(): int {.discardable.} =
  23.     var client = newHttpClient()
  24.     try:
  25.         echo client.postContent(apiurl,
  26.         multipart=newMultipartData({"send":"user", "username":name}))
  27.         result = 1
  28.     except:
  29.         echo convert(getCurrentExceptionMsg(),"gb2312","utf8")
  30.         result = 0
  31.     finally:
  32.         client.close()
  33. proc answer(min=0, max=10000): string {.discardable.} =
  34.     var min = min
  35.     var max = max
  36.     var answering:bool = true
  37.     var counter = 1
  38.     var token = ""
  39.     var code:HttpCode = Http100
  40.     var body = ""
  41.     while answering:
  42.         client = newHttpClient(chrome)
  43.         client.headers = newHttpHeaders(head)
  44.         var math:int = int(round((min+max)/2))
  45.         var bodydata = "send=Answer&username=$1&math=$2" % [name,$math]
  46.         try:
  47.             var res = client.post(apiurl, body=bodydata)
  48.             code = res.code
  49.             body = res.body
  50.             echo "HTTP:$1    counter:$2    math:$3" % [$code,$counter,$math]
  51.             if code.is2xx():
  52.                 echo body
  53.                 try:
  54.                     var jsonre:JsonNode = parseJson(body)
  55.                     var re = jsonre["re"].getstr()
  56.                     var retoken = jsonre["tokens"].getstr()
  57.                     case re:
  58.                         of "=":
  59.                             answering = false
  60.                             token = ""
  61.                         of  ">":
  62.                             max = math
  63.                         of  "<":
  64.                             min = math
  65.                     if (min >= max):
  66.                         echo "min >= max"
  67.                         answering = false
  68.                         break
  69.                     if token != retoken and token != "":
  70.                         echo "token!"
  71.                         break
  72.                     token = retoken
  73.                 except:
  74.                     echo "解析json错误!"
  75.             elif code == Http500:
  76.                 reg()
  77.                 echo "500"
  78.             else:
  79.                 echo "else"
  80.         except:
  81.             echo convert(getCurrentExceptionMsg(),"gb2312","utf8")
  82.             break
  83.         finally:
  84.             counter += 1
  85.             client.close()
  86. reg()
  87. showuser()
  88. while true:
  89.     discard answer()
复制代码

作者: 老刘1号    时间: 2017-7-20 08:31

机就不挂了,感觉是浪费电
不过现在速度是可以稳超Codegay兄了
作者: 523066680    时间: 2017-7-20 08:38

  1. codegay    25859 + 4
  2. 老刘       1792 + 50
  3. vic2       1730 + 4
  4. bbaa       59 + 0
  5. racket     9 + 0
  6. codegay    25859 + 4
  7. 老刘       1792 + 52
  8. vic2       1730 + 4
  9. bbaa       59 + 0
  10. racket     9 + 0
  11. codegay    25859 + 4
  12. 老刘       1792 + 54
  13. vic2       1730 + 4
  14. bbaa       59 + 0
  15. racket     9 + 0
复制代码

作者: qazplm    时间: 2017-7-20 10:39

本帖最后由 qazplm 于 2017-7-20 12:17 编辑

回复 87# 老刘1号

[大鱼小鱼或等鱼?]
何必加密呢,懂的还要多费时间,不懂的给源码也看不懂,半桶水的干脆略过
另外如果第一名名称为 a,a"a,",split就不适用了,vbs解析json,可以使用htmlfile对象的execScript方法
  1. With CreateObject("MSXML2.XMLHTTP")
  2.     .Open "POST","http://bbaass.tk/math/", False
  3.     .setRequestHeader "CONTENT-TYPE","application/x-www-form-urlencoded"
  4.     .setRequestHeader "User-Agent","Chrome/59.0.3071.115"
  5.     .send "send=Answer&math=5000&username=老刘"
  6.     Set html = CreateObject("htmlfile")
  7.     Set wd = html.parentWindow
  8.     wd.execScript "var json=" & .responseText, "JScript"
  9.     Set result = wd.json
  10.     WSH.Echo result.re & vbCrLf & result.tokens
  11. End With
复制代码

作者: 老刘1号    时间: 2017-7-20 12:38

回复 93# qazplm


    感谢指导,学习了
简单加密的原因是昨天有游客使用我19楼的代码刷分
不但导致服务器负载,还影响公平性
不过我已经明说了,研究算法或代码的话,可以直接私信我
我也不会吝惜什么,绝对双手奉上还带讲解的
作者: qazplm    时间: 2017-7-20 13:17

回复 94# 老刘1号

噗嗤,加密的原因好单纯
作者: 老刘1号    时间: 2017-7-20 13:41

回复 90# codegay


    算法趋于统一了么
坐等5230兄的多线程算法
作者: 523066680    时间: 2017-7-20 14:54

本帖最后由 523066680 于 2017-7-20 15:46 编辑

回复 96# 老刘1号


    以前没正式用过线程,现在被自己写的 bug 搞得抓狂 ……

好像有点效果 (让我再观察观察
  1. codegay    27522 + 0
  2. 老刘       3753 + 4
  3. vic2       1745 + 3
  4. bbaa       59 + 0
  5. racket     28 + 0
  6. codegay    27522 + 0
  7. 老刘       3753 + 4
  8. vic2       1745 + 5
  9. bbaa       59 + 0
  10. racket     28 + 0
  11. codegay    27522 + 0
  12. 老刘       3753 + 4
  13. vic2       1745 + 8
  14. bbaa       59 + 0
  15. racket     28 + 0
复制代码
有 bug, 在调
作者: 523066680    时间: 2017-7-20 16:56

本帖最后由 523066680 于 2017-7-20 17:03 编辑

你猜我用了多少线程
  1. ......min:    0 max:10000  1000<N, 2000>N, 3000>N, 4000>N, 5000>N, 6000>N, 7000>N, 8000>N, 9000>N,
  2. ......min: 1000 max: 2000  1100<N, 1200<N, 1300<N, 1400<N, 1500<N, 1600<N, 1700>N, 1800>N, 1900>N,
  3. ......min: 1600 max: 1700  1610<N, 1620<N, 1630<N, 1640<N, 1650<N, 1660<N, 1670<N, 1680>N, 1690>N,
  4. ....Content error, try again.
  5. ..34tokens diff
  6. ......min:    0 max:10000  1000<N, 2000<N, 3000<N, 4000<N, 5000<N, 6000<N, 7000<N, 8000>N, 9000>N,
  7. ......min: 7000 max: 8000  7100<N, 7200<N, 7300N, 7400>N, 7500>N, 7600>N, 7700>N, 7800>N, 7900>N,
  8. ......min: 7200 max: 7400  7220<N, 7240<N, 7260N, 7280<N, 7300<N, 7320<N, 7340>N, 7360>N, 7380>N,
  9. Content error, try again.
  10. ......min: 7320 max: 7340  7322N, 7324<N, 7326<N, 7328N, 7330<N, 7332<N, 7334<N, 7336<N, 7338<N,
复制代码
刷结果的效率比之前是高很多,但还是勉强追上老刘的速度
  1. codegay    27555 + 0
  2. 老刘       4514 + 4
  3. vic2       1805 + 4
  4. bbaa       74 + 0
  5. racket     28 + 0
  6. codegay    27555 + 0
  7. 老刘       4514 + 8
  8. vic2       1805 + 6
  9. bbaa       74 + 0
  10. racket     28 + 0
复制代码
一段时间后
  1. codegay    27555 + 1
  2. 老刘       4514 + 38
  3. vic2       1805 + 38
  4. bbaa       74 + 0
  5. racket     28 + 0
复制代码

作者: bbaa    时间: 2017-7-20 17:28

回复 98# 523066680


    告诉你个消息,变化列表最迟在今晚内置
    [一分钟更新一次]
    [和一小时更新一次的列表]
    [目前收集信息模块已经完成]
    [正在做界面]
    如果时间充裕的话可能会做像顶楼那样的GD自动生成图片
    目前自动到收集的信息
    一分钟
  1. {
  2.          "change": {
  3.                   "minute": {
  4.                            "last": {
  5.                                     "user": {
  6.                                              "codegay": "27558",
  7.                                              "vic2": "1963",
  8.                                              "bbaa": "74",
  9.                                              "老刘": "4718",
  10.                                              "racket": "28",
  11.                                              "vic3": "18"
  12.                                     },
  13.                                     "Timestamp": 0,
  14.                                     "timestamp": 1500542815
  15.                            },
  16.                            "done": {
  17.                                     "user": {
  18.                                              "vic2": 8,
  19.                                              "老刘": 6,
  20.                                              "codegay": 1,
  21.                                              "vic3": 0,
  22.                                              "bbaa": 0,
  23.                                              "racket": 0
  24.                                     },
  25.                                     "lastu": {
  26.                                              "codegay": "27557",
  27.                                              "vic2": "1955",
  28.                                              "bbaa": "74",
  29.                                              "老刘": "4712",
  30.                                              "racket": "28",
  31.                                              "vic3": "18"
  32.                                     }
  33.                            }
  34.                   },
  35.                   "hour": {
  36.                            "last": {
  37.                                     "user": {
  38.                                              "codegay": "27557",
  39.                                              "vic2": "1953",
  40.                                              "bbaa": "74",
  41.                                              "老刘": "4686",
  42.                                              "racket": "28",
  43.                                              "vic3": "18"
  44.                                     },
  45.                                     "Timestamp": 0,
  46.                                     "timestamp": 1500542575
  47.                            },
  48.                            "done": {
  49.                                     "user": [],
  50.                                     "lastu": []
  51.                            }
  52.                   }
  53.          }
  54. }
复制代码

作者: 523066680    时间: 2017-7-20 17:30

回复 99# bbaa


    喇就省得我单独跑一个脚本看跑步差距了。




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2