百度自动发贴,登录很顺利的模拟实现,但发贴攻关失败,能力有限,追JS过程中颇为痛苦

攻关失败,且短期内看不到希望,看不到方向,且越来越焦急,目前已知的是,用根据用户的鼠标事件以一定的规则结合其他数据,服务器以这些数据验证是否为真正的手动发贴。

 

不过闲暇时实现了百度贴吧的自动签到。

 

较难的点

1:首先是JS被压缩混淆,无语义追踪,很难记录工作过程,多项之间来回跳转,眼花头疼。

2:再一点是,百度完整的封装了一套事件逻辑,任何的事件经由这一层封装组织数据再向下传递,这过程中很绕,这个全局混淆后的标志是H。

3:因为鼠标移动事件也经由这套逻辑,所以调试捕捉很困难(而发贴验证的核心心就是这个鼠标事件),比如想追鼠标断点,事件有了,断点命中,移鼠标到调试框查看调试器的内容,调试中止,鼠标要再回浏览器位置,又直接进事件,各种头疼,我个人没有调试鼠标事件的好方法,有好方法推荐的,欢迎指教。

 

自已以前写过鼠标拖拽的功能,自已的代码,复杂度也不高,鼠标事件调试时已觉很不便,代码量大的话,鼠标调试越来越困难。

 

调试追踪过程中的工具和简单总结。

 

IE,firefox官方调试,firedebug,chrome调试,在部分细节上各有所长。

工作已结束数日,具体细节记不清了,以下或有不对,各工作结合应用。

例,部分断点,firefox会卡死无法跟踪,IE下却正常。

JS代码规范化(就是加换行,空格什么的),各工具有些微的区别,甚至有部分,在其他工具根本没能规范化(比如requirejs获取的JS代码)。

代码过滤查找功能,firefox会强于IE,firefox可以多文件查找,IE貌似不行,我没找到。

IE没找到网络请求分类,就是说把iMG,xhr,html,js请求分开的功能。firefox和chrome分类很清楚。

加载页面里,强制暂停,FIREFOX可以,但firedebug失败。

 

工作记录,百度登录成功追到,并模拟实际登录成功。

 

过程就不细说了,我也记不太清了,顺藤摸瓜,摸到一点就上手试,有问题继续追,当时真该作个笔记。

 

核心,加密匹配验证。

简单逻辑

1获取浏览器端应用百度客户端的基本信息,存入cookie(没有存cookie这项的话,是没法成功)

2获取token。

3以token获取publickey,鼠标单击,密码框,用户名框,等多个事件触发该操作,获取key,publickey。服务器端会将publickkey的值,以key为键,缓存(类似session)

4最关键的一步,从用publickey加密密码,并将结果返回,这里追到的百度用的RSA加密,纯前端的JS加密,后端找几个RSA试了几次失败,放弃。想的直接把百度的JS加密代码拿来,用到node.js里,解决。

5组织数据提交,便可提交成功。

posted @ 2014-10-13 14:13  cclient  阅读(308)  评论(1编辑  收藏  举报