a_bogus逆向分析

1 个位兄弟姐妹们,看到这个参数是不是有点眼熟阿,没错他就是和某音的X-bougs很像

2 其实他们的算法生成逻辑都是用的同一套算法的,换汤不换药的,用的都是jsvmp来的,只是里面嵌套了很多vmp

3 这里我们先进入他的启动器里进去找到该方法断点打上,看他是否可以短住,要是短住了那恭喜你成工的定位到该函数了,没找到的具续找,值到短住为只

2fa6d0902ee34a89abc217a49e9b496e.png

从这里进去

进去之后手动搜索一下a_bogus进行跟站一下

6274247978f84dc59707101a6bfc431d.png

可以找到bdms.js这个文件,按补环境的方式来做,整个复制进我们的环境里跑

接下来就是在控制台进行输出 Document.all 就是补环境的一个坑点

18f4c80b6e6549d2b595f3ba18b01dfc.png

 

接下来需要判断 document.all == undefined 是true

但document.all又有具体的功能,这算是JavaScript的一个历史问题了,它浏览器自己执行起来没问题,但对于我们补环境框架来说,要自己实现document的功能同时让其为undefined 就不好解决了。这个检测点出现已经一年多了,目前主流的解决方案是改node的源码或者做插件来解决。

本以为补完一个环境框架就高枕无忧,谁知道补环境的各种对抗早已开始,上面只是一个小例子,还有风佬做的使用document.createElement对任意函数做检测来拖慢你框架速度的这种阳谋。卷到这程度我是卷不动 了,不如回去搞纯算吧。

那不用补环境框架,abogus该怎么实现逆向呢,好在我们的补环境尝试也不是全无收获,在我们的环境中执行这个位置会报错

 

14b60da47f6344ddbeb9d08037cc7d2f.png

 

搜整个js,一共有29处这样的代码,全打上日志断点看看

 

1888f0d3991e441f820dce42c072a69f.png

可以看到已经在第26处得到了abogus值

 

c42397d9aa744e338eed8c828d3a5540.png

 

17514fa2935945f5aa7438e1f52e3623.png

 

断到第26处看入参是什么,可以发现一部分来自第25处的结果

 

5b574d5159b64ed0ad2416e8ee13d2e3.png

 

手动调试一下,发现另一部分来自这里

cb2e45e1c9024e7db303d918be26f867.png

看下s值所属的函数

e0fe2cbef3384adf9a799c5a8e438c4c.png

这参数看着就对,调试一下理解一下加密流程:

上面的e函数先是计算得到了 一个短的字符,跟25处的结果一起拼接得到第26处的参数计算得到abogus值。

对应的函数也没有混淆,找到后导出给全局变量就可以调用了。

这里需要传三个参数,其中ua和body校验不严,可写死也可以传空

a073f686595c4b53b7039abae961d6a5.png

 

展示结果

 

d19d1d9727c64898907d90459617c1a0.png

总体来说就是一个vmp里面嵌套了多个vmp,难点应该在这里,还有就是补环境,混淆的话可以使用AST技术进行还原或者就硬着头皮直接手动还原

 

 

 

 

 

  • 6
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 9
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值