某音a_bogus补环境轻松拿捏1

1.挂载点(加密函数入口)

记得加入我们的学期群: 点击链接加入群聊:https://h5.qun.qq.com/s/62P0xwrCNO
相信大家备受jsvmp算法还原密密麻麻的日志数字所困扰,那么有没有简单一点的办法呢?有啊,就是补环境,补环境最终目的是,让js代码运行的环境像浏览器一样,从而能够避开js代码里的环境检测,从而生成正确的加密的值。

看过我的文章《补环境过xhs的x2环境检测》,就知道,jsvmp 挂载了函数到window下面,xhs的挂载点容易看出,直接就是window._webmsxyw(url, json_data),那么a_bogus的挂载点是在哪呢?

image.pngimg

可以看出,bdms.js文件将bdms对象挂载在了window下面。

那么我们看看window.bdms长啥样:

image.pngimg

发现这个对象下嵌套了很多函数,而且都叫e,只是e下的_u ,_v有所不同。我们看看我们需要的加密函数:

image.pngimg

就是这个s函数调用后产生了a_bogus,那么s函数,我们如何调用到它呢?有的伙伴可能想到了,找到它在哪,然后导出到全局,这个想法虽好,但是实际不可行,如图:

image.pngimg

s函数,定位到位置后:

image.pngimg

这个看起来不是那么容易导出到全局。涉及变量和作用域问题。

结合前面讲的,我们能在init下找到我们需要的加密函数:

image.pngimg

他的路径是:

window.bdms.init._v[2].p[42]

然后传入参数即可调用。

2.补环境

接下来开始写代码,把所有bdms.js文件代码全部贴到本地,然后,直接运行node bdms.js,不出意外要出意外,也就是缺window等的,接下来就是挂上Proxy缺啥补啥,总结就是:

其实补的也不多,但就是一个问题,补环境得过程比较玄幻,有的错误得补出来后,才会继续抛出,也就是递归检测,你得补了上级才有下级的检测,比如你得补window下的screen吧,再次运行,他就会抛出screen的属性异常,比如screen.width是undefined,然后就继续补上。

不断完善就能得到最终结果:

我测试了新旧两版的结果如下:

image.png

总之就是,难点在于寻找加密函数挂载在了window下的哪里?这个还是需要一点点感觉,至于为什么bdms.js运行后,会将很多e函数挂载,而且每个对应的_v的列表的前两个值不一样,这个就需要看到反编译后的代码或许能解释。

记得加入我们的学期群: 点击链接加入群聊:https://h5.qun.qq.com/s/62P0xwrCNO

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

星云牛马

帮到您的话,可否请我喝杯咖啡

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

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

打赏作者

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

抵扣说明:

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

余额充值