JS反调试绕过&JS代码混淆&JSFUCK编码

这篇具有很好参考价值的文章主要介绍了JS反调试绕过&JS代码混淆&JSFUCK编码。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

JS反调试绕过&JS代码混淆&JSFUCK编码

如果目标网站的JS代码中有比较机密的东西,会启用反调试,代码混淆这些功能防止泄露机密数据。下面说说几种绕过目标网站JS反调试功能的方法。

-禁用断点

点击下图那个禁用断点的按钮即可

禁止断点过后,大多数情况下可以绕过对方的反调试,但是自己也无法断点分析了

JS反调试绕过&JS代码混淆&JSFUCK编码

文章来源地址https://www.toymoban.com/news/detail-711354.html

-条件断点

JS反调试绕过&JS代码混淆&JSFUCK编码可以输入一个恒成立,或者不成立的条件在这。就不会出现打开开发者工具暂停运行的情况了。比如直接输入false。如果还有暂停的情况,那可能是在目标网站上还存在一个会导致反调试功能,找出它,如上处理即可。

-永不在此处暂停

JS反调试绕过&JS代码混淆&JSFUCK编码

JS反调试绕过&JS代码混淆&JSFUCK编码

-置空函数

函数置空:原来的用来反调试的函数,在控制台上面重写一遍,写废掉就没有反调试的能力了,比如下面这个样例
反调试函数=function(){
return NULL;
}

-本地覆盖

本地覆盖:在源代码选项卡里的覆盖选项里,启用本地替代,右键目标网站上的关键代码保存本地备用,我们就可以对关键代码编辑了你可以在这里面删除或者注释掉反调试的代码块。完成之后,当网站再加载此文件时,会以我们本地的那个文件为准也就是我们编辑过的那个js文件为准,则覆盖了原网站的原文件。具体做法如下图:

JS反调试绕过&JS代码混淆&JSFUCK编码

然后对目标网站的负责反调试功能的JS文件右键 选择 替代内容 ​就会出现在替代文件夹里了,就可以编辑了

​​JS反调试绕过&JS代码混淆&JSFUCK编码​​​JS反调试绕过&JS代码混淆&JSFUCK编码​​​

代码混淆

JavaScript代码混淆就是一种将可读性高的JavaScript代码转换成难以理解和分析的形式的过程。它通过一系列的转换和技巧来使代码变得晦涩难懂,从而增加了代码的安全性,使得别人难以轻易地理解和修改你的代码。
混淆的目的通常是为了保护知识产权或者防止恶意使用者逆向工程你的代码。这样做可以使得他们难以窃取你的算法或者在你不授权的情况下使用你的代码。
虽然混淆可以提高代码的安全性,但并不是绝对安全的。有经验的黑客或者逆向工程师可能会花费一些时间来还原混淆后的代码,但混淆过后的代码可以增加他们的工作难度。

开源代码加密:

JSON在线 | JSON解析格式化—SO JSON在线工具

商业用途加密:

JS加密,JS不可逆加密,JS混淆,JS混淆加密,JS压缩加密 - [JavaScript加密] (jsjiami.com)

简单说说一个点:

JS反调试绕过&JS代码混淆&JSFUCK编码​​JS反调试绕过&JS代码混淆&JSFUCK编码

需要在本地控制台调试,不能在网上平台上调试,很有可能不允许。自己随便起一个本地网页调试即可 用phpstudy啥的(不懂去搜一下怎么用,一键发布一个网页)

以上这种由"!"符号和 "[" "]" 等组成的编码技术叫做JSFUCK编码:

"JSFuck" 是一种基于JavaScript的编码技术,它允许你将JavaScript代码编码成仅使用六种字符:[ ] ( ) ! +​。尽管编码后的JSFuck代码看起来是一堆无序的字符,但它仍然是合法的JavaScript代码,因为它是在JavaScript的语法规则下构建的。这是因为JSFuck利用了JavaScript中的类型转换、数学运算和逻辑运算,将这六个字符组合成各种JavaScript表达式。这也是为什么JSFuck代码通常非常难以阅读,因为它将JavaScript的特性推向了极限,使得它在形式上变得非常混乱,但它仍然是合法的JavaScript代码。

我把原加密后的代码小括号里的东西删除后只剩一个空括号,再去控制台打印,任然可以成功执行;如下图:

