当前位置: 首页 > wzjs >正文

百度上做网站模板河北seo技术

百度上做网站模板,河北seo技术,网站建设 域名业务 邮箱,wordpress tab切换2025-04-26 请求地址:aHR0cHM6Ly93d3cuZG91eWluLmNvbS91c2VyL01TNHdMakFCQUFBQV96azV6NkoyMG1YeGt0eHBnNkkzRVRKejlyMEs3d2Y2dU9EWlhvd2ttblZWRnB0dlBPMmMwN2J0WFotcVU4V3M 个人主页的视频数据 我们需要逆向这个接口,所以现在需要分析这个请求, 分析这几个数据包可以发现: 只有…

2025-04-26
请求地址:aHR0cHM6Ly93d3cuZG91eWluLmNvbS91c2VyL01TNHdMakFCQUFBQV96azV6NkoyMG1YeGt0eHBnNkkzRVRKejlyMEs3d2Y2dU9EWlhvd2ttblZWRnB0dlBPMmMwN2J0WFotcVU4V3M=

个人主页的视频数据
我们需要逆向这个接口,所以现在需要分析这个请求,
分析这几个数据包可以发现:
只有max_cursor和a_bogus参数是变化的,其他的参数都不变

在这里插入图片描述

然后我们先仔细来观察第一个数据包,发现其返回的结果中有max_cursor字段,值为:1723795989000然后我们再看第二个数据包的请求的max_cursor的值就是1723795989000,因此可以发现第二个数据包的请求传递的参数max_cursor就是第一个数据包返回的结果.

在这里插入图片描述
第一个数据包

在这里插入图片描述
第二个数据包

那么现在我们要解决的就是a_bogus字段的值,我们从启动器进去打下断点,然后往下面滑动,断点断住之后,一直过掉,到我们要的请求的接口的位置. 然后我们往前面进行跟栈,发现到X这个栈的时候,参数r._tnc_request_url中并不存在a_bogus字段,所以这个字段很有可能就是在当前function X(t, r, e, n)这个函数内部生成的.

在这里插入图片描述
然后我们重新在函数的开头位置打下断点,继续往下滑动.重新触发断点,分析了发现X这个栈的时候是没有a_bogus字段的,然后继续跟栈走,找其上面的栈

在这里插入图片描述
找到了u这个栈

在这里插入图片描述
然后分析的过程中,本来以为是在u函数中o的变化生成的,随后调试的过程中发现,o这个列表的第二项已经出现了a_bogus参数

在这里插入图片描述

那么之后就分析到d栈中,在d栈中下断点,然后重新再刷新视频的列表,调试的过程中,发现出现了a_bogus参数

在这里插入图片描述
在这里插入图片描述
由于v[++p] = m这一行代码出现太多次了,因此我们直接考虑添加一个条件断点,直接设置:m.length > 100这一个条件,这样就可以很快到找到m的生成,当我们在调试的过程中,发现了乱码的情况,这个m就比较可疑. 然后我们在这个函数的所有的return的位置打下断点,随后在返回的位置找到了一个变量l,它的值就很像参数a_bogus

在这里插入图片描述
在这里插入图片描述
这个时候我们已经知道了,a_bogus肯定是在这个控制流当中生成的,那么这时候,我们在这个函数中关于v数组的运算的地方打下日志断点,涉及到 + - * / >> << 还有n.apply(d, e);的地方都写下日志点,然后我们根据控制台的输出发现:
首先请求的地址 + 字符串"dhzx"

在这里插入图片描述
算法还原太复杂了,看了很多博主的还是没懂,最终选择用补环境的方式来完成,首先把整个bdms_1.0.1.19_fix.js文件给粘贴下来,然后先把万能的代理代码复制到js文件当中,并用jsdom来补充环境.

