自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 JS逆向|某平台反混淆练习第一题逆向详解

本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,否则后果自负,如有侵权,请联系作者立即删除!网站已经明确告诉我们四标准的SHA1 + 盐,因此,我们只需要找出这个盐即可。这里有一些 Array操作 + join操作,那最终的加密结果应该是这里的。这里打印了9次,对应 p35 <= 9。既然告诉了有盐,那还得往上找找盐。p35 <= 0,才不会有烦人的提示。但是处理后替换网页直接卡死了。这样我们就最终找到了加密参数生成的地方。加密的结果与网上生成的不一样。调试得知,最后一个字符是 "W",

2025-06-30 20:53:36 538

原创 AST反混淆实战|类阿卡迈控制流还原详解

本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,否则后果自负,如有侵权,请联系作者立即删除!注意:所有变量的定义已经在循环体外生成了,即函数体的第一行变量定义。代码有了,那就一个位置来保存它们了。我们可以重新定义一个函数,因为这个控制流比较简单,没有if语句,也没有循环结构的代码。接下来就是 初始值为 259的控制流走完后的代码了。这样操作到最后,原始函数是可以直接删除的。注意,这里的形参,需要用它原函数的形参。因此,知道初始值后,可以直接走到最后。

2025-06-23 17:41:28 422

原创 AST反混淆插件| 浏览器环境简化专用插件

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

2025-06-20 12:01:38 177

原创 实用小工具|使用cheerio库提取html内的js混淆代码

本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,否则后果自负,如有侵权,请联系作者立即删除!目前,有很多js内嵌于html文档内,如果使用手动复制的方式,可能导致。因此,写个小脚本来提前html内的所有js片段,似乎很有必要。大家可以用下面这篇文章中的html作为实例操作一遍。根据官方文档提供的知识,很快就可以写出。欢迎加入知识星球,学习更多AST和爬。编码出错或者复制不全的问题。程序员嘛,能偷懒就偷懒。2.cheerio库简介。

2025-06-19 20:22:29 241

原创 AST反混淆实战|猿人学第二届比赛第四题代码片段还原(去控制流)

本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,否则后果自负,如有侵权,请联系作者立即删除!2.冗余语句的删除,确保return语句后面只有break语句,也是为了代码统一方便处理。1.代码统一,确保每个case后面都有break语句,发现这里没有break语句.这是一个很 见得的for-switch语句,只比ob混淆的控制流难那么一点点。3.指向下一个case的值要明确,赋值语句的操作符变更。经过上面的统一处理后,再写反混淆代码就轻松多了。没有多余的条件表达式,也不用处理循环语句。

2025-06-18 21:01:11 330

原创 AST反混淆实战|手把手教你还原第三届猿人学比赛第二题混淆js(4)

本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,否则后果自负,如有侵权,请联系作者立即删除!通过前面的处理,if已经转换成switch语句了,但是,在使用九大节点合并算法前,还需要一些准备工作。红色框框内的case语句,没有实际的代码,因此可以进行处理。红色框内的代码是ob混淆的特征代码,直接删除,代码就不用压缩替换了。具体的大家可以尝试一下,也可以私下问我。红色框内的代码也是ob混淆的特征代码,直接删除即可。删除没有上级节点的case语句。

2025-06-16 17:50:31 431

原创 AST反混淆实战|手把手教你还原第三届猿人学比赛第二题混淆js(3)

本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,否则后果自负,如有侵权,请联系作者立即删除!在将所有能转if语句的节点转成if语句后,接下来就是将if语句转成switch语句了。由于是 for - if 结构的代码很多,这种肯定是控制流。for - switch ===> 去控制流成为正常的代码。因此,需要把一些可以转if语句的节点类型全部转换成if。参考星球里的三篇专门写逻辑表达式的文章。2.条件表达式的还原。3.逻辑表达式的还原。

2025-06-15 21:22:13 329

原创 AST反混淆实战|手把手教你还原第三届猿人学比赛第二题混淆js(2)

上面的代码只是将变量名进行了优化,并没有将代码进行优化处理。下面的代码是通过美化后的代码抠取的mmc,非常的方便,还未验证,不知道是否正确。本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,否则后果自负,如有侵权,请联系作者立即删除!上一篇文章虽然在本地进行了替换,但是调试起来非常的困难,因为它的变量名让人眼花缭乱。我的方案是将难看的变量名统一进行替换,直接使用星球里的脚本即可。欢迎加入知识星球,学习更多AST和爬。

2025-06-09 20:23:46 180

原创 AST反混淆实战|手把手教你还原第三届猿人学比赛第二题混淆js(1)

将 当前<script>标签内的混淆js全部删除,替换成我们处理好的混淆js,注意,它这里有个坑,处理后的代码需要压缩才能运行。本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,否则后果自负,如有侵权,请联系作者立即删除!再次请求后,发现 2 这个选项有点变紫色,右键,选择 红色框内的功能。替换保存后,再次刷新页面,不再报错,说明替换OK。原来是内嵌在主页的html文件内。在这个 2 的选项上面右键,选择。再次刷新页面,发现没有异常。5.替换处理好的js。

2025-06-08 10:44:23 274 1

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

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

2025-05-26 08:36:11 209

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

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

2025-05-23 17:40:24 215

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

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

2025-05-20 09:00:19 197

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

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

2025-05-19 09:02:28 222

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

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

2025-05-17 09:04:37 400

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

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

2025-05-14 19:40:59 293

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

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

2025-05-07 17:33:23 269

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

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

2025-05-06 17:26:51 243

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

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

2025-04-28 16:45:34 233

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

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

2025-04-18 21:08:16 332

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

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

2025-04-17 20:49:51 254

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

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

2025-04-16 14:44:39 438

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

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

2025-04-15 17:21:25 312

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

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

2025-04-14 11:36:02 348

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

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

2025-04-11 09:46:19 276

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

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

2025-04-10 17:14:10 355

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

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

2025-04-09 16:56:33 323

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

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

2025-04-08 20:20:18 235

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

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

2025-03-26 08:56:49 341

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

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

2025-03-25 10:41:00 313

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

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

2025-03-24 11:59:09 890

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

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

2025-03-23 21:22:54 758

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

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

2025-03-22 09:48:08 332

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

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

2025-03-21 17:26:53 365

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

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

2025-03-14 17:34:26 363

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

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

2025-03-13 17:44:45 324

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

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

2025-03-12 17:19:10 370

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

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

2025-03-11 17:22:33 357

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

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

2025-03-07 17:26:01 386

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

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

2025-03-06 17:53:07 490

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

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

2025-03-05 17:37:21 580

空空如也

空空如也

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

TA关注的人

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