反爬蟲 AST 原理與還原混淆實戰 (微課視頻版)
李岳陽、卓斌
- 出版商: 清華大學
- 出版日期: 2021-08-01
- 售價: $354
- 貴賓價: 9.5 折 $336
- 語言: 簡體中文
- 頁數: 236
- 裝訂: 平裝
- ISBN: 7302585172
- ISBN-13: 9787302585176
-
相關分類:
Web-crawler 網路爬蟲
立即出貨 (庫存 < 3)
買這商品的人也買了...
-
$403AWS Lambda 實戰 : 開發事件驅動的無服務器應用程序 (AWS Lambda in Action: Event-Driven Serverless Applications)
-
$780$663 -
$780$663 -
$1,000$790 -
$403網絡輿情分析技術
-
$588$559 -
$714$678 -
$252$239 -
$599$569 -
$403網絡工程師教程
-
$648$616 -
$305Python 網絡爬蟲與數據採集
-
$305大數據存儲 — 從 SQL 到 NoSQL
-
$228大數據技術與機器學習 Python 實戰
-
$359$341 -
$594$564 -
$580$435 -
$600$468 -
$654$621 -
$714$678 -
$834$792 -
$828$787 -
$880$748 -
$509Elasticsearch 數據搜索與分析實戰
-
$653機器學習和深度學習:原理、算法、實戰 (使用 Python 和 TensorFlow)
相關主題
商品描述
AST是目前爬蟲領域的熱點。本書從AST這一個知識點出發,由淺入深,帶領讀者掌握反爬蟲AST的原理,並幫助讀者培養解決實際問題的能力。 本書共11章,分為四部分。第一部分(第1~4章)介紹開發環境的搭建方法、Web調試的必備技巧以及爬蟲與反爬蟲的基本知識;第二部分(第5~6章)講解混淆JavaScript代碼的手工逆向方法與JavaScript代碼安全防護的原理;第三部分(第7~8章)講解AST的原理與API的使用方法;第四部分(第9~11章)以AST為基礎,講解自動化的JavaScript代碼防護與還原方案,並帶領讀者進行實戰訓練。 本書適合作為電腦培訓的教材,也可供安全開發人員、爬蟲初學者以及想要在爬蟲領域進階的人員學習。
作者簡介
李岳陽,畢業於北京大學,資深爬蟲工程師,執著於技術提升和知識傳播。
一名語言無關論者,不過偏重使用Python和Erlang。
卓斌,資深安全開發工程師,花名“小肩膀”,熱愛逆向技術,有十餘年安全開發培訓經驗。
多年來研發多門Web和Android端逆向課程,深受學員好評。
目錄大綱
第1章搭建開發環境
1.1Node.js環境搭建
1.1.1Node.js安裝配置
1.1.2Babel安裝
1.1.3Visual Studio Code安裝配置
1.2Python環境配置
1.2.1Python 3.7安裝
1.2.2requests請求庫安裝
1.2.3bs4解析庫安裝
1.3Fiddler抓包工具
1.4AST Explorer網站在線生成抽象語法樹
1.5小結
1.6習題
第2章Web網站的調試與抓包分析
2.1Chrome開發者工具
2.1.1Elements面板
2.1.2Console面板
2.1.3Sources面板
2.1.4Network面板
2.1.5Application面板
2.2JS逆向調試技巧
2.2.1善用搜索
2.2.2查看請求調用堆棧
2.2.3XHR請求斷點
2.2.4Console插樁
2.2.5堆內存函數調用
2.2.6複製Console面板輸出
2.3本地覆蓋
2.3.1Chrome local override
2.3.2Fiddler自動響應
2.4Ajax-hook
2.4.1Ajax-hook源碼分析
2.4.2Ajax-hook攔截
2.5網易易盾滑塊驗證碼調試分析
2.6小結
2.7習題
第3章爬蟲與反爬蟲
3.1網絡爬蟲
3.1.1網絡爬蟲原理
3.1.2網絡爬蟲分類
3.1.3網絡爬蟲與搜索引擎
3.2編寫網絡爬蟲
3.2.1requests請求庫的使用
3.2.2bs4解析庫的使用
3.2.3編寫簡單網絡爬蟲
3.3爬蟲與反爬蟲的博弈
3.4小結
3.5習題
第4章常規反爬蟲技術
4.1Headers頭部校驗
4.2IP地址記錄
4.3Ajax異步加載
4.4字體反爬蟲
4.5驗證碼反爬蟲
4.6JS參數加密
4.7JS反調試
4.8AST混淆反爬蟲
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.3unicode字符串
6.1.4字符串的ASCII碼混淆
6.1.5字符串常量加密
6.1.6數值常量加密
6.2增加JS逆向者的工作量
6.2.1數組混淆
6.2.2數組亂序
6.2.3花指令
6.2.4jsfuck
6.3代碼執行流程的防護原理
6.3.1流程平坦化
6.3.2逗號表達式混淆
其他代碼防護方案
.1eval加密
.2內存
.3檢測代碼是否格式化
6.5小結
6.6習題
第7章AST抽象語法樹的原理與實現
7.1理解AST抽象語法樹
7.1.1AST基本概念
7.1.2AST在編譯中的位置
7.1.3AST程序開發
7.2詞法分析
7.2.1詞法分析基本原理
7.2.2Python編寫詞法分析器
7.3語法分析
7.3.1語法分析基本原理
7.3.2Python編寫語法分析器
7.4Babel編譯步驟
7.4.1Babel的解析
7.4.2Babel的轉化
7.4.3Babel的生成
7.5小結
7.6習題
第8章AST的API詳解
8.1AST入門
8.1.1AST的基本結構
8.1.2代碼的基本結構
8.2Babel中的組件
8.2.1parser與generator
8.2.2traverse與visitor
8.2.3types組件
8.3Path對象詳解
8.3.1Path與Node的區別
8.3.2Path中的方法
8.3.3父級Path
8.3.4同級Path
8.4scope詳解
8.4.1獲取標識符作用域
8.4.2scope.getBinding
8.4.3scope.getOwnBinding
8.4.4referencePaths與constantViolations
8.4.5遍歷作用域
8.4.6標識符重命名
8.4.7scope的其他方法
8.5小結
8.6習題
第9章AST自動化JS防護方案
9.1混淆前的代碼處理
9.1.1改變對象屬性訪問方式
9.1.2JS標準內置對象的處理
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.2Chrome拓展開發入門
10.2.1Chrome拓展程序
10.2.2Chrome拓展開發之去除廣告插件
10.3JS Hook
10.3.1JS Hook原理與作用
10.3.2JS Hook對象屬性
10.3.3JS自動注入Hook
10.4DOM對象的Hook
10.4.1Script自動加載
10.4.2Hook DOM
10.4.3JS Proxy
10.5原型鏈
10.6XHR Hook
10.7JS 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習題