自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(507)
  • 收藏
  • 关注

原创 AST反混淆插件| 浏览器全局对象参与计算反混淆系列插件(三)

本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,否则后果自负,如有侵权,请联系作者立即删除!浏览器环境检测或参与计算。通用型插件,多用于收尾工作。

2025-05-26 08:36:11 61

原创 AST反混淆插件| 浏览器全局对象参与计算反混淆系列插件(二)

本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,否则后果自负,如有侵权,请联系作者立即删除!浏览器环境检测或参与计算。通用型插件,多用于收尾工作。

2025-05-23 17:40:24 110

原创 AST反混淆插件| 删除一些执行后没有意义的节点

本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,否则后果自负,如有侵权,请联系作者立即删除!通用型插件,多个节点类型,具体参见源码。通用型插件,多用于收尾工作。

2025-05-20 09:00:19 156

原创 AST反混淆插件| 围绕逻辑表达式的垃圾代码删除

本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,否则后果自负,如有侵权,请联系作者立即删除!datadome等大厂字符串解密后的混淆代码。

2025-05-19 09:02:28 178

原创 AST反混淆插件|去控制流的一些简短又必须要用到的方法

本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,否则后果自负,如有侵权,请联系作者立即删除!为了更好的配合九大节点合并算法还原控制流,我们需要写一些额外的方法进行配合,更好的还原控制流。

2025-05-17 09:04:37 336

原创 AST反混淆实战|复杂的逻辑表达式转if语句系列教程(3)

本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,否则后果自负,如有侵权,请联系作者立即删除。目前就剩最顶层的if语句的test节点没有被还原了,可惜的是,它的alternate不为null。咱们接着上次的文章继续讲,经过上次的代码还原后,我们再来分析该如何处理。星球用户可免费查看,无删减。

2025-05-14 19:40:59 263

原创 AST反混淆实战|复杂的逻辑表达式转if语句系列教程(2)

昨天的文章并不能囊括所有逻辑表达式的情形。今天介绍另外一种简单的情况,即当if表达式的alternate子节点都是null的情况。本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,否则后果自负,如有侵权,请联系作者立即删除。第一个if语句的alternate子节点不是null,不在今天的讨论范围内。星球用户可免费查看,无删减。

2025-05-07 17:33:23 253

原创 AST反混淆实战|复杂的逻辑表达式转if语句系列教程(1)

本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,否则后果自负,如有侵权,请联系作者立即删除。光这种循环,安全人员又觉得不过瘾,搞成了 if 语句。它是一个if语句,它的混淆全部都在if的test节点里面。其实,只要稍微研究一下,各个击破,还是可以进行还原处理的。现在越来越多的混淆代码上了控制流,将自上而下执行的代码通过工具混淆成了。让我们回归本质,既然是逻辑表达式,其操作符无法就是 || 和 &&.各种表达式嵌套让逆向人员 头晕眼花,无从下手,直接放进了回收站。星球用户可免费查看,无删减。

2025-05-06 17:26:51 227

原创 AST反混淆插件|去控制流专题:for-if语句转for-switch语句

因为if语句的复杂性,在去控制流的时候,我们会先将if语句转换成switch语句,再配合九大节点合并算法进行去控制流的操作即可。本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,否则后果自负,如有侵权,请联系作者立即删除。

2025-04-28 16:45:34 211

原创 AST反混淆插件|表达式语句只包含单个节点时的还原

本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,否则后果自负,如有侵权,请联系作者立即删除!

2025-04-18 21:08:16 324

原创 AST反混淆插件|给逻辑与表达式统一加上小括号

babel库enter方式解析,可能会导致逻辑表达式优先级的问题,而 && 的优先级要大于 ||,因此给所有的逻辑与表达式手动加上小括号,让我们更容易还原嵌套的逻辑表达式。本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,否则后果自负,如有侵权,请联系作者立即删除!

2025-04-17 20:49:51 248

原创 AST反混淆插件|赋值语句中的left节点在其他地方无引用时的删除

本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,否则后果自负,如有侵权,请联系作者立即删除!在做完一些字符串的解密还原后,会留下一些垃圾代码,需要做删除处理。作为收尾工作,需要简单判断下即可。多少变种ob混淆,如datadome等。

2025-04-16 14:44:39 433

