科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道应用软件做自动发贴程序-百度贴吧验证码算法

做自动发贴程序-百度贴吧验证码算法

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

首先,进入一个贴吧,比如"virus吧",

作者:oldxue 来源:中国软件网 2008年6月20日

关键字: 发帖 自动 XML 软件

  • 评论
  • 分享微博
  • 分享邮件
地址是http://post.baidu.com/f?kw=virus。

图1

  可以看到,页面底部有一个表单,允许匿名发贴。如果要写一个自动发贴的程序,唯一的难点是验证码。

图2

  接下来查看页面源码,发现验证码是个图片,由脚本生成。验证码图片的链接是形如ttp://post-js.baidu.com/cgi-bin/c?[p1]&[p2]的样子,其中p1和p2是两个随机整数。

图3

  所有验证码图片上面都有4个阿拉伯数字,夹杂一些噪音点。可惜这些噪音点不是随机产生的,举个例子,ttp://post-js.baidu.com/cgi-bin/c?0&0和ttp://post-js.baidu.com/cgi-bin/c?65536&0这两个链接将产生两幅完全相同的图片。

  验证图片上面的数字是可以由产生它的链接地址直接计算出来的。公式的c代码如下:


p1 >>= 8;
p2 >>= 8;
p1 = (p1 & 0xff)+((p1 >> 16) << 8);
p2 = (p2 & 0xff)+((p2 >> 16) << 8);
result = (p1 + (p2 << 16)) % 10000;

  图3所示的链接地址可以生成图2中的验证码,对于这个例子,链接中的两个整数:
p1 = 695327974, p2 = 1581465364
p1 = p1/256 = 695327974/256 = 2716124
p2 = p2/256 = 1581465364/256 = 6177599
p1 = p1%256 + p1/65536*256 = 2716124%256 + 2716124/65536*256 = 10716
p2 = p2%256 + p2/65536*256 = 6177599%256 + 6177599/65536*256 = 24127
result = (p1 + p2*65536)%10000 = (10716 + 24127*65536)%10000 = 1581197788%10000 = 7788

  这就是图2中的验证码7788。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章