IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> 逆向爬虫-sojson混淆反调加密 -> 正文阅读

[JavaScript知识库]逆向爬虫-sojson混淆反调加密

一、 获取sojson代码

JS加密混淆

本次使用代码:

(function(w, d) { 
 w.info = "这是一个一系列js操作。"; 
 d.warning = "如果您的JS里嵌套了PHP,JSP标签,等等其他非JavaScript的代码,请提取出来再加密。这个工具不能加密php、jsp等模版内容"; 
 d.intro = "本工具由 www.jsjiami.com 提供接口。"; 
})(window, document);

本次代码配置:
在这里插入图片描述

二、sojson加密特点和原理

它可以为js代码添加加密混淆, 压缩成一行, 防止格式化, 死代码注入等属性。

  • 加密混淆:将代码中的所有标识符 (变量名, 函数名) 替换成没有意义的以下划线开始的十六进制数字,如 _0x546d, _0x28239d等。
  • 压缩成一行: 将原本多行的代码都写到一行。
  • 防止格式化:如果调试者希望借助 IDE 对代码进行格式化, 代码将无法正常运行, 陷入卡死状态。
  • 死代码注入:如果调试这对代码进行了格式化, 陷入的卡死状态就是注入的死代码导致的。

为什么能防止格式化呢,其实大致代码如下:

function a() {
    console.log('hello world');
}

if (a.toString().indexOf('\n')) {   // 代码中存在换行
    console.log('你格式化我了。')
    while (true) {
        console.log('等着卡死吧!!!')
    }
} else {    // 代码中不存在换行
    console.log('有本事就格式我。')
}

三、过sojson姿势方法

3.1、格式化正则释义

在这里插入图片描述

3.2、网页调试过sojson

遇到debugger; 点击单步运行
在这里插入图片描述
点击单步调试发现已经跳出debugger点击F8 发现又进入了debugger; 发现堆栈发生变化,可以看到有一个定时器
在这里插入图片描述
将定时器调用的方法置空
在这里插入图片描述
此时即可成功过掉debugger。
在这里插入图片描述
注: 一般不Hook定义的位置。因为本次去掉后下次还会创建所以一般Hook调用的位置

3.3、 静态文件替换过sojson

在sojson代码第一行加入debugger; 单步运行会发现会通过正则表达式来检验是否格式化。
步骤:

  • 找到代码中所有的正则表达式, 在正则表达式后面加上 debugger; 语句。
  • 放到浏览器中调试运行, 代码会在你加上的 debugger; 语句处暂停。
  • 观察正则表达式所测试的代码块, 一般可以看到 toString() 函数, 被 toString() 的函数就是sojson检测的代码块。
  • 将正则表达式检测的代码块都压缩到一行。

第一处断点正则:
在这里插入图片描述
在这里插入图片描述

第二处正则:
在这里插入图片描述

第三处正则
在这里插入图片描述
在这里插入图片描述
第四处正则
在这里插入图片描述
在这里插入图片描述
去除所有debugger;

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-05-05 11:09:15  更:2022-05-05 11:09:27 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 22:01:46-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码