原创 AST反混淆插件|将混淆代码中的全局函数提到执行语句的前面来

在ob混淆及其变种里,故意把函数定义丢到最后面恶心人,直接运行,发现函数没有被定义,因此也无法还原。所以写个插件将其提到最前面,不影响代码逻辑。本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,否则后果自负,如有侵权,请联系作者立即删除!

2025-04-15 17:21:25 304

原创 AST反混淆插件|最简单的if语句转switch语句

本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,否则后果自负,如有侵权,请联系作者立即删除!现在的混淆代码越来越多的控制流,有难有易,作为学习的人来说,先易后难,事半功倍。

2025-04-14 11:36:02 334

原创 AST反混淆插件|函数名参与四则运算的还原

在一些比较骚的混淆代码中,会让函数名参与四则运算,这给我们还原加密的字符串带来了一定的阻碍,因此,先将这些比较离谱运算进行还原处理,再还原字符串比较好。本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,否则后果自负,如有侵权,请联系作者立即删除!在某V3混淆代码中比较常见。

2025-04-11 09:46:19 263

原创 JS反混淆实战|ob混淆还原不了?不存在的。

本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,否则后果自负,如有侵权,请联系作者立即删除!就是因为这个是非字符串,导致反混淆的特征检测代码返回了false,因此才没被还原。稳了,这不就是标准的ob混淆嘛,于是拿出大杀器进行还原处理。不过没关系,我们对照在线网站进行调试,动态获取AA的值即可。对于这种问题,我尝试本地读取整个混淆代码的源码,用来替换。写个插件,将AA的值全部替换,并将大数组的值进行相应的更改。没有外部变量,唯一一个window对象,问题不大。这样,就拿到了AA的值,

2025-04-10 17:14:10 336

原创 AST反混淆插件|纯函数的调用还原,兼容多个函数调用方式

混淆代码一般会把字符串或者数值等字面量隐藏在函数中,有些是纯函数,有些是非纯函数。将其还原成字面量,方面我们后续处理。本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,否则后果自负,如有侵权,请联系作者立即删除!

2025-04-09 16:56:33 300

原创 AST反混淆插件|单个 ArrayExpression 嵌套在 MemberExpression 类型里的混淆还原

nb][0](1,2)的 函数调用,它其实是多此一举,所以,需要写个方法将其简化,以便进行字符串的解密和替换。本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,否则后果自负,如有侵权,请联系作者立即删除!在某里V3的混淆代码中,可以看到形如。

2025-04-08 20:20:18 227

原创 AST反混淆插件|判断函数调用实参是否均为字面量的方法

由于path.isliteral() 和 types.isliteral() 的功能比较弱,因此,我自己写了个方法,专门来判断 当前。本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,否则后果自负,如有侵权,请联系作者立即删除!函数调用的实参是否均为字面量。代码认为 123,-456,[],{},[{}],都是字面量。无,属于通用型的插件。

2025-03-26 08:56:49 333

原创 AST反混淆插件|无实参调用表达式且callee子节点是FunctionExpression类型的混淆代码还原

本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,否则后果自负,如有侵权,请联系作者立即删除!FunctionExpression时的还原处理。当一个函数的调用表达式,callee子节点为。

2025-03-25 10:41:00 304

原创 JS反混淆实战|使用cyberchef工具进行js代码反混淆

本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,否则后果自负,如有侵权,请联系作者立即删除!CyberChef是一款强大的编码转换器,集成了多种编码转换的功能,能辅助大家方便快捷地解密出恶意脚本。CyberChef 的 URL Decode 功能。3.没有被完全解开,我们选择Output的。unescape 函数,因为,可以试试。4.将混淆的js代码复制出来反混淆即可。逆向或者安全的人员都应该能熟练的使用它。

2025-03-24 11:59:09 776

原创 JS逆向实战|某视频网站的播放地址还原分析

看样子要先解决掉这个debugger,反混淆后替换,即可轻易的过掉debugger。不过我用的是一劳永逸的办法,就是修改浏览器源码,让debugger失效。本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,否则后果自负,如有侵权,请联系作者立即删除!先打开浏览器的控制台,在浏览器栏输入视频网站,回车后发现后跳转到bing首页。看到了检测的位置,我们在 if这行 打上断点,然后去掉 脚本 断点,代码改写纯算啥的就交给DeepSeek吧,我就不在这里装逼了。再次F8,停到断点位置,在控制台修改。

