zoukankan      html  css  js  c++  java
  • 百度自动发贴,登录很顺利的模拟实现,但发贴攻关失败,能力有限,追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组织数据提交,便可提交成功。

  • 相关阅读:
    javascript-事件
    javascript-数组简单的认识
    javascript-dom操作
    JavaScript入门
    python语言程序设计?
    4,14
    python第二周。2019.4.13
    python第二周
    python语言程序设计9
    python语言程序设计8
  • 原文地址:https://www.cnblogs.com/zihunqingxin/p/4021879.html
Copyright © 2011-2022 走看看