百度贴吧中的验证码钥匙被称为BS,这个名称的由来来源与其贴吧源代码中的一个隐藏提交数据<input type=hidden name=bs value="*************************">,这段字符串由百度贴吧的发帖或回帖界面提供,与它相对应的是两个值,既str2和word1,其中word1为手工填写的验证码内容,str2为防止伪造BS的一个对应参数,它在爆吧的环节中起到一个重要的作用,就是收集到足够的BS后同时发出,可以达到一瞬间刷满屏幕的效果
首先现在BS最后32位是类似16进制的字符串
去掉这最后的32位后,是一串带有很多3的
比如13935303236323这样
这些3是干扰,要去掉
处理后的字串,第一位固定为1,第二位代表一个长度,比如5,那么后5位就是这个吧的lm值。之后一段是由获取这个BS的Ip计算出的,也就类似封IP时的那个参数。再后面一段是个随机数。再后面是0000000012564123这样,是当前时间,以秒为单位
比如
313531383831363130393033393337313731303832333437343536303030303030303030303030303031323230363434343231B236CF43CF23960E945076B042249072
去掉最后32位是
313531383831363130393033393337313731303832333437343536303030303030303030303030303031323230363434343231
去掉干扰3
151881610903937171082347456000000000000001220644421
分割
1 5 18816 10903937 171082347456 000000000000001220644421
第一段固定是1
第二段是5,表示第三段长度为5
第三段是lm值,这个是123吧的lm值,没有建立的贴吧lm值为0
第四段是已经被加密的我的IP地址
第五段或许是随机的
第六段是现在的时间戳
下面是百度贴吧中的一段源代码,其中有一个函数叫fr_as_js_tr,它通常由101~110的数字和0x0fffffff以及一些数学运算符组成,同样由百度贴吧的发帖或回帖界面提供,它返回的值既str2,每个str2对应着一个BS,这导致了伪造BS不可行
function fr_as_js_tr(){ return ((((((((((0x0fffffff&110)|108)&102)^105)&105)|108)&109)&109)|103)|103);}
以上这些已知资料是我在百度玩爆吧的一个朋友总结出来的,但这些还远远不够
因为现在每个BS的寿命大概为15分钟,并且仅仅对应一个贴吧(lm值),这使得长时间的挖坟或爆吧不可行,对IP的限制同样使代理服务器的方案失效,所以我们现在希望能够通过探究bs(验证码钥匙)、word1(验证码)、str2(BS防伪造串)之间的关系让爆吧这种古老的游戏重新变得有趣起来,但以我们目前所掌握的数学及密码学知识还无法解决这样一个问题,所以希望得到这里的高手们的协助
以下是百度贴吧的一段源代码(尚未创建的贴吧,lm = 0)