2025-03-23 21:22:54 735

原创 AST反混淆插件|混淆代码中逻辑表达式的简化

本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,否则后果自负,如有侵权,请联系作者立即删除!当逻辑表达式的子节点能得到确定的布尔值时,可以进行简化操作。JScrambler混淆的代码也有大量的这种语句。注:样本来自datadome,经过。

2025-03-22 09:48:08 324

原创 AST反混淆插件|混淆代码中 in 语句的还原处理

有些代码中,会对浏览器环境进行检测,如果与浏览器环境不符,则会得到错误的结果,因此,可以写个插件,对于某些浏览器环境的检测直接替换。本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,否则后果自负,如有侵权,请联系作者立即删除!

2025-03-21 17:26:53 352

原创 AST反混淆实战|复杂逻辑表达式还原详解

本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,否则后果自负,如有侵权,请联系作者立即删除!这时候,操作符是 && 了,这里需要有一点 && 操作符的基础知识,我相信你有。我们发现它是一个 大的 逻辑表达式,而且是 || 操作符。这里需要有一点 || 操作符的基础知识,我相信你有。还原复杂的逻辑表达式。

2025-03-14 17:34:26 353

原创 AST反混淆插件|超复杂的逻辑表达式转if语句

关注它,不迷路。 本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,否则后果自负,如有侵权,请联系作者立即删除!1.还原场景现在的混淆代码是越来越复杂,也是越来越恶心。控制流之前是if语句,现在if语句变成了很复杂的逻辑表达式,毕竟难搞。2.遍历的节点类型ExpressionStatement|IfStatement3.混淆代码实例还原前:tD>43&&...

2025-03-13 17:44:45 317

原创 AST反混淆插件|ob混淆中object对象重新赋值的还原处理

关注它,不迷路。 本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,否则后果自负,如有侵权,请联系作者立即删除!1.还原场景ob混淆中,经常会有变量的重新赋值,相当于一个跳板。这个时候,可能会导致非常量,无法使用星球里的插件直接还原,因此需要重新处理一下。然后在适配星球里的插件即可。2.遍历的节点类型VariableDeclarator3.混淆代码实例还原前:vard =...

2025-03-12 17:19:10 351

原创 AST反混淆插件|重命名所有含非ASCII码标识符的插件

关注它,不迷路。 本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,否则后果自负,如有侵权,请联系作者立即删除!1.还原场景有些变量名非ASCII码(如蝌蚪文),给代码的阅读带来一定的难度,因此写个插件来优化这些变量名,是个不错的选择。2.遍历的节点类型Identifier3.混淆代码实例无。4.真实案例蝌蚪文等喊非ASCII字符变量的混淆代码。5.插件源代码https:/...

2025-03-11 17:22:33 344

原创 AST反混淆插件|变种ob混淆里的for循环转换成标准ob混淆的while循环

关注它,不迷路。 本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,否则后果自负,如有侵权,请联系作者立即删除!1.还原场景熟知ob混淆的朋友都清楚,标准的ob混淆,其控制流是while循环下的语句,但是有些ob混淆的控制流却是for循环,因此需要写个插件将其转换,进行适配,这样就可以星球的插件进行处理了。2.遍历的节点类型ForStatement3.混淆代码实例还原前:f...

2025-03-07 17:26:01 373

原创 AST反混淆插件|函数调用方式的还原

