爬虫逆向进阶实战
前言
第1章 网络爬虫架构
1.1 爬虫发展史
1.2 爬虫基本架构
1.3 分布式爬虫架构
1.3.1 主从分布式
1.3.2 对等分布式
1.4 网络爬虫遍历策略
1.4.1 广度优先策略
1.4.2 深度优先策略
查看完整
第1章 网络爬虫架构
1.1 爬虫发展史
1.2 爬虫基本架构
1.3 分布式爬虫架构
1.3.1 主从分布式
1.3.2 对等分布式
1.4 网络爬虫遍历策略
1.4.1 广度优先策略
1.4.2 深度优先策略
查看完整
作者简介
李玺,就职于中科大数据研究院。深耕爬虫逆向方向,拥有丰富的经验和精湛的技巧。作者是CSDN博客专家,爬虫逆向社区站长,曾荣获CSDN首届GEEK+原创大赛一等奖、2019-2021年博客之星。拥有爬虫领域发明专利,新工科大数据技术能力认证,也是河南省中原科技城E类人才。
作者在CSDN、51CTO、OSCHINA(开源中国)、思否、微信公众号等平台都有推文,阅读量超百万,并维护着爬虫逆向万人社区。
李玺,就职于中科大数据研究院。深耕爬虫逆向方向,拥有丰富的经验和精湛的技巧。作者是CSDN博客专家,爬虫逆向社区站长,曾荣获CSDN首届GEEK+原创大赛一等奖、2019-2021年博客之星。拥有爬虫领域发明专利,新工科大数据技术能力认证,也是河南省中原科技城E类人才。
作者在CSDN、51CTO、OSCHINA(开源中国)、思否、微信公众号等平台都有推文,阅读量超百万,并维护着爬虫逆向万人社区。
本书以爬虫逆向方向的相关技术和岗位要求进行撰写,总结了爬虫的架构体系、主流框架和未来发展ꎮ 书中包括各种自动化工具、抓包工具、逆向工具的使用,核心内容以Web Js 逆向、安卓逆向、小程序逆向为主。结合三十多个实战案例进行分析,内容从易到难,循序渐进,另外还对主流的反爬虫技术进行了讲解,包括传输协议、验证码体系、字符集映射、行为和指纹等。
本书适合对爬虫逆向感兴趣,想进一步提升自我的程序员参考阅读。
本书适合对爬虫逆向感兴趣,想进一步提升自我的程序员参考阅读。
前言
第1章 网络爬虫架构
1.1 爬虫发展史
1.2 爬虫基本架构
1.3 分布式爬虫架构
1.3.1 主从分布式
1.3.2 对等分布式
1.4 网络爬虫遍历策略
1.4.1 广度优先策略
1.4.2 深度优先策略
1.4.3 最佳优先策略
1.5 智能采集系统架构
1.5.1 采集需求分类
1.5.2 页面智能解析
1.5.3 数据管理模块
第2章 Python爬虫技巧
2.1 Utils
2.1.1 爬虫工具包
2.1.2 智能解析库
2.2 Scrapy
2.2.1 Scrapy架构
2.2.2 Scrapy信号
2.2.3 Scrapy异常
2.2.4 Scrapy去重
2.2.5 Scrapy部署
2.2.6 Scrapy监控
2.3 Asyncpy
2.3.1 Asyncpy架构
2.3.2 Asyncpy安装
2.3.3 Asyncpy使用
2.4 Feapder
2.4.1 Feapder架构
2.4.2 Feapder使用
2.4.3 Feapder部署
2.5 ScrapyRedis
2.5.1 运行原理
2.5.2 源码解析
2.5.3 集群模式
2.6 Scrapy开发
2.6.1 Scrapy_helper
2.6.2 Webmagicx
2.7 Crawlab
2.7.1 Crawlab架构
2.7.2 Crawlab部署
2.8 代理IP工具
2.8.1 Proxy_pool
2.8.2 PyproxyAsync
第3章 Web Js逆向
3.1 逆向基础
3.1.1 语法基础
3.1.2 作用域
3.1.3 窗口对象属性
3.1.4 事件
3.2 浏览器控制台
3.2.1 Network
3.2.2 Sources
3.2.3 Application
3.2.4 Console
3.3 加密参数定位方法
3.3.1 巧用搜索
3.3.2 堆栈调试
3.3.3 控制台调试
3.3.4 监听XHR
3.3.5 事件监听
3.3.6 添加代码片
3.3.7 注入和Hook
3.3.8 内存漫游
3.3.9 爬虫逆向进阶实战
3.4 常见的压缩和混淆
3.4.1 webpack
3.4.2 eval混淆
3.4.3 aa和jj混淆
3.4.4 Jsfuck混淆
3.4.5 OLLVM混淆
3.4.6 soJson加密
3.4.7 lsb隐写
3.5 常见的编码和加密
3.5.1 base64
3.5.2 MD5
3.5.3 SHA1
3.5.4 HMAC
3.5.5 DES
3.5.6 AES
3.5.7 RSA
3.6 加密参数还原与模拟
3.6.1 Virustotal逆向入门案例
3.6.2 Newrank榜单逆向案例
3.6.3 MD5加密逆向案例
3.6.4 RSA参数加密逆向案例
3.6.5 AES数据加密逆向案例
3.6.6 AES链接加密逆向案例
3.6.7 CNVD加速乐分析案例
3.7 浏览器环境补充
3.7.1 常被检测的环境
3.7.2 手动补充环境
3.7.3 JSDOM环境补充
3.7.4 Selenium环境模拟
3.7.5 puppeteer环境模拟
3.8 浏览器环境监测
3.8.1 Proxyintercept
3.8.2 Objecthook
3.9 加密方法远程调用
3.9.1 微博登录参数RPC
3.9.2 抖音直播数据RPC
3.9.3 巨量指数签名RPC
3.10 常见协议分析
3.10.1 webSocket协议
3.10.2 Protobuf协议
3.11 常见反调试
3.11.1 无限Debugger
3.11.2 无法打开控制台
3.11.3 禁用控制台输出
3.11.4 蜜罐和内存爆破
3.11.5 控制台状态检测
3.12 调试工具补充
3.12.1 WTJS调试工具
3.12.2 发条JS调试工具
3.12.3 鬼鬼JS调试工具
3.13 反混淆AST
3.13.1 节点类型对照表
3.13.2 节点属性和方法
3.13.3 拆解简单ob混淆
3.13.4 用AST还原代码
第4章 自动化工具的应用
4.1 Selenium
4.1.1 工具简介
4.1.2 基本操作
4.1.3 调用JavaScript
4.1.4 采集案例
4.1.5 检测应对
4.2 Pyppeteer
4.2.1 工具简介
4.2.2 使用方法
4.2.3 检测应对
4.2.4 拦截器
4.3 cefPython3
4.3.1 安装和使用
4.3.2 浏览器配置
4.3.3 客户端控制
4.3.4 文档解析
4.3.5 爬虫实战
4.4 Playwright
4.4.1 工具安装
4.4.2 基本使用
4.4.3 异步任务
4.4.4 自动录制
4.5 Appnium
4.5.1 Appnium概念
4.5.2 Appnium配置
4.5.3 Appnium测试
4.6 Airtest
4.6.1 设备连接
4.6.2 窗口介绍
4.6.3 简单测试
4.7 Auto.js
4.7.1 工具简介
4.7.2 使用案例
4.7.3 指数查询案例
第5章 抓包工具的应用
5.1 Fiddler
5.1.1 Fiddler配置
5.1.2 Fiddler断点
5.1.3 Fiddler接口调试
5.1.4 Fiddler替换Js文件
5.1.5 Fiddler保存响应内容
5.1.6 Fiddler监听webSocket
5.2 Charles
5.2.1 Charles配置
5.2.2 Charles断点
5.2.3 Charles保存响应内容
5.2.4 Charles监听webSocket
5.3 MitmProxy
5.3.1 工具介绍
5.3.2 安装配置
5.3.3 替换浏览器Js
5.3.4 公众号拦截案例
5.3.5 移动端拦截案例
5.4 HTTP AnalyzerStd V7
5.5 HTTP Canary
5.6 Postern
5.6.1 规则配置
5.6.2 配合抓包
5.7 Drony
5.7.1 工具介绍
5.7.2 配合抓包
5.8 Wireshark
5.8.1 Wireshark介绍
5.8.2 Wireshark技巧
第6章 Android逆向
6.1 Android逆向基础
6.1.1 APK
6.1.2 DEX
6.1.3 Smali
6.1.4 ARM
6.1.5 Android应用启动过程
6.1.6 逆向通用分析步骤
6.2 Android逆向工具
6.2.1 Android Killer
6.2.2 Jadx
6.2.3 JEB
6.2.4 IDA Pro
6.2.5 MT管理器
6.2.6 NP管理器
6.3 Android Hook工具
6.3.1 Xposed
6.3.2 Frida
6.3.3 Unidbg
6.3.4 Magisk
6.3.5 Tai Chi
6.4 Android混淆和加密
6.4.1 Android混淆技术
6.4.2 Android加密技术
6.5 加密参数定位方法
6.5.1 静态分析
6.5.2 动态分析
6.5.3 日志注入
6.5.4 动态调试
6.5.5 技巧补充
6.6 Android加固和脱壳
6.6.1 加固概念
6.6.2 查壳工具
6.6.3 脱壳工具
6.7 常见检测及绕过
6.7.1 双进程保护
6.7.2 权限检测
6.7.3 调试端口检测
6.7.4 进程名检测
6.7.5 系统函数检测
6.7.6 执行时间检测
6.8 Android群控和云机
6.8.1 Android群控
6.8.2 Android云机
第7章 小程序逆向
7.1 小程序逆向基础
7.1.1 反编译流程
7.1.2 反编译案例
7.2 小程序Hook
7.2.1 逻辑层Hook
7.2.2 渲染层Hook
7.3 小程序逆向分析案例
7.4 Windows小程序逆向
7.4.1 确定包位置
7.4.2 提取wxpkg
第8章 抓包技巧汇总
8.1 证书认证
8.1.1 SSL单向认证
8.1.2 SSL双向认证
8.2 不走代理
8.3 协议降级
8.4 自定义协议
8.4.1 Quic协议抓包
8.4.2 Spdy协议抓包
8.5 方法补充
第9章 Android逆向案例
9.1 某新闻加密参数分析和还原
9.1.1 接口分析
9.1.2 源码分析
9.1.3 动态分析
9.1.4 加密还原
9.2 某App签名Frida还原
9.2.1 接口分析
9.2.2 反编译App
9.2.3 静态分析参数
9.2.4 动态获取签名
9.2.5 加密算法还原
9.3 某App加密参数Xposed调用
9.3.1 静态分析源码
9.3.2 编写Hook脚本
9.3.3 搭建http服务
9.4 某App参数Frida+Flask RPC
9.4.1 反编译APK
9.4.2 静态分析Sig
9.4.3 调试和RPC
9.4.4 搭建Flask服务
9.5 某App加密参数Unidbg生成
9.5.1 接口分析
9.5.2 Frida调试
9.5.3 Unidbg调用
9.5.4 Unidbg补环境
9.5.5 Web服务搭建
9.6 某资讯加固脱壳和参数分析
9.6.1 抓包分析接口
9.6.23 60加固脱壳和反编译
9.6.3 源码静态分析
9.6.4 通过Hook调用
9.7 某新闻加固脱壳和参数分析
9.7.1 抓包分析接口
9.7.2 腾讯加固脱壳和反编译
9.7.3 源码静态分析
9.7.4 so文件分析
9.7.5 Frida动态调试
9.7.6 加密算法还原
9.8 某监管Root检测绕过
9.8.1 梆梆加固脱壳和反编译
9.8.2 源码静态分析
9.8.3 Frida绕过Root检测
第10章 验证码识别技术
10.1 图文验证码
10.1.1 利用开源库识别
10.1.2 验证码图像处理
10.1.3 机器学习识别验证码
10.1.4 深度学习识别验证码
10.2 滑块验证码
10.2.1 邮箱滑块验证码
10.2.2 数美滑块验证码
10.2.3 极验滑块验证码
10.2.4 利用AI平台识别缺口
10.3 点选验证码
10.4 短信验证码
10.4.1 Xposed拦截短信
10.4.2 GsmModem接收短信
10.4.3 太极验证码提取器
10.4.4 批量短信处理
^ 收 起
第1章 网络爬虫架构
1.1 爬虫发展史
1.2 爬虫基本架构
1.3 分布式爬虫架构
1.3.1 主从分布式
1.3.2 对等分布式
1.4 网络爬虫遍历策略
1.4.1 广度优先策略
1.4.2 深度优先策略
1.4.3 最佳优先策略
1.5 智能采集系统架构
1.5.1 采集需求分类
1.5.2 页面智能解析
1.5.3 数据管理模块
第2章 Python爬虫技巧
2.1 Utils
2.1.1 爬虫工具包
2.1.2 智能解析库
2.2 Scrapy
2.2.1 Scrapy架构
2.2.2 Scrapy信号
2.2.3 Scrapy异常
2.2.4 Scrapy去重
2.2.5 Scrapy部署
2.2.6 Scrapy监控
2.3 Asyncpy
2.3.1 Asyncpy架构
2.3.2 Asyncpy安装
2.3.3 Asyncpy使用
2.4 Feapder
2.4.1 Feapder架构
2.4.2 Feapder使用
2.4.3 Feapder部署
2.5 ScrapyRedis
2.5.1 运行原理
2.5.2 源码解析
2.5.3 集群模式
2.6 Scrapy开发
2.6.1 Scrapy_helper
2.6.2 Webmagicx
2.7 Crawlab
2.7.1 Crawlab架构
2.7.2 Crawlab部署
2.8 代理IP工具
2.8.1 Proxy_pool
2.8.2 PyproxyAsync
第3章 Web Js逆向
3.1 逆向基础
3.1.1 语法基础
3.1.2 作用域
3.1.3 窗口对象属性
3.1.4 事件
3.2 浏览器控制台
3.2.1 Network
3.2.2 Sources
3.2.3 Application
3.2.4 Console
3.3 加密参数定位方法
3.3.1 巧用搜索
3.3.2 堆栈调试
3.3.3 控制台调试
3.3.4 监听XHR
3.3.5 事件监听
3.3.6 添加代码片
3.3.7 注入和Hook
3.3.8 内存漫游
3.3.9 爬虫逆向进阶实战
3.4 常见的压缩和混淆
3.4.1 webpack
3.4.2 eval混淆
3.4.3 aa和jj混淆
3.4.4 Jsfuck混淆
3.4.5 OLLVM混淆
3.4.6 soJson加密
3.4.7 lsb隐写
3.5 常见的编码和加密
3.5.1 base64
3.5.2 MD5
3.5.3 SHA1
3.5.4 HMAC
3.5.5 DES
3.5.6 AES
3.5.7 RSA
3.6 加密参数还原与模拟
3.6.1 Virustotal逆向入门案例
3.6.2 Newrank榜单逆向案例
3.6.3 MD5加密逆向案例
3.6.4 RSA参数加密逆向案例
3.6.5 AES数据加密逆向案例
3.6.6 AES链接加密逆向案例
3.6.7 CNVD加速乐分析案例
3.7 浏览器环境补充
3.7.1 常被检测的环境
3.7.2 手动补充环境
3.7.3 JSDOM环境补充
3.7.4 Selenium环境模拟
3.7.5 puppeteer环境模拟
3.8 浏览器环境监测
3.8.1 Proxyintercept
3.8.2 Objecthook
3.9 加密方法远程调用
3.9.1 微博登录参数RPC
3.9.2 抖音直播数据RPC
3.9.3 巨量指数签名RPC
3.10 常见协议分析
3.10.1 webSocket协议
3.10.2 Protobuf协议
3.11 常见反调试
3.11.1 无限Debugger
3.11.2 无法打开控制台
3.11.3 禁用控制台输出
3.11.4 蜜罐和内存爆破
3.11.5 控制台状态检测
3.12 调试工具补充
3.12.1 WTJS调试工具
3.12.2 发条JS调试工具
3.12.3 鬼鬼JS调试工具
3.13 反混淆AST
3.13.1 节点类型对照表
3.13.2 节点属性和方法
3.13.3 拆解简单ob混淆
3.13.4 用AST还原代码
第4章 自动化工具的应用
4.1 Selenium
4.1.1 工具简介
4.1.2 基本操作
4.1.3 调用JavaScript
4.1.4 采集案例
4.1.5 检测应对
4.2 Pyppeteer
4.2.1 工具简介
4.2.2 使用方法
4.2.3 检测应对
4.2.4 拦截器
4.3 cefPython3
4.3.1 安装和使用
4.3.2 浏览器配置
4.3.3 客户端控制
4.3.4 文档解析
4.3.5 爬虫实战
4.4 Playwright
4.4.1 工具安装
4.4.2 基本使用
4.4.3 异步任务
4.4.4 自动录制
4.5 Appnium
4.5.1 Appnium概念
4.5.2 Appnium配置
4.5.3 Appnium测试
4.6 Airtest
4.6.1 设备连接
4.6.2 窗口介绍
4.6.3 简单测试
4.7 Auto.js
4.7.1 工具简介
4.7.2 使用案例
4.7.3 指数查询案例
第5章 抓包工具的应用
5.1 Fiddler
5.1.1 Fiddler配置
5.1.2 Fiddler断点
5.1.3 Fiddler接口调试
5.1.4 Fiddler替换Js文件
5.1.5 Fiddler保存响应内容
5.1.6 Fiddler监听webSocket
5.2 Charles
5.2.1 Charles配置
5.2.2 Charles断点
5.2.3 Charles保存响应内容
5.2.4 Charles监听webSocket
5.3 MitmProxy
5.3.1 工具介绍
5.3.2 安装配置
5.3.3 替换浏览器Js
5.3.4 公众号拦截案例
5.3.5 移动端拦截案例
5.4 HTTP AnalyzerStd V7
5.5 HTTP Canary
5.6 Postern
5.6.1 规则配置
5.6.2 配合抓包
5.7 Drony
5.7.1 工具介绍
5.7.2 配合抓包
5.8 Wireshark
5.8.1 Wireshark介绍
5.8.2 Wireshark技巧
第6章 Android逆向
6.1 Android逆向基础
6.1.1 APK
6.1.2 DEX
6.1.3 Smali
6.1.4 ARM
6.1.5 Android应用启动过程
6.1.6 逆向通用分析步骤
6.2 Android逆向工具
6.2.1 Android Killer
6.2.2 Jadx
6.2.3 JEB
6.2.4 IDA Pro
6.2.5 MT管理器
6.2.6 NP管理器
6.3 Android Hook工具
6.3.1 Xposed
6.3.2 Frida
6.3.3 Unidbg
6.3.4 Magisk
6.3.5 Tai Chi
6.4 Android混淆和加密
6.4.1 Android混淆技术
6.4.2 Android加密技术
6.5 加密参数定位方法
6.5.1 静态分析
6.5.2 动态分析
6.5.3 日志注入
6.5.4 动态调试
6.5.5 技巧补充
6.6 Android加固和脱壳
6.6.1 加固概念
6.6.2 查壳工具
6.6.3 脱壳工具
6.7 常见检测及绕过
6.7.1 双进程保护
6.7.2 权限检测
6.7.3 调试端口检测
6.7.4 进程名检测
6.7.5 系统函数检测
6.7.6 执行时间检测
6.8 Android群控和云机
6.8.1 Android群控
6.8.2 Android云机
第7章 小程序逆向
7.1 小程序逆向基础
7.1.1 反编译流程
7.1.2 反编译案例
7.2 小程序Hook
7.2.1 逻辑层Hook
7.2.2 渲染层Hook
7.3 小程序逆向分析案例
7.4 Windows小程序逆向
7.4.1 确定包位置
7.4.2 提取wxpkg
第8章 抓包技巧汇总
8.1 证书认证
8.1.1 SSL单向认证
8.1.2 SSL双向认证
8.2 不走代理
8.3 协议降级
8.4 自定义协议
8.4.1 Quic协议抓包
8.4.2 Spdy协议抓包
8.5 方法补充
第9章 Android逆向案例
9.1 某新闻加密参数分析和还原
9.1.1 接口分析
9.1.2 源码分析
9.1.3 动态分析
9.1.4 加密还原
9.2 某App签名Frida还原
9.2.1 接口分析
9.2.2 反编译App
9.2.3 静态分析参数
9.2.4 动态获取签名
9.2.5 加密算法还原
9.3 某App加密参数Xposed调用
9.3.1 静态分析源码
9.3.2 编写Hook脚本
9.3.3 搭建http服务
9.4 某App参数Frida+Flask RPC
9.4.1 反编译APK
9.4.2 静态分析Sig
9.4.3 调试和RPC
9.4.4 搭建Flask服务
9.5 某App加密参数Unidbg生成
9.5.1 接口分析
9.5.2 Frida调试
9.5.3 Unidbg调用
9.5.4 Unidbg补环境
9.5.5 Web服务搭建
9.6 某资讯加固脱壳和参数分析
9.6.1 抓包分析接口
9.6.23 60加固脱壳和反编译
9.6.3 源码静态分析
9.6.4 通过Hook调用
9.7 某新闻加固脱壳和参数分析
9.7.1 抓包分析接口
9.7.2 腾讯加固脱壳和反编译
9.7.3 源码静态分析
9.7.4 so文件分析
9.7.5 Frida动态调试
9.7.6 加密算法还原
9.8 某监管Root检测绕过
9.8.1 梆梆加固脱壳和反编译
9.8.2 源码静态分析
9.8.3 Frida绕过Root检测
第10章 验证码识别技术
10.1 图文验证码
10.1.1 利用开源库识别
10.1.2 验证码图像处理
10.1.3 机器学习识别验证码
10.1.4 深度学习识别验证码
10.2 滑块验证码
10.2.1 邮箱滑块验证码
10.2.2 数美滑块验证码
10.2.3 极验滑块验证码
10.2.4 利用AI平台识别缺口
10.3 点选验证码
10.4 短信验证码
10.4.1 Xposed拦截短信
10.4.2 GsmModem接收短信
10.4.3 太极验证码提取器
10.4.4 批量短信处理
^ 收 起
作者简介
李玺,就职于中科大数据研究院。深耕爬虫逆向方向,拥有丰富的经验和精湛的技巧。作者是CSDN博客专家,爬虫逆向社区站长,曾荣获CSDN首届GEEK+原创大赛一等奖、2019-2021年博客之星。拥有爬虫领域发明专利,新工科大数据技术能力认证,也是河南省中原科技城E类人才。
作者在CSDN、51CTO、OSCHINA(开源中国)、思否、微信公众号等平台都有推文,阅读量超百万,并维护着爬虫逆向万人社区。
李玺,就职于中科大数据研究院。深耕爬虫逆向方向,拥有丰富的经验和精湛的技巧。作者是CSDN博客专家,爬虫逆向社区站长,曾荣获CSDN首届GEEK+原创大赛一等奖、2019-2021年博客之星。拥有爬虫领域发明专利,新工科大数据技术能力认证,也是河南省中原科技城E类人才。
作者在CSDN、51CTO、OSCHINA(开源中国)、思否、微信公众号等平台都有推文,阅读量超百万,并维护着爬虫逆向万人社区。
本书以爬虫逆向方向的相关技术和岗位要求进行撰写,总结了爬虫的架构体系、主流框架和未来发展ꎮ 书中包括各种自动化工具、抓包工具、逆向工具的使用,核心内容以Web Js 逆向、安卓逆向、小程序逆向为主。结合三十多个实战案例进行分析,内容从易到难,循序渐进,另外还对主流的反爬虫技术进行了讲解,包括传输协议、验证码体系、字符集映射、行为和指纹等。
本书适合对爬虫逆向感兴趣,想进一步提升自我的程序员参考阅读。
本书适合对爬虫逆向感兴趣,想进一步提升自我的程序员参考阅读。
比价列表