JS反调试绕过&JS代码混淆&JSFUCK编码

JS反调试绕过&JS代码混淆&JSFUCK编码

我把最后一个空的小括号删除后,直接爆出这段JS源码;如下图:

JS反调试绕过&JS代码混淆&JSFUCK编码

为什么去除了部分编码后任然可以继续执行呢?:

大概就是说删除的那部分就是些花指令,一些无关紧要的东西

花指令的概念和作用:

"花指令" 这个术语通常是与计算机汇编语言和程序逆向工程相关的术语,它不是一个官方的计算机科学术语,而是黑客和逆向工程师社区中常用的俚语。它通常指的是那些在程序中看起来没有实际作用,或者在正常操作下不会被执行的指令或代码片段。这些指令可能被插入到程序中,以混淆或防止逆向工程。
"花指令" 的作用可以有以下几个:

  1. 1.混淆代码:将花指令插入到程序中,使得逆向工程师难以理解代码的实际逻辑,因为他们需要分辨哪些指令是无关紧要的。
  2. 防止自动化工具:某些逆向工程工具和自动化脚本可能会试图分析程序的结构,花指令可以干扰这些工具,使其分析变得更加复杂。
  3. 增加逆向工程难度:通过引入无用的指令,逆向工程师需要更多的时间和精力来分析程序,从而提高了逆向工程的难度。
  4. 误导攻击者:花指令可以误导恶意攻击者,使他们花费时间在无关紧要的指令上,而不是攻击程序的实际漏洞或关键逻辑。

一般情况下,加密后的JavaScript代码可能具有以下特征:

  1. 难以阅读和理解:加密会使代码变得晦涩难懂,通过删除空格、缩进、注释以及重命名变量和函数名,使代码更加难以理解。
  2. 代码压缩:加密通常伴随着代码压缩,以减小文件大小,从而加快加载时间。这可能导致一些变量名和函数名变得更加晦涩。
  3. 混淆技巧:混淆技巧包括将常见的代码结构转换为复杂的等效形式,如将条件语句重写成难以理解的形式、使用逻辑运算符等。这增加了代码的复杂性。
  4. 加密算法:某些代码加密工具可能使用加密算法对源代码进行编码,需要在运行时解码才能执行。这可以提高安全性,但也增加了代码的复杂性。
  5. 自解码功能:一些加密技术包括自解码功能,这意味着加密的代码包含解码自身的逻辑。这样,解密后的代码可以在运行时还原成可执行的JavaScript。
  6. 特定标识符:某些加密工具可能在代码中留下特定的标识符,用于识别该代码是经过加密的。
  7. 举一个加密的例子
  8.  // 加密前的代码
     function displaySecretMessage() {
         alert("This is a secret message!");
     }
    
     displaySecretMessage();
    
     // ROT13加密
     function obqlfgYrpbeqZrffntr() {
         nyreg("Guvf vf n frperg zrffntr!");
     }
    
     obqlfgYrpbeqZrffntr();
    
    

这段加密的JavaScript代码的特点是:

  1. 函数和变量名经过了ROT13加密,变得晦涩难懂,不容易理解。
  2. 警告消息也经过ROT13加密,以避免直接查看代码就能理解消息内容。
  3. 当你运行加密后的代码时,它会解密函数名和消息,然后正常执行。

这只是一个简单的演示,实际上,加密代码通常会更复杂,使用更强大的加密算法,以确保代码的安全性。然而,这个示例说明了加密可以用于隐藏JavaScript代码的特性和逻辑,使其更难以理解

感谢观看~

