- 博客(491)
- 收藏
- 关注
原创 AST反混淆插件|纯函数的调用还原,兼容多个函数调用方式
混淆代码一般会把字符串或者数值等字面量隐藏在函数中,有些是纯函数,有些是非纯函数。将其还原成字面量,方面我们后续处理。本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,否则后果自负,如有侵权,请联系作者立即删除!
2025-04-09 16:56:33
66
原创 AST反混淆插件|单个 ArrayExpression 嵌套在 MemberExpression 类型里的混淆还原
nb][0](1,2)的 函数调用,它其实是多此一举,所以,需要写个方法将其简化,以便进行字符串的解密和替换。本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,否则后果自负,如有侵权,请联系作者立即删除!在某里V3的混淆代码中,可以看到形如。
2025-04-08 20:20:18
92
原创 AST反混淆插件|判断函数调用实参是否均为字面量的方法
由于path.isliteral() 和 types.isliteral() 的功能比较弱,因此,我自己写了个方法,专门来判断 当前。本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,否则后果自负,如有侵权,请联系作者立即删除!函数调用的实参是否均为字面量。代码认为 123,-456,[],{},[{}],都是字面量。无,属于通用型的插件。
2025-03-26 08:56:49
250
原创 AST反混淆插件|无实参调用表达式且callee子节点是FunctionExpression类型的混淆代码还原
本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,否则后果自负,如有侵权,请联系作者立即删除!FunctionExpression时的还原处理。当一个函数的调用表达式,callee子节点为。
2025-03-25 10:41:00
223
原创 JS反混淆实战|使用cyberchef工具进行js代码反混淆
本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,否则后果自负,如有侵权,请联系作者立即删除!CyberChef是一款强大的编码转换器,集成了多种编码转换的功能,能辅助大家方便快捷地解密出恶意脚本。CyberChef 的 URL Decode 功能。3.没有被完全解开,我们选择Output的。unescape 函数,因为,可以试试。4.将混淆的js代码复制出来反混淆即可。逆向或者安全的人员都应该能熟练的使用它。
2025-03-24 11:59:09
357
原创 JS逆向实战|某视频网站的播放地址还原分析
看样子要先解决掉这个debugger,反混淆后替换,即可轻易的过掉debugger。不过我用的是一劳永逸的办法,就是修改浏览器源码,让debugger失效。本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,否则后果自负,如有侵权,请联系作者立即删除!先打开浏览器的控制台,在浏览器栏输入视频网站,回车后发现后跳转到bing首页。看到了检测的位置,我们在 if这行 打上断点,然后去掉 脚本 断点,代码改写纯算啥的就交给DeepSeek吧,我就不在这里装逼了。再次F8,停到断点位置,在控制台修改。
2025-03-23 21:22:54
365
原创 AST反混淆插件|混淆代码中逻辑表达式的简化
本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,否则后果自负,如有侵权,请联系作者立即删除!当逻辑表达式的子节点能得到确定的布尔值时,可以进行简化操作。JScrambler混淆的代码也有大量的这种语句。注:样本来自datadome,经过。
2025-03-22 09:48:08
235
原创 AST反混淆插件|混淆代码中 in 语句的还原处理
有些代码中,会对浏览器环境进行检测,如果与浏览器环境不符,则会得到错误的结果,因此,可以写个插件,对于某些浏览器环境的检测直接替换。本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,否则后果自负,如有侵权,请联系作者立即删除!
2025-03-21 17:26:53
262
原创 AST反混淆实战|复杂逻辑表达式还原详解
本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,否则后果自负,如有侵权,请联系作者立即删除!这时候,操作符是 && 了,这里需要有一点 && 操作符的基础知识,我相信你有。我们发现它是一个 大的 逻辑表达式,而且是 || 操作符。这里需要有一点 || 操作符的基础知识,我相信你有。还原复杂的逻辑表达式。
2025-03-14 17:34:26
269
原创 AST反混淆插件|超复杂的逻辑表达式转if语句
关注它,不迷路。 本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,否则后果自负,如有侵权,请联系作者立即删除!1.还原场景现在的混淆代码是越来越复杂,也是越来越恶心。控制流之前是if语句,现在if语句变成了很复杂的逻辑表达式,毕竟难搞。2.遍历的节点类型ExpressionStatement|IfStatement3.混淆代码实例还原前:tD>43&&...
2025-03-13 17:44:45
231
原创 AST反混淆插件|ob混淆中object对象重新赋值的还原处理
关注它,不迷路。 本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,否则后果自负,如有侵权,请联系作者立即删除!1.还原场景ob混淆中,经常会有变量的重新赋值,相当于一个跳板。这个时候,可能会导致非常量,无法使用星球里的插件直接还原,因此需要重新处理一下。然后在适配星球里的插件即可。2.遍历的节点类型VariableDeclarator3.混淆代码实例还原前:vard =...
2025-03-12 17:19:10
259
原创 AST反混淆插件|重命名所有含非ASCII码标识符的插件
关注它,不迷路。 本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,否则后果自负,如有侵权,请联系作者立即删除!1.还原场景有些变量名非ASCII码(如蝌蚪文),给代码的阅读带来一定的难度,因此写个插件来优化这些变量名,是个不错的选择。2.遍历的节点类型Identifier3.混淆代码实例无。4.真实案例蝌蚪文等喊非ASCII字符变量的混淆代码。5.插件源代码https:/...
2025-03-11 17:22:33
255
原创 AST反混淆插件|变种ob混淆里的for循环转换成标准ob混淆的while循环
关注它,不迷路。 本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,否则后果自负,如有侵权,请联系作者立即删除!1.还原场景熟知ob混淆的朋友都清楚,标准的ob混淆,其控制流是while循环下的语句,但是有些ob混淆的控制流却是for循环,因此需要写个插件将其转换,进行适配,这样就可以星球的插件进行处理了。2.遍历的节点类型ForStatement3.混淆代码实例还原前:f...
2025-03-07 17:26:01
276
原创 AST反混淆插件|函数调用方式的还原
关注它,不迷路。 本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,否则后果自负,如有侵权,请联系作者立即删除!1.还原场景在某卡麦的混淆代码中,其函数调用表达式的实参有各种各样的类型,需要统一化,然后再进行还原处理。2.遍历的节点类型CallExpression3.混淆代码实例还原前:RY.B5.call(null,SB,XU,Ws);RY.O5.apply(nul...
2025-03-06 17:53:07
441
原创 AST反混淆插件|ob混淆标准控制流还原
关注它,不迷路。本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,否则后果自负,如有侵权,请联系作者立即删除!1.还原场景标准的ob混淆在经过字符串的解密(使用 万能字符串还原框架 ),object对象的还原后,接下来就是还原控制流了。2.遍历的节点类型WhileStatement3.混淆代码实例还原前:var_0x1c254c ="5|1|0|4|2|3"["split"]('|...
2025-03-05 17:37:21
434
原创 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
287
原创 AST反混淆插件|还原后垃圾代码的删除
关注它,不迷路。本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,否则后果自负,如有侵权,请联系作者立即删除!1.还原场景有些代码,永远不会执行,或者执行后,对核心的加密算法没有任何影响,可以进行删除。2.遍历的节点类型VariableDeclarator|AssignmentExpression 等其他。3.混淆代码实例还原前:for(letaofb){}varc =6...
2025-03-03 17:32:54
221
原创 AST反混淆插件|字符串被拆分到赋值语句里的还原
关注它,不迷路。本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,否则后果自负,如有侵权,请联系作者立即删除!1.还原场景一些比较长的字符串被拆分到各个赋值语句中时的还原。2.遍历的节点类型VariableDeclarator|AssignmentExpression3.混淆代码实例还原前:vara ="He";a +="llo,";a +="A";a +="ST";a +...
2025-02-28 17:10:56
240
原创 AST反混淆插件|单个 ObjectExpression 嵌套在 MemberExpression 类型里的混淆还原
关注它,不迷路。本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,否则后果自负,如有侵权,请联系作者立即删除!1.还原场景有些变种的ob混淆可能会将 部分 常量混淆成 MemberExpression 类型,如:s(442, {"oWjdf":"0XjV"}["oWjdf"]);其实就是 :s(442,"0XjV");2.遍历的节点类型ObjectExpression3.混淆代...
2025-02-27 17:05:19
249
原创 AST反混淆插件|赋值语句与return语句结合的还原处理
关注它,不迷路。 本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,否则后果自负,如有侵权,请联系作者立即删除!1.还原场景赋值语句反复赋值时的彻底还原。2.遍历的节点类型AssignmentExpression3.混淆代码实例还原前:if(_0x410e38) { _0x4664d2 =3221003472; _0x1f0905 = _0xa0dae8;...
2025-02-21 10:11:34
222
原创 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
286
原创 AST反混淆插件|无实际参数的自执行函数还原
关注它,不迷路。 本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,否则后果自负,如有侵权,请联系作者立即删除!1.还原场景在一些switch语句中,包含了自执行函数,如果不进行处理,则无法进行去控制流的操作。为了防止变量名的污染,你可能需要将自执行函数里的变量定义给处理一下。2.遍历的节点类型UnaryExpression3.混淆代码实例还原前:!function(){...
2025-02-19 09:00:54
216
原创 AST反混淆插件|处理没有实际代码的case语句
关注它,不迷路。 本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,否则后果自负,如有侵权,请联系作者立即删除!1.还原场景在有些case节点中,无任何有用的代码,仅仅只是一个跳板,这种情况是可以将跳板处理掉的。2.遍历的节点类型SwitchCase3.混淆代码实例还原前:case2: w =85;break;case5: someCode; w =...
2025-02-18 16:04:01
219
原创 AST反混淆插件|给switch语句的每个case统一加上break节点
关注它,不迷路。 本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,否则后果自负,如有侵权,请联系作者立即删除!1.还原场景为了方便九大节点合并算法开箱即用,需要先做统一的处理。2.遍历的节点类型SwitchCase3.混淆代码实例还原前:case77:q= l; l = function () {q(); g(k);};R = void0;还原后:cas...
2025-02-17 08:46:57
145
原创 AST反混淆插件|MemberExpression 类型的节点包含 window 的简化
关注它,不迷路。 本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,否则后果自负,如有侵权,请联系作者立即删除!1.还原场景混淆代码中使用window对象调用的对象,可以进行简化处理,做进一步的分析。2.遍历的节点类型MemberExpression3.混淆代码实例还原前:varB4=window["JSON"]["stringify"];varFq=windo...
2025-01-25 15:32:45
255
原创 AST反混淆插件| 赋值语句中的left节点在其作用域内无引用时的删除。
关注它,不迷路。 本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,否则后果自负,如有侵权,请联系作者立即删除!1.还原场景在还原的收尾节点,有些赋值语句,其left子节点,是一个简单的变量,然而,在其作用域内,没有任何地方被引用,因为可以看做是垃圾代码,可以进行删除。2.遍历的节点类型AssignmentExpression3.混淆代码实例还原前:vara;a =2;...
2025-01-21 15:37:16
175
原创 AST反混淆插件|String类、Number类以及Array实例方法调用结果值替换。
关注它,不迷路。 本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,否则后果自负,如有侵权,请联系作者立即删除!1.还原场景在一条语句中,如果包含系统类实例的函数调用,可以将其计算出来并进行替换。2.遍历的节点类型CallExpression3.混淆代码实例还原前:varclb ='!doog si TSA'.split('').reverse('').join('')...
2025-01-16 20:36:48
159
原创 国外验证码|使用EZCAPTCHA打码平台过掉5s盾
关注它,不迷路。 本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,否则后果自负,如有侵权,请联系作者立即删除!1.平台地址https://dashboard.ez-captcha.com/#/register?inviteCode=ArTRhaGRJkp点击左下角的 阅读原文 可以直达。2.CloudFlare盾demodemo地址:https://www.e-food....
2025-01-14 17:32:35
272
原创 AST反混淆插件|条件表达式转 if 语句
关注它,不迷路。 本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,否则后果自负,如有侵权,请联系作者立即删除!1.还原场景在一条语句中,如果包含条件表达式,可以将其转换成if语句,用来继续优化代码。2.遍历的节点类型ConditionalExpression3.混淆代码实例还原前:3===this.Cn ?this.Yz =256:23===this.Cn...
2025-01-13 19:31:44
184
原创 AST反混淆插件|逻辑表达式转 if 语句
关注它,不迷路。 本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,否则后果自负,如有侵权,请联系作者立即删除!1.还原场景在一条语句中,如果包含逻辑表达式,可以将其转换成if语句,用来继续优化代码。2.遍历的节点类型LogicalExpression3.混淆代码实例还原前:a + b || c && d;a + b && c;还原后:if ...
2025-01-12 20:26:14
141
原创 AST反混淆插件|MemberExpression 类型转换插件汇总
关注它,不迷路。 本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,否则后果自负,如有侵权,请联系作者立即删除!1.还原场景MemberExpression 类型的 转换,即b.length ===> b["length"]b["length"] ===> b.lengthvara = {b:c}; ===> ...
2025-01-11 11:24:22
217
原创 AST反混淆实战|还原控制流之最简单的if语句转switch语句思路详解
关注它,不迷路。 本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,否则后果自负,如有侵权,请联系作者立即删除!1.混淆demovarTX=function(a, v, T, V, I, N, f, u, M) {for(u =0; u !=60;) { if(u ==59) { N =VG(27,0, V, I); if...
2025-01-10 11:50:55
299
原创 AST反混淆插件|赋值语句初始化为void 0且在后续兄弟节点重新赋值后的删除
关注它,不迷路。 本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,否则后果自负,如有侵权,请联系作者立即删除!1.还原场景赋值语句初始化为void 0且在后续兄弟节点重新赋值后的删除。2.遍历的节点类型AssignmentExpression3.混淆代码实例还原前:J =void0; y =void0; G =void0...
2025-01-09 17:31:13
132
原创 AST反混淆插件|赋值语句的后续兄弟节点变量又被重新赋值的还原与删除
关注它,不迷路。 本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,否则后果自负,如有侵权,请联系作者立即删除!1.还原场景当前的赋值语句,其后续兄弟节点,变量(left子节点)又被重新赋值的还原与删除。2.遍历的节点类型AssignmentExpression3.混淆代码实例还原前:vara;a =123;b = a +2;a = a + b;还原后:vara;b...
2025-01-08 08:38:33
144
原创 AST反混淆实战|关于知识星球里插件的适配技巧
关注它,不迷路。 本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,否则后果自负,如有侵权,请联系作者立即删除!星球里写了很多反混淆插件,大部分都是开箱即用,非常的方便。然而,有些混淆代码不按套路出牌,插件运行后无效,导致还原失败。这个时候,需要编写另外的插件进行适配,达到还原的目的。1.混淆demo在某混淆js中,有如下纯函数:functionv() {varn ...
2025-01-07 09:03:50
251
原创 AST反混淆插件|调用表达式的callee子节点为赋值语句时的还原
关注它,不迷路。 本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,否则后果自负,如有侵权,请联系作者立即删除!1.还原场景当一个函数的调用表达式,callee子节点为赋值语句时的还原处理。2.遍历的节点类型AssignmentExpression3.混淆代码实例还原前:J = A[(y = M)(430)];还原后:J = A[(y = M, y(430))];4.真实案...
2025-01-06 08:46:11
127
原创 AST反混淆插件|当调用表达式的实参为三目表达式时的还原
关注它,不迷路。 本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,否则后果自负,如有侵权,请联系作者立即删除!1.还原场景当一个函数的调用表达式,实参包含条件表达式时的还原。2.遍历的节点类型CallExpression3.混淆代码实例还原前:n["imagePosition"][s("x"=== t ?375:1320)] = i;还原后:n["imagePos...
2025-01-05 10:01:35
172
原创 AST反混淆插件|赋值语句被嵌套到各种语句里的还原
关注它,不迷路。 本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,否则后果自负,如有侵权,请联系作者立即删除!1.还原场景当赋值语句嵌套到各种语句里面的提取,减少代码的耦合。2.遍历的节点类型AssignmentExpression3.混淆代码实例还原前:b[y="woxiexieni"](ha,ha);j=(C=0|(j=C))<128;haha = a=b = ...
2025-01-04 11:05:34
279
原创 AST反混淆插件|赋值语句的简单还原
关注它,不迷路。 本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,否则后果自负,如有侵权,请联系作者立即删除!1.还原场景当赋值语句的left节点 为 Identifier 类型,在作用域内没有其他地方被重新赋值,并且right子节点为常量时的还原。2.遍历的节点类型AssignmentExpression3.混淆代码实例还原前:functionadd(a,b){ a ...
2025-01-03 10:49:45
173
原创 AST反混淆插件|给不规范的块语句加上大括号
关注它,不迷路。 本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,否则后果自负,如有侵权,请联系作者立即删除!1.还原场景有些混淆代码的if语句或者for语句,他们的块语句,没有被{}给包裹起来,因此写个插件添加{}即可。2.遍历的节点类型ForStatement|WhileStatement|ForInStatement|ForOfStatement|DoWhileSt...
2025-01-02 11:03:26
157
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人