文章目录

  • 一、 获取sojson代码
  • 二、sojson加密特点和原理
  • 三、过sojson姿势方法
    • 3.1、格式化正则释义
    • 3.2、网页调试过sojson
    • 3.3、 静态文件替换过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;

逆向爬虫-sojson混淆反调加密相关推荐

  1. 逆向爬虫27 sojson反调加密

    逆向爬虫27 sojson反调加密 目标: 掌握sojson的加密的特点和原理. 使用静态文件替换sojson反调. 一. sojson加密特点和原理 sojson是一种常用的js反调和加密手段, 在 ...

  2. 逆向爬虫35 常见加密的python实现

    逆向爬虫35 常见加密的python实现 目的:将App逆向中常见的算法用python实现,方便以后的使用 Java常见加密 隐藏字符串 字符串是以字节编码数组的形式存储或网络传输的,因此可以通过指定 ...

  3. python爬虫之逆向破解_js逆向爬虫实战(2)--新快之加密参数破解

    爬虫js逆向系列 我会把做爬虫过程中,遇到的所有js逆向的问题分类展示出来,以现象,解决思路,以及代码实现.我觉得做技术分享,不仅仅是要记录问题,解决办法,更重要的是要提供解决问题的思路.怎么突破的, ...

  4. Python爬虫入门之淘宝JS逆向解析请求参数Sign加密(一)

    关于JS逆向,相信这是很多小伙伴学习爬虫的一个门槛之一,如果你是初学者入门,开发一款爬虫,要以思路为主,代码是其次的 这里所说的思路指两个方面,一,分析观察目标站点思路,二,代码开发思路,二者缺一不可 ...

  5. Python 代码混淆和加密技术

    动机 Python进行商业开发时, 需要有一定的安全意识, 为了不被轻易的逆向. 混淆和加密就有所必要了. 混淆 为了增加代码阅读的难度, 源代码的混淆非常必要, 一个在线的Python代码混淆网站. ...

  6. 【JS 逆向百例】PEDATA 加密资讯以及 zlib.gunzipSync() 的应用

    关注微信公众号:K哥爬虫,持续分享爬虫进阶.JS/安卓逆向等技术干货! 文章目录 声明 逆向目标 抓包分析 加密逆向 完整代码 JavaScript 加密代码 Python 示例代码 声明 本文章中所 ...

  7. 逆向爬虫28 webpack扣代码

    逆向爬虫28 webpack扣取码 目标: 了解 js 模块化打包webpack代码的特点. 掌握扣取 webpack 代码的方法. 一. 模块化 webpack 代码特点 有的时候, 我们发现一些网 ...

  8. 携程逆向爬虫 | PC网页端 | 旅游景点评论爬虫

    目录 导语 1. 获取所有城市_id 2. 分析评论信息位置 3. 获取当前市 景点页数 4.获取当前景点的评论页数 5. 总体爬虫效果 6. 注意 导语 自携程更新后,这是全网首篇,关于新版携程的逆 ...

  9. 猿人学题库第一题——无混淆js加密

    猿人学题库第一题--无混淆js加密 1.  首先 进入 浏览器的开发者工具, 进入后直接 查看请求,可以找到 一个 json?page=1&count=14 的网址,查看response 就是 ...

最新文章

  1. 用shell脚本守护后台进程
  2. 路易斯安那州立大学计算机科学,西北路易斯安那州立大学
  3. ActiveReports 9 新功能:借助目录(TOC)控件为报表添加目录功能
  4. JS中document对象 window对象
  5. 从零实现一个自定义 HTML5 播放器
  6. 深度学习笔记-卷积神经网络CNN与循环神经网络RNN有什么区别?
  7. git使用stash存储相关操作
  8. 电子计算机之争的想法,模拟意识的通俗讲解
  9. Java集合查找Map,Java集合框架中Map接口的使用
  10. 通过镜像快速搭建本地yum源
  11. 计算机专业的书普遍都这么贵,你们都是怎么获取资源的?
  12. 像招程序员那样招司机,结果……
  13. 基于jsp的网上书店_[内附完整源码和文档] 基于JSP网上零食销售系统的设计与实现...
  14. matlab已经停止工作,Win7旗舰版运行Matlab提示已停止工作解决措施
  15. c#获取当前日期时间
  16. 靠写文章,我在CSDN赚了1.27万!
  17. JavaScript 判断手机号码格式 正则表达式 亲测
  18. 缺氧游戏黑科技计算机,《缺氧》怎么生存?缺氧bug黑科技小技巧使用方法一览...
  19. 在线JSON转换成Excel文件工具
  20. 信号、signal 函数、sigaction 函数

热门文章

  1. Flutter 移动端介绍与实践
  2. 每天回顾linux命令(ls)
  3. W25Q128xV 去除写保护
  4. Invoice到底是什么意思?是发票吗
  5. 10.01-runloop
  6. DRF---序列化组件
  7. 《谋圣鬼谷子》杀青 郭宝昌力挺段奕宏戚薇
  8. 文学 2014年2月23日 20:43:43
  9. 安卓手机连接蓝牙打印机实现打印功能
  10. 2020年的个人总结