某美动态参数对抗思路

简介: 某美动态参数对抗思路
目标网址:aHR0cHM6Ly93d3cuaXNodW1laS5jb20vdHJpYWwvY2FwdGNoYS5odG1s

观前提示:

本文章仅供学习交流,切勿用于非法通途,如有侵犯贵司请及时联系删除


0x1 某美滑块

玩过的朋友们都知道 某美的滑块在算法上基本都没怎么更新 但是在参数名上更新的比较频繁

在140左右的版本中 受混淆的帮助 可以很好的匹配出对应的参数名

(function(a1,a2,a3){
xxx(a1);
xxx(a2);
xxx(a3);
}('a1','a2','a3'))

因为出现的位置也相对固定 所以 只需要找到一个固定值 便可以通过数组偏移找到我们所需的参数名和对应的key值

直到发文为止 目前版本已经来到了155 加密也变成了类似于ob的类型

因为部分字段被混淆 所以单纯的正则并不能很好的匹配出所需要的参数名和key

此时 AST的用处就来了

0x2 v佬打包的babel库

实现免安装 直接用!

v佬的github:https://github.com/cilame/v_jstools

蔡老板的使用示例:https://github.com/Tsaiboss/decodeObfuscator

0x3 动态更新对抗

拿到某美的js代码 通过观察感觉和ob没啥区别 就变了一点

总体来说 只需要还原 _0x1d76f7(****)和object混淆部分即可

大家应该都会吧 不会的自己找蔡老板进修一下

值得一提的是 object部分有套娃 可能需要还原2次

还原好的结果就是

对比一下还原前

还原到这个地步 就已经可以达到取值的目的了

先找到我们要取值的地方

第一处

第二处

现在用正则匹配出我们需要的参数名和key就简单很多

但是这里 我还是选择使用AST来匹配

只需要进行简单的判断即可

"CallExpression"(path){
    var {arguments}=path.node;
        if(arguments.length!=3)return;
        if(!types.isLiteral(arguments[1]) || !types.isCallExpression(arguments[2]))return;
        var key=arguments[1].value;
        var {callee,arguments}=arguments[2];
        if(!types.isMemberExpression(callee))return;
        if(!types.isThisExpression(callee.object))return;
        if(callee.property.value!='getEncryptContent')return;
        var key_value=arguments[1].value;
        ....
    }   
}
"AssignmentExpression"(path){
    var {left,right}=path.node;
    var {callee,arguments}=right;
    if(!types.isMemberExpression(callee))return;
    var {object,property}=callee;
    if(!types.isThisExpression(object))return;
    if(property.value!='getEncryptContent')return;
    if(arguments.length!=2)return;
    var key_value=arguments[1].value;
    var {property}=left;
    var key=property.value;
    ....
}

取出值保存下来后 因为逻辑顺序不会变 所以取出来的顺序也不会变

后续使用只需要在固定的位置填入对应位置的值就可以了

0x4 实战效果

一下子就省心很多 再也不用每次更新都去手动更新了

得益于v佬的免安装babel 不用每次换电脑都安装一次babel了



感谢各位大佬观看

共同进步 共同学习

如有错误 还请大佬们指出



[完]

相关文章
|
3月前
|
机器学习/深度学习 算法 Python
动态规划法和策略迭代在扫地机器人中确定状态值和动作值函数的策略评估(python实现 附源码 超详细)
动态规划法和策略迭代在扫地机器人中确定状态值和动作值函数的策略评估(python实现 附源码 超详细)
56 0
|
3月前
|
机器学习/深度学习 数据采集 监控
机器学习-特征选择:如何使用递归特征消除算法自动筛选出最优特征?
机器学习-特征选择:如何使用递归特征消除算法自动筛选出最优特征?
606 0
|
3月前
|
机器学习/深度学习 网络架构 计算机视觉
YOLOv5改进 | 检测头篇 | 利用DBB重参数化模块魔改检测头实现暴力涨点 (附代码 + 详细修改教程)
YOLOv5改进 | 检测头篇 | 利用DBB重参数化模块魔改检测头实现暴力涨点 (附代码 + 详细修改教程)
234 3
|
1月前
|
自然语言处理 算法 搜索推荐
字符串相似度算法完全指南:编辑、令牌与序列三类算法的全面解析与深入分析
在自然语言处理领域,人们经常需要比较字符串,这些字符串可能是单词、句子、段落甚至是整个文档。如何快速判断两个单词或句子是否相似,或者相似度是好还是差。这类似于我们使用手机打错一个词,但手机会建议正确的词来修正它,那么这种如何判断字符串相似度呢?本文将详细介绍这个问题。
205 1
|
18天前
|
JavaScript 前端开发
深度解析 new 原理及模拟实现
【8月更文挑战第1天】 深度解析 new 原理及模拟实现
10 0
|
3月前
|
机器学习/深度学习 文字识别 算法
[Halcon&图像] 缺陷检测的一些思路、常规检测算法
[Halcon&图像] 缺陷检测的一些思路、常规检测算法
1137 1
|
9月前
|
机器学习/深度学习 算法 测试技术
【网安专题10.25】10 TitanFuzz完全自动化执行基于变异的模糊测试:生成式(如Codex)生成种子程序,逐步提示工程+第一个应用LLM填充模型(如InCoder)+差分测试
【网安专题10.25】10 TitanFuzz完全自动化执行基于变异的模糊测试:生成式(如Codex)生成种子程序,逐步提示工程+第一个应用LLM填充模型(如InCoder)+差分测试
168 0
|
机器学习/深度学习 算法 计算机视觉
舌体胖瘦的自动分析-曲线拟合-或许是最简单判断舌形的方案(六)
舌体胖瘦的自动分析-曲线拟合-或许是最简单判断舌形的方案(六)
107 0
|
自动驾驶 机器人 计算机视觉
3D检测难点 | 3D检测如何解决远处小目标问题?Deformable PV-RCNN 或是个答案!
3D检测难点 | 3D检测如何解决远处小目标问题?Deformable PV-RCNN 或是个答案!
151 0
|
算法 计算机视觉
Two-Stage目标检测困难负样本如何利用?大小目标如何同时优化?nRPN给你答案!
Two-Stage目标检测困难负样本如何利用?大小目标如何同时优化?nRPN给你答案!
122 0