# 万能代理模板
function get_enviroment(proxy_array) {for(var i=0; i<proxy_array.length; i++){handler = '{\n' +'    get: function(target, property, receiver) {\n' +'    if (property === "webviewBridge") {debugger;}else if(property === "bdms"){debugger;}' +'        console.log("方法:", "get  ", "对象:", ' +'"' + proxy_array[i] + '" ,' +'"  属性:", property, ' +'"  属性类型:", ' + 'typeof property, ' +// '"  属性值:", ' + 'target[property], ' +'"  属性值类型:", typeof target[property]);\n' +'        return target[property];\n' +'    },\n' +'    set: function(target, property, value, receiver) {\n' +'        console.log("方法:", "set  ", "对象:", ' +'"' + proxy_array[i] + '" ,' +'"  属性:", property, ' +'"  属性类型:", ' + 'typeof property, ' +// '"  属性值:", ' + 'target[property], ' +'"  属性值类型:", typeof target[property]);\n' +'        return Reflect.set(...arguments);\n' +'    }\n' +'}';eval('try{\n' + proxy_array[i] + ';\n'+ proxy_array[i] + '=new Proxy(' + proxy_array[i] + ', ' + handler + ')}catch (e) {\n' + proxy_array[i] + '={};\n'+ proxy_array[i] + '=new Proxy(' + proxy_array[i] + ', ' + handler + ')}')}
}

然后这个时候就直接执行js代码,缺什么就补充什么,一直到代码不发生报错为止.
这里有一个比较难的点就是,这个jsvmp当中应该是检测了XMLHttpRequest,我们需要将其补充在globalThis这个对象当中.

在这里插入图片描述

一直补充到没有报错为止,而且我们需要提前将window.a_bogus这个参数进行导出.然后当我们补充完整之后,发现代码没有走if(e.length == 2 && e[0] === ‘a_bogus’){这个代码
在这里插入图片描述

这里其实是因为,它a_bogus的生成是需要xhr对象调用send方法之后才会生成的,因此我们还需要手动来调用xhr的send方法.这样才会执行生成a_bogus

在这里插入图片描述
这里还有一个要注意的点就是,虽然代码执行get_a_bogus函数结束后返回了a_bogus,但是它的jsvmp代码还在执行,也就是说这个js文件还没有执行完毕,因此我们需要在js文件代码最后添加process.exit(0);
来手动结束代码的执行.
生成a_bogus结果如下:

在这里插入图片描述
然后我们需要注意一下就是,因为我们直接结束了js的进程,因此在python中不能用execjs来调用这个函数,是拿不到结果的.我们可以用subprocess模块来调用.

在这里插入图片描述
最终的结果如下:

在这里插入图片描述

http://www.dtcms.com/wzjs/365509.html

相关文章:

  • 手机网站大小便宜的seo网络营销推广
  • 网店美工岗位要求网站优化要多少钱
  • 购物网站管理系统网页制作代码大全
  • 创新的专业网站建设百度旗下有哪些app
  • 邢台做网站名列前茅百度客户端下载
  • php电子商务网站开发实例国外免费推广网站有哪些
  • wordpress导航类主题商丘seo排名
  • 湖州住房和城乡建设厅网站浏览器地址栏怎么打开
  • seo公司名字seo试用软件
  • 网站生成器apk怎么做南京网站排名提升
  • 一条龙平台关键词优化方法有什么步骤
  • 合肥新站区有做网站的吗新媒体运营哪个培训机构好
  • 无二制造 网站升级建设中2022年seo还值得做吗
  • 如何给网站做宣传推广软件排行榜前十名
  • 网站建设前 需要准备的常德网站建设公司
  • 门户网站开发需求分析报告百度热度
  • 如何迁移wordpress网站百度推广有效果吗
  • 做网站维护的收入怎么确认如何推广小程序
  • 南通做企业网站网站seo快速排名
  • 如何在凡科上做网站快速开发平台
  • 做网站都用什么工具360站长平台链接提交
  • 北京冬奥会网站制作素材seo全网营销的方式
  • 外国老头做中文网站产品推广方式
  • 动态网站建设优缺点网络市场的四大特点
  • 网站制作主要公司网页设计一般用什么软件
  • 微信网站搭建教程免费的关键词挖掘工具
  • 搭建一个网站 优帮云如何创建一个app平台
  • 阳谷网站建设电话百度搜索优化
  • 跨境电商自建站平台网站优化及推广
  • 南昌专业网站建设公司哪家好百度广告官网