关注它,不迷路。 本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,否则后果自负,如有侵权,请联系作者立即删除!1.还原场景在某卡麦的混淆代码中,其函数调用表达式的实参有各种各样的类型,需要统一化,然后再进行还原处理。2.遍历的节点类型CallExpression3.混淆代码实例还原前:RY.B5.call(null,SB,XU,Ws);RY.O5.apply(nul...

2025-03-06 17:53:07 473

原创 AST反混淆插件|ob混淆标准控制流还原

关注它,不迷路。本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,否则后果自负,如有侵权,请联系作者立即删除!1.还原场景标准的ob混淆在经过字符串的解密(使用 万能字符串还原框架 ),object对象的还原后,接下来就是还原控制流了。2.遍历的节点类型WhileStatement3.混淆代码实例还原前:var_0x1c254c ="5|1|0|4|2|3"["split"]('|...

2025-03-05 17:37:21 531

原创 AST反混淆插件|PX3同名函数的优化处理

关注它,不迷路。本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,否则后果自负,如有侵权,请联系作者立即删除!1.还原场景做过PX3反混淆的兄弟都知道,有很多的同名函数,类似这样:functionQ(n, t) { returna(t - -375, n); }...... !function() { varS = G[Q(-531,"U7#^")](R,t...

2025-03-04 17:49:52 313

原创 AST反混淆插件|还原后垃圾代码的删除

关注它,不迷路。本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,否则后果自负,如有侵权,请联系作者立即删除!1.还原场景有些代码,永远不会执行,或者执行后,对核心的加密算法没有任何影响,可以进行删除。2.遍历的节点类型VariableDeclarator|AssignmentExpression 等其他。3.混淆代码实例还原前:for(letaofb){}varc =6...

2025-03-03 17:32:54 238

原创 AST反混淆插件|字符串被拆分到赋值语句里的还原

关注它,不迷路。本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,否则后果自负,如有侵权,请联系作者立即删除!1.还原场景一些比较长的字符串被拆分到各个赋值语句中时的还原。2.遍历的节点类型VariableDeclarator|AssignmentExpression3.混淆代码实例还原前:vara ="He";a +="llo,";a +="A";a +="ST";a +...

2025-02-28 17:10:56 259

原创 AST反混淆插件|单个 ObjectExpression 嵌套在 MemberExpression 类型里的混淆还原

关注它,不迷路。本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,否则后果自负,如有侵权,请联系作者立即删除!1.还原场景有些变种的ob混淆可能会将 部分 常量混淆成 MemberExpression 类型,如:s(442, {"oWjdf":"0XjV"}["oWjdf"]);其实就是 :s(442,"0XjV");2.遍历的节点类型ObjectExpression3.混淆代...

2025-02-27 17:05:19 262

原创 AST反混淆插件|赋值语句与return语句结合的还原处理

关注它,不迷路。 本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,否则后果自负,如有侵权,请联系作者立即删除!1.还原场景赋值语句反复赋值时的彻底还原。2.遍历的节点类型AssignmentExpression3.混淆代码实例还原前:if(_0x410e38) { _0x4664d2 =3221003472; _0x1f0905 = _0xa0dae8;...

2025-02-21 10:11:34 235

原创 AST反混淆插件|for循环语句中的init节点反混淆处理

关注它,不迷路。 本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,否则后果自负,如有侵权,请联系作者立即删除!1.还原场景有些for语句的init节点也被混淆了,它肯定是无法直接处理的。因此将其提取到for语句的前面再进行还原处理就可以了。2.遍历的节点类型ForStatement3.混淆代码实例还原前:vara,b,c,d,e;for(a=2,b=2,c=3,d=4,...

2025-02-20 10:13:17 300

原创 AST反混淆插件|无实际参数的自执行函数还原

关注它,不迷路。 本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,否则后果自负,如有侵权,请联系作者立即删除!1.还原场景在一些switch语句中,包含了自执行函数,如果不进行处理,则无法进行去控制流的操作。为了防止变量名的污染,你可能需要将自执行函数里的变量定义给处理一下。2.遍历的节点类型UnaryExpression3.混淆代码实例还原前:!function(){...

2025-02-19 09:00:54 232

原创 AST反混淆插件|处理没有实际代码的case语句

关注它,不迷路。 本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,否则后果自负,如有侵权,请联系作者立即删除!1.还原场景在有些case节点中,无任何有用的代码,仅仅只是一个跳板,这种情况是可以将跳板处理掉的。2.遍历的节点类型SwitchCase3.混淆代码实例还原前:case2: w =85;break;case5: someCode; w =...

2025-02-18 16:04:01 226

原创 AST反混淆插件|给switch语句的每个case统一加上break节点

关注它,不迷路。 本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,否则后果自负,如有侵权,请联系作者立即删除!1.还原场景为了方便九大节点合并算法开箱即用,需要先做统一的处理。2.遍历的节点类型SwitchCase3.混淆代码实例还原前:case77:q= l; l = function () {q(); g(k);};R = void0;还原后:cas...

2025-02-17 08:46:57 166

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除