某短视频新算法之a_bogus逆向分析

本文纯技术交流,与平台无任何关系

1.抓包分析

我们进入到章若楠的主页面,进行抓包分析,发现有很多包,发现web/aweme/post这个包比其他的包都大,很有可能就是我们想要的数据

进去查看预览发现这个就是我们想要的数据

请求标头里没发现有需要逆向的参数

载荷里发现sec_user_id明显就是章若楠小姐姐对应的id咯,然后就是a_bogus和msToken这两个看起来都像是需要逆向的,想练手的可以试着都做做,但是我这里告诉你只需要校验a_bogus

2.代码分析

(1)首先我们搜索a_bogus发现搜索不到这,那怎么办,那首先就要运用到今天的第一个断点xhr断点  

我们复制一小段这个url在这里,然后刷新页面吗,就会断住

观察到这个this已经生成了a_bogus(以后直接简称ab值),所以现在用启动器往前找

最后我们定位到这个位置,接下来要运用到第二种断点,日志断点

这样就会在控制台打印s.apply(b, u)的值

发现这个和ab值长度差不多,所以这里基本上就是xb值的生成位置了,接下来我们肯定是要他只断在生成ab值的地方,那接下来就要介绍第三个断点,条件断点

添加条件s.apply(b, u).length==168这就是了

(sorry!刚才忘记和你们说ab值是168位了!!!求原谅!!!你们不信就快去试试!!!)

然后我们进去代码,发现已经没法读了,那我们就抠代码啦

3.抠代码

就直接全c放到pycham里了,全扣就是这么简单。(没错我就是在水流程)

4.补环境

发现报错,就是我们要补的环境了

这里我们补好了window,发现接下来报错根本无从下手,这里介绍一个proxy代理

问:什么是proxy代理 

JavaScript 中的代理(Proxy)是一种强大的功能,它允许你拦截并自定义 JavaScript 对象的基本操作,比如属性查找、赋值、函数调用等。这意味着你可以在对象的访问和修改过程中插入自定义的行为,从而实现更高级的逻辑或者限制访问。

具体来说,JavaScript 的 Proxy 对象允许你定义一个“代理”,这个代理包装了另一个对象(称为目标对象),并且可以拦截对目标对象的操作。当你对代理对象进行操作时,这些操作可以被拦截并被自定义处理,然后再决定是否传递给目标对象。

比如,你可以使用 Proxy 来实现以下功能:

  1. 属性验证和过滤: 在获取或设置对象的属性时,可以验证属性值的合法性,并根据需要进行过滤或者转换。
  2. 拦截函数调用: 可以在调用对象的方法之前或之后执行额外的逻辑,比如记录日志、性能监控等。
  3. 隐藏属性: 可以隐藏对象的某些属性,使其对外部代码不可见或不可修改。
  4. 数据响应式: 可以通过拦截对象的属性操作来实现响应式数据的更新和通知。

这里我给出我的proxy代理代码

​
function setProxy(proxyObjs) {
    for (let i = 0; i < proxyObjs.length; i++) {
        const handler = `{
      get: function(target, property, receiver) {
       if (property != "Math" && property != "isNaN") {
            if (target[property] && typeof target[property] != 'string' && Object.keys(target[property]).length > 3) {

            } else {
            console.log("方法:", "get  ", "对象:", "${proxyObjs[i]}", "  属性:", property, "  属性类型:", typeof property, ", 属性值:", target[property], ", 属性值类型:", typeof target[property]);}}
            return target[property];
      },
      set: function(target, property, value, receiver) {
        console.log("方法:", "set  ", "对象:", "${proxyObjs[i]}", "  属性:", property, "  属性类型:", typeof property, ", 属性值:", value, ", 属性值类型:", typeof target[property]);
        return Reflect.set(...arguments);
      }
    }`;
        eval(`try {
            ${proxyObjs[i]};
            ${proxyObjs[i]} = new Proxy(${proxyObjs[i]}, ${handler});
        } catch (e) {
            ${proxyObjs[i]} = {};
            ${proxyObjs[i]} = new Proxy(${proxyObjs[i]}, ${handler});
        }`);
    }
}

​

接下来就是代理window,location,navigator,document等等,就开始补环境了这里我就不过多赘述了

5.导出函数

首先我们再次进去浏览器,观察参数,发现主要是传的参数是个数组,其中5是ua,3是载荷进行url拼接

我们在pycham搜索59 !=m,然后加上window.xxx=u,这样我们就把u函数成功导出了

发现ab值已经出现,这里给出我最后执行的代码,到时候只需要python调用js生成ab值即可

function fn(data) {
    var r = window.xxx._v;
    ag=[
    0,
    1,
    1,
    data,
    "",
    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36"
]
    return (0,
        window.xxx._u)(r[0], ag, r[1], r[2], this)

}

6.效果演示

测试完成,逆向成功

这样大家就可以获得章若楠小姐姐的全部信息啦,给位lsp还能获取其他小姐姐们的

7.补充

本文因为版权问题,不能展示图片,有需要的私信我就好,有求必应,看我主页也能得到信息

抖音是一款流行的短视频平台,而a_bogus抖音上的一个账号,因此我们可以针对这个账号进行分析。 首先,通过观察a_bogus账号下的视频内容,可以发现该账号的视频内容风格独特、多样化。a_bogus经常上传一些有趣、搞笑或者有创意的视频,吸引了大量的观众。这些视频内容往往具有瞬间爆发力,引发观众们的共鸣,从而获得众多的点赞和评论。 其次,从a_bogus账号的粉丝数量来看,可以看出他的影响力很大。拥有大量的粉丝意味着他的视频能够被更多的人看到,也能够更好地传播。这也表明了他在抖音社区中具有一定的影响力和知名度。 另外,观察a_bogus账号下视频的互动情况,可以发现他的视频往往会引发用户们的积极回应。他的视频能够唤起大家的共情,引发大量的评论和分享,产生良好的互动效果。这对于扩大他的影响力和提高他的知名度来说是十分重要的。 最后,从a_bogus账号的发布频率来看,他经常保持一定的更速度,保持了一定的粉丝黏性。经常更视频可以保持观众的兴趣,同时也对于扩大他的影响力有积极的作用。 总体来说,a_bogus抖音平台上通过独特多样的视频内容,大量的粉丝及互动,以及频繁的更率,得到了广泛的关注和认可。这些因素共同促使他成为抖音上一个受欢迎和有影响力的账号。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

往日情怀酿做酒 V1763929638

往日情怀酿作酒 感谢你的支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值