抖音PC-a_bogus参数逆向分析

叠甲

此文章只用作学习,请勿用做任何商业用途,如有侵权请添加首页微信或QQ1348943384进行通知删除!如用本文中的代码去对他人造成不良影响,本人概不负责。

参数分析

下面几个参数在请求和逆向过程中你会经常看到,让我们先来分析下他们的获取方式。

  • ttwid:cookies中的一个参数,本人在测试时发现此参数必须携带。
  • webid:请求params中的参数,可以不用携带。
  • aid:定值,在后续逆向过程中有用。
  • pageid:定值,在后续逆向过程中有用。
  • mstoken:请求params中的参数,之前请求的时候有这个参数,后面请求的时候又没了,可以不用携带。
  • a_bogus:请求params中的参数,对标老版的x_bogus,也是本文章逆向的目标。

ps:上方的ttwid,webid,aid,pageid在随便一个页面请求中都会返回。

a_bogus逆向分析

可以+v免费回答问题,大家都是搞逆向的,互相学习是可以的
还原代码后代码地址:打不开可以挂代理

ps:本人在逆向的过程中也是借鉴了网络上的文章,顺着前人的思路走能省下很多时间,因此下面的分析中不会一步步说明的很清楚。

加密位置

经网络上的文章知晓加密位置位于bdms.js文件中。
在这里插入图片描述

进入文件会看到很多return (0,e._u)(r[0], arguments, r[1], r[2], this),搜索(r[0], arguments, r[1], r[2], this)会有29个,在26处生成最终结果,27处生成加密参数(也是从网络文章中知晓的)。

在这里插入图片描述

算法还原

单步进入26处后会发现是一个控制流。控制流的还原最好是通过打日志断点实现。

整个26处算法还原后的代码如下(ps:这个代码也是在网络上直接找到的,本人也没有进行逆向过程):

function get_ab() {
    let lm4 = "arguments中的乱码"
    百度关键词 a_bogus算法还原大赏,人家都把代码写出来了....
}

逆向乱码4

整个逆向过程中会存在4个乱码,乱码4就是最终的乱码,经上面算法可生成最终返回参数。

由网络上的文章可以知道:乱码4 = 乱码2 + 乱码3

逆向乱码3

由网络上的文章可以知道乱码3在25处生成。(ps:在老版本中这里都不需要分析,直接扣方法就可以了,新版就是把老版的此代码扩写成了控制流,所以你懂的😀。

接下来就是分析这部分代码了,控制流的还原最好是通过打日志断点实现。可以在类似var y = i[r++];的地方添加以下断点,然后右键日志进行保存,再根据日志的显示一点点的分析

日志断点:"位置 1", "索引m", m, "索引r", r, "值p: ", JSON.stringify(p, function(key, value) {if (value == window) {return undefined} return value}),"值v",v

乱码3的生成需要用到乱码1。

function get_lm3(lm1) {}

逆向乱码1

乱码1在27处生成,它的生成就比较复杂了,把乱码1逆向成功就等于成功了。

难道是不难,就是步骤比较多,耐心点,相信自己!

  1. 乱码1是通过fromCharCode(...array4)生成。
  2. array4 = [...array1, ...array2, ...array3]
  3. array2是根据你的浏览器参数生成的,可以考虑写死。
  4. array1array3都是从b数组中一个个元素取出来的拼接成的。
  5. b数组中涉及到两个时间戳和三个数组,这里我们把这三个数组叫成barray1,barray2,barray3
  6. 两个时间戳注意下谁大谁小。
  7. barray3:由ua生成,类似ua的可以不用去还原算法,直接写死。不过你在请求时的ua必须和这里的ua要保持一致。真有需要批量采集数据的话直接生成几百个ua,然后在控制台中调用js代码直接生成结果就行,够封的了。
  8. barray2:post请求用data+‘cus’,get请求用'cus'生成一个32位数组B1,再由B1生成barray2。
  9. barray1:将传入的参数生成一个32位数组A1,再由A1生成数组1。

逆向乱码2

你都已经把乱码1逆向出来了,乱码2还不是简简单单,这里就提一嘴是个随机值,不如直接写死😀。

最后就是上结果了!!

在这里插入图片描述

还原代码后代码地址:打不开可以挂代理

  • 27
    点赞
  • 66
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值