到了这里,关于JS反调试绕过&JS代码混淆&JSFUCK编码的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • JS反调试VMdebugger

    今天干活的时候,要在前端调试找token值,打开“源代码”选项卡的时候,就不断步入“VMXXX”格式的源码当中,在查询了一些资料之后,发现Node.js反调试的一种手段,网上有说是Google chrome加载evel()函数,应该是存在这种的情况的,不过在测试的过程当中大多数应该都是反调

    2024年02月05日
    浏览(26)
  • 安全开发-JS应用&原生开发&JQuery库&Ajax技术&加密编码库&断点调试&逆向分析&元素属性操作

    1、布置前端页面 2、JS获取提交数据 3、JS对上传格式判断 4、后端对上传数据处理 前端JS进行后缀过滤,后端PHP进行上传处理 架构:html js php - upload.php 安全问题: 1、过滤代码能看到分析绕过 2、禁用JS或删除过滤代码绕过 前端白名单很轻易就能绕过 0、布置前端页面 1、获取

    2024年02月12日
    浏览(45)
  • 【Azure 媒体服务】Media Service的编码示例 -- 创建缩略图子画面的.NET代码调试问题

    在中国区Azure上,使用Media Service服务,想要使用.NET的代码来对上传视频创建缩略图(Thumbnail) 。 通过官网文档(https://docs.azure.cn/zh-cn/media-services/latest/samples/samples-encoding-reference#create-a-thumbnail-sprite)下载.NET示例,配置 appsettings.json 中的参数,运行却出现(Azure.Identity.Authentication

    2024年02月03日
    浏览(26)
  • 【华为OD机试真题 JS语言】291、整数编码 | 机试真题+思路参考+代码分析

    🍂个人博客首页: KJ.JK   🍂专栏介绍: 华为OD机试真题汇总,定期更新华为OD各个时间阶段的机试真题,每日定时更新,本专栏将使用JS语言进行更新解答,包含真题,思路分析,代码参考,欢迎大家订阅学习

    2024年02月07日
    浏览(38)
  • iwebsec靶场 SQL注入漏洞通关笔记11-16进制编码绕过

    iwebsec靶场 SQL注入漏洞通关笔记1- 数字型注入_mooyuan的博客-CSDN博客 iwebsec靶场 SQL注入漏洞通关笔记2- 字符型注入(宽字节注入)_mooyuan的博客-CSDN博客 iwebsec靶场 SQL注入漏洞通关笔记3- bool注入(布尔型盲注)_mooyuan的博客-CSDN博客 iwebsec靶场 SQL注入漏洞通关笔记4- sleep注入(时

    2023年04月24日
    浏览(37)
  • 谷歌浏览器最新版本进行控制台调试js代码时候无法显示代码行数问题解决

    谷歌浏览器最新版本进行控制台调试js代码时候无法显示代码行数问题解决 最新版本谷歌浏览器进行了自动设置关闭那个功能,要自己去设置 解决方法 后面叉掉,重新进行js代码调试看看,如下: 代码行数出来,问题解决

    2024年02月12日
    浏览(52)
  • JS混淆原理

    •eval 加密 • 变量混淆 • 属性加密 • 控制流平坦化 • 僵尸代码注入 • 代码压缩 • 反调试 JavaScript 混淆——开源项目 JavaScript 混淆——在线工具** JavaScript 混淆——商业服务 案例三JS注入冲突,请点击这里下载 demo3下载地址

    2024年02月16日
    浏览(31)
  • UNIAPP之js/nvue混淆探索

    因项目需要对UNIAPP的js混淆做了一些调研 混淆教程: https://uniapp.dcloud.net.cn/tutorial/app-sec-confusion.html 按照教程配置进行打包正式包进行混淆 下载正式包将 .ipa改为.zip 解压获取到HBuilder.app 右键显示包内容 获取到混淆的key 不同时间进行打包混淆同一文件获取的两个混淆key及结果

    2024年02月09日
    浏览(23)
  • Js:变量类型,代码块,++前后区别,函数声明/表达式,debuger调试,元素/event/window大小和位置

    语法: 注意: 只有在js文件才可以自动补全 @param 。vue文件只会显示 /** */ 上述注释中 @description 和 @return 是自定义的代码片段,快捷键 jsfn 作用: 在vue文件引入方法后,可以查看方法的注释说明,规范代码。 方法中变量快捷打印, 第一步选中方法的 变量 进行 复制 第二步

    2023年04月08日
    浏览(27)
  • 代码混淆与反混淆学习-第二弹

    deflat脚本链接:GitHub - cq674350529/deflat: use angr to deobfuscation 这里以代码混淆与反混淆学习-第一弹中的OLLVM 混淆样本为例进行去除。【LLVM-4.0】 控制流平坦前 控制流平坦后 python deflat.py --file main-bcf --addr 0x401180 deflat.py 成功去除后效果: 去混淆后,效果还算可以,能分析程序流程

    2023年04月09日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包