逆向爬虫-sojson混淆反调加密
文章目录
- 一、 获取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混淆反调加密相关推荐
- 逆向爬虫27 sojson反调加密
逆向爬虫27 sojson反调加密 目标: 掌握sojson的加密的特点和原理. 使用静态文件替换sojson反调. 一. sojson加密特点和原理 sojson是一种常用的js反调和加密手段, 在 ...
- 逆向爬虫35 常见加密的python实现
逆向爬虫35 常见加密的python实现 目的:将App逆向中常见的算法用python实现,方便以后的使用 Java常见加密 隐藏字符串 字符串是以字节编码数组的形式存储或网络传输的,因此可以通过指定 ...
- python爬虫之逆向破解_js逆向爬虫实战(2)--新快之加密参数破解
爬虫js逆向系列 我会把做爬虫过程中,遇到的所有js逆向的问题分类展示出来,以现象,解决思路,以及代码实现.我觉得做技术分享,不仅仅是要记录问题,解决办法,更重要的是要提供解决问题的思路.怎么突破的, ...
- Python爬虫入门之淘宝JS逆向解析请求参数Sign加密(一)
关于JS逆向,相信这是很多小伙伴学习爬虫的一个门槛之一,如果你是初学者入门,开发一款爬虫,要以思路为主,代码是其次的 这里所说的思路指两个方面,一,分析观察目标站点思路,二,代码开发思路,二者缺一不可 ...
- Python 代码混淆和加密技术
动机 Python进行商业开发时, 需要有一定的安全意识, 为了不被轻易的逆向. 混淆和加密就有所必要了. 混淆 为了增加代码阅读的难度, 源代码的混淆非常必要, 一个在线的Python代码混淆网站. ...
- 【JS 逆向百例】PEDATA 加密资讯以及 zlib.gunzipSync() 的应用
关注微信公众号:K哥爬虫,持续分享爬虫进阶.JS/安卓逆向等技术干货! 文章目录 声明 逆向目标 抓包分析 加密逆向 完整代码 JavaScript 加密代码 Python 示例代码 声明 本文章中所 ...
- 逆向爬虫28 webpack扣代码
逆向爬虫28 webpack扣取码 目标: 了解 js 模块化打包webpack代码的特点. 掌握扣取 webpack 代码的方法. 一. 模块化 webpack 代码特点 有的时候, 我们发现一些网 ...
- 携程逆向爬虫 | PC网页端 | 旅游景点评论爬虫
目录 导语 1. 获取所有城市_id 2. 分析评论信息位置 3. 获取当前市 景点页数 4.获取当前景点的评论页数 5. 总体爬虫效果 6. 注意 导语 自携程更新后,这是全网首篇,关于新版携程的逆 ...
- 猿人学题库第一题——无混淆js加密
猿人学题库第一题--无混淆js加密 1. 首先 进入 浏览器的开发者工具, 进入后直接 查看请求,可以找到 一个 json?page=1&count=14 的网址,查看response 就是 ...
最新文章
- 用shell脚本守护后台进程
- 路易斯安那州立大学计算机科学,西北路易斯安那州立大学
- ActiveReports 9 新功能:借助目录(TOC)控件为报表添加目录功能
- JS中document对象 window对象
- 从零实现一个自定义 HTML5 播放器
- 深度学习笔记-卷积神经网络CNN与循环神经网络RNN有什么区别?
- git使用stash存储相关操作
- 电子计算机之争的想法,模拟意识的通俗讲解
- Java集合查找Map,Java集合框架中Map接口的使用
- 通过镜像快速搭建本地yum源
- 计算机专业的书普遍都这么贵,你们都是怎么获取资源的?
- 像招程序员那样招司机,结果……
- 基于jsp的网上书店_[内附完整源码和文档] 基于JSP网上零食销售系统的设计与实现...
- matlab已经停止工作,Win7旗舰版运行Matlab提示已停止工作解决措施
- c#获取当前日期时间
- 靠写文章,我在CSDN赚了1.27万!
- JavaScript 判断手机号码格式 正则表达式 亲测
- 缺氧游戏黑科技计算机,《缺氧》怎么生存?缺氧bug黑科技小技巧使用方法一览...
- 在线JSON转换成Excel文件工具
- 信号、signal 函数、sigaction 函数