首页
学习
活动
专区
圈层
工具
发布

js混淆与反混淆

为什么要进行混淆 由于设计原因,前端的js代码是可以在浏览器访问到的,那么因为需要让代码不被分析和复制从而导致更多安全问题,所以我们要对js代码进行混淆。...JS混淆和反混淆常见思路 在了解了js代码的执行过程后,我们来看如何对js进行混淆。...可以想到比如我们想实现一个js混淆器我们该怎么做呢,要不就是用正则替换,要不就是在AST阶段生成混淆代码,用正则替换实现简单但是效果也比较差,现在js混淆大多数都是在不改变AST的情况下去生成混淆后的代码...代码压缩 压缩js代码不用多说,就是去除空格,换行符等等,让代码变成一坨甚至一行。 代码混淆 这里我们抛砖引玉,讲一些比较常见的混淆方式,实际上混淆的办法非常的多。...常见的混淆/反混淆工具 亲手尝试反混淆 HGAME 2023 Week1 Classic Childhood Game 当然直接执行mota()就能出,但是我们来尝试一下通过调试反混淆这段代码,看看是什么逻辑

12.8K41
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    js如何反编译、反混淆

    JavaScript 的**压缩(Minification)和混淆(Obfuscation)**已经成了标配操作,一个为了“提速”,一个为了“防看”。...早年的 JS 就是写个表单验证、简单交互,代码少又直白,根本不需要保护。但如今,前端早已是复杂的单页应用(SPA),JS 动辄几 MB,压缩和混淆就派上用场了。压缩,主要是“瘦身”。...而混淆,才是“刻意让人看不懂”。它不光改名字,还会扭曲逻辑,目的就是让开发者即使拿到代码,也很难 reverse 出真实意图。...怎么js反编译反混淆 怎么进行js逆向呢?浏览器的 Pretty Print(美化) 能帮你格式化代码,加缩进、换行,但对乱七八糟的变量名和逻辑绕弯没辙。...发现一个Ai反编译工具:思路是:先把 JS 解析成 AST(抽象语法树)——也就是忽略名字和格式,只看代码的“骨架”和逻辑关系。

    28511

    爬虫+反爬虫+js代码混淆

    什么样的爬虫是违法的 2.2 爬虫的一些规则 2.3 需要了解一些爬虫工具 抓包工具可以理解为是中间代理人,代理客户端发送的请求到服务器 抓包工具工作流程 2.4 需要了解一些常见的数据处理(加解密...数据加解密 ip被限制 3....为什么需要做反爬 看看这个 做反爬的好处 2. 如何反爬虫 三、js代码混淆 1....为什么需要混淆代码 若是自己辛辛苦苦写的(商业、核心)业务代码,被其他竞争公司拿去用了或者破解了,想想都心塞。 可以从下图对比中看出两种区别: 混淆代码的好处 2. 混淆代码弊端 3....4.2 Uglify Uglify 是一款JS代码处理工具,提供了压缩,混淆和代码规范化等功能。 四、结语 爬虫工程师(采集)没有未来,数据工程师(采集、分析、预测)有未来。

    12.3K30

    “反AI逆向”JS代码混淆加密!

    JS混淆加密,是保护JS代码安全的重要手段。原本,只有技术高手才能对混淆加密后的JS代码进行分析或逆向。但在这个AI时代,普通人也可以借助AI尝试进行逆向还原。...这便给JS代码安全带来了更多的威胁,也给JS混淆加密带来了考验。好在“魔高一尺,道高一丈”,国内有名的JS混淆加密服务商JShaman已发布了“反AI”功能。...以下,用一个示例进行测试,看看它的反AI效果。1、来到JS-Obfuscator网站。...,如下:6、再用通义千问尝试逆向,也给出了错误的分析过程和结果,如下:7、而如果是传统没有“反AI”功能的JS混淆工具,比如,ob:OB的混淆结果,AI工具是可以轻松逆向还原出原始代码的:由对比可知,JShaman...8:总结:对于JS混淆加密,AI逆向还原能力确实强大。JShaman的“反AI”功能更加强大。

    54810

    【JS 逆向百例】反混淆入门,某鹏教育 JS 混淆还原

    逆向过程 本次逆向的目标同样是一个登录接口,其中的加密 JS 使用了简单的混淆,可作为混淆还原的入门级教程,来到登录页面,随便输入账号密码进行登录,其中登录的 POST 请求里, Form Data 有个加密参数...() 这个方法,是调用了 fm.js 里的 OO0O0() 方法,看这个又是 0 又是 O 的,多半是混淆了,如下图所示: [03.png] 点进去看一下,整个 fm.js 都是混淆代码,我们选中类似...: 混淆还原小脚本 # ================================== # 待替换的值(太多了,仅列出少部分) # 以实际列表为准,要和 fm_old.js 里的列表一致 item...] # 混淆后的 JS with open("fm_old.js", "r", encoding="utf-8") as f: js_lines = f.readlines() js = "...将 JS 还原后,我们可以将还原后的 JS 替换掉网站本身经过混淆后的 JS,这里替换方法有很多,比如使用 Fiddler 等抓包工具替换响应、使用 ReRes 之类的插件进行替换、使用浏览器开发者工具自带的

    7.9K40
    领券