3dwoo大學簡體電腦書店
反爬蟲AST原理與還原混淆實戰(微課視頻版)
( 簡體 字)
作者:李岳陽、卓斌類別:1. -> 程式設計 -> 網路爬蟲
出版社:清華大學出版社反爬蟲AST原理與還原混淆實戰(微課視頻版) 3dWoo書號: 55072
詢問書籍請說出此書號!
有庫存
NT售價: 295
出版日:8/1/2021
頁數:252
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 字 )
ISBN:9787302585176 加入購物車加到我的最愛 (請先登入會員)
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證, 繁體書的下載亦請直接連絡出版社)
第1章搭建開發環境
1.1Node.js環境搭建
1.1.1Node.js安裝配置
1.1.2Babel安裝
1.1.3VisualStudioCode安裝配置
1.2Python環境配置
1.2.1Python3.7安裝
1.2.2requests請求庫安裝
1.2.3bs4解析庫安裝
1.3Fiddler抓包工具
1.4ASTExplorer網站在線生成抽象語法樹
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.1Chromelocaloverride
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逗號表達式混淆
6.4其他代碼防護方案
6.4.1eval加密
6.4.2內存爆破
6.4.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.3JSHook
10.3.1JSHook原理與作用
10.3.2JSHook對象屬性
10.3.3JS自動注入Hook
10.4DOM對象的Hook
10.4.1Script自動加載
10.4.2HookDOM
10.4.3JSProxy
10.5原型鏈
10.6XHRHook
10.7JSHook的檢測
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習題
AST是目前爬蟲領域的熱點。本書從AST這一個知識點出發,由淺入深,帶領讀者掌握反爬蟲AST的原理,并幫助讀者培養解決實際問題的能力。
本書共11章,分為四部分。第一部分(第1~4章)介紹開發環境的搭建方法、Web調試的必備技巧以及爬蟲與反爬蟲的基本知識;第二部分(第5~6章)講解混淆JavaScript代碼的手工逆向方法與JavaScript代碼安全防護的原理;第三部分(第7~8章)講解AST的原理與API的使用方法;第四部分(第9~11章)以AST為基礎,講解自動化的JavaScript代碼防護與還原方案,并帶領讀者進行實戰訓練。
本書適合作為計算機培訓的教材,也可供安全開發人員、爬蟲初學者以及想要在爬蟲領域進階的人員學習。
為什么要寫這樣一本書?
現在市面上的爬蟲書籍數不勝數,可是學完基礎,想要在爬蟲領域繼續向前深入的時候,就進入了一片荒蕪之地。這片土地上有許多分支,如Android爬蟲、JavaScript逆向和各類驗證碼破解等。想要在一個章節或者是一本書內講完所有進階的知識是不可能的,因為這每一個分支中所涉及的技術大相徑庭。
本書專注反爬蟲AST這一小點,同時,這也是難點。由于讀者的水平參差不齊,寫書必須兼顧基礎薄弱的讀者,因而在開始的篇章里會介紹必要的爬蟲和反爬蟲技術,零基礎的讀者務必從頭開始閱讀。
這本書算是一個簡單的嘗試。我和卓斌大哥(花名小肩膀)在開始編寫本書之前,已經有了多年網絡爬蟲、JavaScript逆向、安卓逆向和驗證碼識別的教學經驗。疫情期間,我對卓斌大哥說“寫本書吧”,他說“好”,于是就開始了本書的編寫之旅。初期我們信心十足,但在實際編寫的時候,卻疑慮重重,這個知識點到底該不該這樣寫、加不加。這段日子對第一次寫書的我們可以說是煎熬的,但同時也讓我們收獲了很多。
本書共11章,第1~5章和第7章由李岳陽寫就,第6章、第8章、第9章、第11章由卓斌大哥編寫,第10章由兩人合寫。本書主要圍繞反爬蟲AST手段進行講解,幫助讀者解決在爬蟲過程中遇到的混淆難題。本書源代碼等資源請掃描封底的“資源下載”二維碼,在公眾號“書圈”下載。本書配套視頻請先掃描封底刮刮卡中的二維碼,再掃描書中相應章節中的二維碼觀看。
寫書是每一個有志于教學之路的人的夢想,編者水平有限,深知第一次的嘗試不會盡善盡美,不過其中的知識點是豐富的,相信會讓讀者有所收獲。

李岳陽2021年3月30日
pagetop