本站支持尊重有效期内的版权/著作权,所有的资源均来自于互联网网友分享或网盘资源,一旦发现资源涉及侵权,将立即删除。希望所有用户一同监督并反馈问题,如有侵权请联系站长或发送邮件到ebook666@outlook.com,本站将立马改正
商品基本信息,请以下列介绍为准 | |
商品名称: | 反爬虫AST原理与还原混淆实战(微课版)/清华科技大讲堂 |
作者: | 李岳阳//卓斌 |
定价: | 59.0 |
出版社: | 清华大学出版社 |
出版日期: | 2021-08-01 |
ISBN: | 9787302585176 |
印次: | 1 |
版次: | 1 |
装帧: | |
开本: | 16开 |
内容简介 | |
AST是目前爬虫领域的热点。本书从AST这一个知识点出发,由浅入深,带领读者掌握反爬虫AST的原理,并帮助读者培养解决实际问题的能力。 本书共11章,分为四部分。部分(第1~4章)介绍开发环境的搭建方法、Web调试的技巧以及爬虫与反爬虫的基本知识;第二部分(第5~6章)讲解混淆JavaScript代码的手工逆向方法与JavaScript代码防护的原理;第三部分(第7~8章)讲解AST的原理与API的使用方法;第四部分(第9~11章)以AST为基础,讲解自动化的JavaScript代码防护与还原方案,并带领读行实战训练。 本书适合作为计算机培训的教材,也可供开发人员、爬虫初学者以及想要在爬虫领阶的人员学习。 |
目录 | |
第1章 搭建开发环境 1.1 Node.js环境搭建 1.1.1 Node.js安装配置 1.1.2 Babel安装 1.1.3 Visual Studio Code安装配置 1.2 Python环境配置 1.2.1 Python 3.7安装 1.2.2 requests请求库安装 1.2.3 bs4解析库安装 1.3 Fler工具 1.4 AST Explorer网站在线生成抽象语法树 1.5 小结 1.6 习题 第2章 Web网站的调试与分析 2.1 Chrome工具 2.1.1 Elements面板 2.1.2 Console面板 2.1.3 Sources面板 2.1.4 Network面板 2.1.5 Application面板 2.2 JS逆向调试技巧 2.2.1 善用搜索 2.2.2 查看请求调用堆栈 2.2.3 XHR请求断点 2.2.4 Consoler/> 2.2.5 堆内存函数调用 2.2.6 Console面板输出 2.3 本地覆盖 2.3.1 Chrome local override 2.3.2 Fler自动响应 2.4 Ajaxhook 2.4.1 Ajax-hook源码分析 2.4.2 Ajax-hook拦截 2.5 网易易盾滑块验证码调试分析 2.6 小结 2.7 习题 第3章 爬虫与反爬虫 3.1 网络爬虫 3.1.1 网络爬虫原理 3.1.2 网络爬虫分类 3.1.3 网络爬虫与搜索引擎 3.2 编写网络爬虫 3.2.1 requests请求库的使用 3.2.2 bs4解析库的使用 3.2.3 编写简单网络爬虫 3.3 爬虫与反爬虫的博弈 3.4 小结 3.5 习题 第4章 常规反爬虫技术 4.1 Headers头部校验 4.2 IP地址记录 4.3 Ajax异步加载 4.4 字体反爬虫 4.5 验证码反爬虫 4.6 JS参数加密 4.7 JS反调试 4.8 AST混淆反爬虫 4.9 小结 4.10 习题 第5章 混淆JS手动逆向方法 5.1 混淆脚本分析 5.1.1 定位加密入口 5.1.2 混淆特征分析 5.1.3 加密函数还原 5.2 小结 5.3 习题 第6章 JS代码防护原理 6.1 常量的混淆原理 6.1.1 对象属性的两种访问方式 6.1.2 十制字符串 6.1.3 unicode字符串 6.1.4 字符串的ASCII码混淆 6.1.5 字符串常量加密 6.1.6 数值常量加密 6.2 增加JS逆向者的工作量 6.2.1 数组混淆 6.2.2 数组乱序 6.2.3 花指令 6.2.4 jr/> 6.3 代码执行流程的防护原理 6.3.1 流坦化 6.3.2 逗号表达式混淆 6.4 其他代码防护方案 6.4.1 eval加密 6.4.2 内存爆破 6.4.3 检测代码是否格式化 6.5 小结 6.6 习题 第7章 AST抽象语法树的原理与实现 7.1 理解AST抽象语法树 7.1.1 AST基本概念 7.1.2 AST在编译中的位置 7.1.3 AST程序开发 7.2 词法分析 7.2.1 词法分析基本原理 7.2.2 Python编写词法分析器 7.3 语法分析 7.3.1 语法分析基本原理 7.3.2 Python编写语法分析器 7.4 Babel编译步骤 7.4.1 Babel的解析 7.4.2 Babel的转化 7.4.3 Babel的生成 7.5 小结 7.6 习题 第8章 AST的API详解 8.1 AST入门 8.1.1 AST的基本结构 8.1.2 代码的基本结构 8.2 Babel中的组件 8.2.1 parser与generator 8.2.2 traverse与visitor 8.2.3 types组件 8.3 Path对象详解 8.3.1 Path与Node的区别 8.3.2 Path中的方法 8.3.3 父级Path 8.3.4 同级Path 8.4 scope详解 8.4.1 获取标识符作用域 8.4.2 scope.getBinding 8.4.3 scope.getOwnBinding 8.4.4 referencePaths与constantViolationr/> 8.4.5 遍历作用域 8.4.6 标识符重命名 8.4.7 scope的其他方法 8.5 小结 8.6 习题 第9章 AST自动化JS防护方案 9.1 混淆前的代码处理 9.1.1 改变对象属性访问方式 9.1.2 JS标准内置对象的处理 9.2 常量与标识符的混淆 9.2.1 实现数值常量加密 9.2.2 实现字符串常量加密 9.2.3 实现数组混淆 9.2.4 实现数组乱序 9.2.5 实现十制字符串 9.2.6 实现标识符混淆 9.2.7 标识符的随机生成 9.3 代码块的混淆 9.3.1 二项式转函数花指令 9.3.2 代码的逐行加密 9.3.3 代码的逐行ASCII码混淆 9.4 完整的代码与处理后的效果 9.5 代码执行逻辑的混淆 9.5.1 实现流坦化 9.5.2 实现逗号表达式混淆 9.5 小结 9.6 习题 第10章 AST自动化JavaScript还原方案 10.1 常用还原方案 10.1.1 还原数值常量加密 10.1.2 还原代码加密与ASCII码混淆 10.1.3 还原unicode与十制字符串 10.1.4 还原逗号表达式混淆 10.2 Chrome拓展开发入门 10.2.1 Chrome拓展程序 10.2.2 Chrome拓展开发之去除广告r/> 10.3 JS Hook 10.3.1 JS Hook原理与作用 10.3.2 JS Hook对象属性 10.3.3 JS自动注入Hook 10.4 DOM对象的Hook 10.4.1 Script自动加载 10.4.2 Hook DOM 10.4.3 JS Proxy 10.5 原型链 10.6 XHR Hook 10.7 JS Hook的检测 10.8 小结 10.9 习题 第11章 AST还原JS实战 11.1 分析网站使用的混淆手段 11.1.1 协议分析 11.1.2 数组乱序 11.1.3 字符串加密 11.1.4 花指令 11.1.5 流坦化 11.2 还原代码中的常量 11.2.1 整体代码结构 11.2.2 字符串解密与去除数组混淆 11.3 剔除花指令 11.3.1 花指令剔除思路 11.3.2 字符串花指令的剔除 11.3.3 函数花指令的剔除 11.4 还原流坦化 11.4.1 获取分发器 11.4.2 解析switch结构 11.4.3 复原语句顺序 11.4.4 协议逆向 11.5 小结 11.6 习题 |