首页 > 编程语言 >最新abogus算法还原之传参加密

最新abogus算法还原之传参加密

时间:2024-03-22 13:32:13浏览次数:27  
标签:abogus arr 之传 48 49 50 算法 124 数组

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

 

 一、网站

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]

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

展示一下最终结果:

标签:abogus,arr,之传,48,49,50,算法,124,数组
From: https://blog.csdn.net/m0_54373110/article/details/136932847

相关文章

  • 数据结构与算法设计
    前言最近在复习数据结构,两年前曾经阅读过大量相关书籍,包括各种算法入门书和一些游戏逻辑代码。当时自认为花了大量时间理解排序算法的逻辑,但是要自己复述仍然存在困难,做题数目也偏少,说明并没有纳入自己的知识体系。但存在一个问题是,没有自己动手写大量的程序,只是短时间(半个月)内......
  • 算法文章中涉及的若干基础类的主要API
    本文记述了笔者所写算法文章中涉及的若干基础类的主要API(部分参考算法:第4版/(美)塞奇威客(Sedgewick,R.),(美)韦恩(Wayne,K.)著;谢路云译.--北京:人民邮电出版社,2012.10(2021.5重印)实现,包括顺序存储结构、基础类的包装类、随机数、标准输入输出等。◆......
  • 代码随想录算法训练营第十七天| 110. 平衡二叉树 257. 二叉树的所有路径 404. 左叶
    110.平衡二叉树https://leetcode.cn/problems/balanced-binary-tree/description/publicbooleanisBalanced(TreeNoderoot){intbalance=balance(root);returnbalance==-1?false:true;}publicintbalance(TreeNodenode){i......
  • 新能源汽车充电桩站点烟火AI识别检测算法应用方案
    新能源汽车作为现代科技与环保理念的完美结合,其普及和应用本应带给人们更加便捷和绿色的出行体验。然而,近年来新能源汽车充电火灾事故的频发,无疑给这一领域投下了巨大的阴影。这不禁让人深思,为何这一先进的交通工具在充电过程中会引发火灾事故。从技术层面来看,新能源汽车的充电系......
  • TSINGSEE青犀AI智能分析网关V4的人员摔倒检测算法及应用
    人员摔倒检测AI算法是一种基于计算机视觉和机器学习的技术,它通过对视频或图像中的人员运动进行分析,自动检测并识别出摔倒事件。该算法采用了多种技术手段,包括深度学习、目标跟踪、姿态估计等,以实现高效、准确的摔倒检测。今天我们来介绍下TSINGSEE青犀AI智能分析网关V4的人员摔倒......
  • 雪花算法生成分布式序列号
    packageio.binghe.seckill.infrastructure.utils.id;importjava.util.Date;publicclassSnowFlake{/***起始的时间戳:2023-04-1913:42:00,使用时此值不可修改*/privatefinalstaticlongSTART_STMP=1681882920782L;/***每一部分......
  • 2024.3.21算法
    关于c语言中sin/cos的用法若想输出30度的sin30------写法sin(303.1415926/180)对此控制输出用printf("%.2f",)即可保留两位小数*reverse函数使用时需要加#include注意!!!!reverse翻转string时,reverse(str.begin(),str.end());*map自定义对key键排序,由小到大----但是map不可以......
  • 雪花算法工厂
    packageio.binghe.seckill.infrastructure.utils.id;importjava.util.concurrent.ConcurrentHashMap;importjava.util.concurrent.ConcurrentMap;publicclassSnowFlakeFactory{ /** *默认数据中心id */ privatestaticfinallongDEFAULT_DATACENTER_ID=......
  • 备战蓝桥杯Day28 - 贪心算法
    一、贪心算法贪心算法(GreedyAlgorithm)是一种在每一步选择中都采取在当前状态下最好或最优(即最有利)的选择,从而希望导致结果是全局最好或最优的算法。贪心算法在有最优子结构的问题中尤为有效。最优子结构指的是问题的最优解可以由子问题的最优解有效地构造出来。贪心算法与动......
  • 数据结构与算法基础知识
    数据结构与算法1算法的基本概念算法:是指一组有穷的指令集,是解题方案的准确而完整的描述。也不等于计算方法。算法的基本特征:确定性,算法中的每一步骤都必须有明确的定义,不允许有多义性;有穷性,算法必须能在有限的时间内做完,即能在执行有限个步骤后终止;可行性,算法原则上能够精......