当前位置:   article > 正文

最新abogus算法还原之传参加密_抖音abogus逆向

抖音abogus逆向

  • 本文只是我简要的分析过程,以及一些重要点的记录,不涉及核心算法

 

 一、网站

aHR0cHM6Ly9idXlpbi5qaW5yaXRlbWFpLmNvbS9kYXNoYm9hcmQvbWVyY2gtcGlja2luZy1saWJyYXJ5

base64解密即可,需要登录

二、定位参数

直接从启动器追踪

或者根据url参数定位

最后定位到 bdms.js文件

 经过分析是jsvmp,在这里采用的是算法还原方式

三 逆向分析

由于这个网站的jsvmp并没有进行混淆,还比较容易分析 ,直接插桩看日志

我个人喜欢逆向倒推的方式还原jsvmp,由于本文章只是传参算法还原,所以采用正向的方式阐述。

好了接着分析 单步走到这里

发现t包含了传入的参数 url、data、ua

 继续单步,会发现 t 的值会通过循环赋值给 v数组 


继续单步,会发现最后回传给 d 数组

经过不断地单步,

我们发现所有的循环都是根据 m 值的变化不断往下进行的

而m的值var m = i[r++] 又来源于r

插桩的核心就是 m、r、v、l、d以及含有运算符号的地方;

例如:`索引 m: ${m}, r: ${r}, d: ${JSON.stringify(d, function(key, value) {if (value == window) {return undefined} return value})}, p: ${p}, b: ${b}, l: ${JSON.stringify(l)}, u: ${u}`

下好日志断点后,点击下一页或者刷新网页,控制台就开始打印日志了;

四 日志分析

url加密

 u的值 是参数 url 加盐 "cus";b的值是生成的32位数组

 再次调用算法接口,传入第一个的结果得到:url_arr = [112,112,113,170,197,14,27,111,45,67,230,40,20,108,6,160,152,70,66,108,26,194,207,4,95,98,41,175,97,168,219,108]

对数组取url_arr[21]:194; 

对数组取 url_arr[22]:207

data加密

u的值 是参数 data 加盐 "cus" ;b的值是生成的32位数组

再次调用算法接口,传入第一个的结果得到: data_arr=[41,190,64,208,115,181,234,106,221,105,7,194,46,21,231,109,248,147,14,201,208,197,235,220,115,127,27,26,167,63,239,33]

对数组取data_arr[21]:197; 

对数组取 data_arr[22]:235;

ua加密 

u的值是参数 ua;b的值是生成乱码字符串

再次重复u的值是参数乱码字符串;b的值是生成的大字符串: "HQsOOFeJzEnhASt5IQVmr/ZHKil9i5XWmwfB0XKws4pCcZA+WRB0FgDDBIuMSLILCQe2jcCobh/GvpPR37VOqEhEEoaVWCtMYEhlPwYzC9AwzKv2OFLuq++eJSO75iobpkMUtbwduu+HOwiD7ACK"

再次的值是大字符串;b的值是生成的32位数组ua_arr=[115,56,238,221,227,198,209,145,57,87,27,230,96,199,234,186,187,51,170,227,146,125,171,196,146,48,228,20,6,92,144,146]

对数组取ua_arr[23]:196; 

对数组取ua_arr[24]:146; 

具体的加密算法需要根据m和r的值打条件断点,单步调试,会发现是有好几套jsvmp,要想全部还原,每一套jsvmp都要插装调试一下。

再经过 aid, pageId, timestamp(十三位时间戳), "976|906|1897|1002|1954|-61|822|822|1920|1040|1920|1080|959|889|24|24|Win32"等参数进行运算,这里就不在详细介绍了,举个例子

例如:

timestamp=1710989507568 

(timestamp >> 24) & 255

(timestamp >> 16) & 255

(timestamp >> 8) & 255

timestamp & 255

五 最后得到115位数组

[44,94,0,0,0,0,10,101,58,0,196,237,0,0,0,3,0,71,63,51,146,148,0,0,0,0,217,0,0,8,94,237,0,148,192,3,398,1,398,1,70,0,0,0,57,51,49,124,56,50,52,124,49,56,53,51,124,49,48,48,50,124,49,57,55,48,124,45,54,52,124,48,124,48,124,49,57,50,48,124,49,48,52,48,124,49,57,50,48,124,49,48,56,48,124,57,51,49,124,56,50,52,124,50,52,124,50,52,124,87,105,110,51,50,51]

以上只是对加密参数进行了一个简单的分析,最终结果已经实现了,感兴趣的可以评论一下

展示一下最终结果:

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/562913
推荐阅读
相关标签
  

闽ICP备14008679号