爬蟲工程師的頭號大敵歷來都不是 WEB 開發工程師,也不是移動端開發工程師,而是本身。對,是咱們本身太菜了!爬蟲是綜合技術的應用,是我的知識面的體現。入行半年光景,咱們便可以感覺到反爬蟲手段和技術負責人帶來的壓迫感,天天都在加班和被催促中度過。
python
咱們攫取知識的渠道實在是太少了!除了幾個大型技術媒體平臺翻閱文章以外,只能在技術交流羣裏向「大佬」們請教。小編韋世東是近兩年才自學轉行到爬蟲領域的,深深地理解你們的處境和難處,在學習和成長的路途中,獲得過不少「大佬」的幫助,在學成後也但願可以幫助到和本身同樣深陷技術泥潭的工程師們走出困境。web
——這就是《JavaScript 逆向系列課》的產生背景。瀏覽器
先來看爬蟲工程師遇到的困境,假設你想要模擬瀏覽器向服務端發送一次 POST 請求,你如今得經過瀏覽器開發者工具觀察請求信息,當你按 F12 喚起開發者工具時,你會發現老是被自動斷點到一串代碼處:微信
這使得你沒法觀察網絡請求和分析代碼,後面的工做也沒法開展。網絡
——這就是事件監聽之無限 debugger。ide
費了九牛二虎之力解決了無限 debugger 問題後,你終於看到了網絡請求信息,瀏覽器的請求信息以下:工具
Request URL: http://fanyi.nightteam.cn/Request Method: POSTclient: fanyideskwebsalt: 15793079804866sign: 7e65ff7fe83383046b94e90ab5d49f2ets: 1579307980486bv: 9eaf64dcb9196c4d663dc6a774403fc6
很明顯,sign 和 bv 這兩個頭域的值是加密過的,如今你必須找到這兩個頭域對應的值的計算方法。學習
——這就是參數加密flex
一般狀況下,咱們會使用全局搜索 Ctrl + Shift + F 直接搜尋 sign 或 bv 關鍵字。很糟糕,不管咱們怎麼搜索都搜不到!你根本不知道 sign 和 bv 值的計算方法寫在哪裏網站
——這就是入口難找
因而你施展斷點和 hook 之法,費盡千辛萬苦找到了計算 sign 和 bv 的 JS 文件,點進去以後就有點懵逼了:
var __encode ='nighttean.cn', _0xb483=["\x5F\x64\x65\x63\x6F\x64\x65","\x68\x74\x74\x70\x3A\x2F\x2F\x77\x77\x77\x2E\x73\x6F\x6A\x73\x6F\x6E\x2E\x63\x6F\x6D\x2F\x6A\x61\x76\x61\x73\x63\x72\x69\x70\x74\x6F\x62\x66\x75\x73\x63\x61\x74\x6F\x72\x2E\x68\x74\x6D\x6C"];(function(_0xd642x1){_0xd642x1[_0xb483[0]]= _0xb483[1]})(window);var _0x5bcb=["\x69\x6E\x66\x6F","\u8FD9\u662F\u4E00\u4E2A\u9AD8\u7EA7\u52A0\u5BC6\u7684\u65B9\u5F0F\uFF0C\u52A0\u5BC6\u540E\u4E0D\u80FD\u6062\u590D\uFF0C\u8BF7\u4FDD\u5B58\u597D\u6E90\u7801\u3002","\x61\x64\x69\x6E\x66\x6F","\u7AD9\u957F\u63A5\u624B\u52A8\u52A0\u5BC6\uFF0C\u4FDD\u536B\u4F60\u7684\x20\x6A\x73\u3002"];(function(_0xe17ex1,_0xe17ex2){_0xe17ex1[_0x5bcb[0x0]]= _0x5bcb[0x1];_0xe17ex2[_0x5bcb[0x2]]= _0x5bcb[0x3]})(window,document)
你能看出上面這段 JavaScript 代碼的邏輯和具體含義嗎?這顯然是網站作了多層防護方法!經過 Unicode 編碼、十六進制表示、語義複雜化等方式將本來漂亮整齊的代碼變成上面的樣子。真的是爺爺來了都認不出來!
——這就是代碼混淆。
若是你遇到過或者即將要遇到與上面相似的問題,那麼《JavaScript 逆向系列課》很適合你。咱們來看看,你將從這門課中收穫哪些知識:
序號 | 內容 | 重要程度 |
1 | 深刻理解 JavaScript 反爬蟲的根本緣由 | A+ |
2 | 瞭解工做中經常使用的 JavaScript 語法和知識 | B |
3 | 掌握各類逆向神器的基本使用和騷操做 | A |
4 | 深刻理解 JavaScript 代碼混淆的原理 | A+ |
5 | 掌握 JavaScript 中常見的編碼和加密方法 | A |
6 | 擁有快速定位加密代碼位置的能力 | A |
7 | 輕鬆面對各類各樣的加密字符串 | A |
本課程將從原理和技巧兩個角度來爲你們講解 JavaScript 反爬蟲繞過的相關知識。課程從反爬蟲原理、工具介紹和使用、JavaScript 基礎語法入手,結合常見的反爬蟲現象及其繞過實戰操做,幫助你掌握中級爬蟲工程師必備的 JavaScript 逆向知識,向更高的職級邁進!
課程大綱以下:
序號 | 標籤 | 課程標題 |
1 | 追根究底 | 探尋 JavaScript 反爬蟲的根本緣由 |
2 | 浮沙之上 | 課程中用到的 JavaScript 語法和知識 |
3 | 奇門遁甲 | 使用 Python 執行 JavaScript |
4 | 蓄勢待發 | 瀏覽器開發者工具的介紹和使用技巧 |
5 | 磨刀霍霍 | 抓包和攔截工具的介紹和使用技巧 |
6 | 初窺門徑 | 阻撓爬蟲工程師的無限 debug |
7 | 火眼金睛 | 定位加密參數對應代碼位置的方法 |
8 | 撥開雲霧 | 代碼混淆的原理 |
9 | 一擊即中 | 處理代碼混淆的方法 |
10 | 知己知彼 | 掌握常見的編碼和加密 |
11 | 長槍直入 | 輕鬆解決反人類的混淆代碼 |
12 | 一葉障目 | 服務端返回的神祕字符串 |
13 | 螳臂當車 | 解密!AES 並非每次都奏效 |
14 | 插翅難逃 | 縱然 CSS 加身也難逃命運的安排 |
15 | 真假猴王 | Base64 竟有如此威力 |
16 | 過眼雲煙 | 歷練半生 歸來還是少年 |
課程面向入門級~中級爬蟲工程師,就算你是一個 JavaScript 小白也能看得懂。
課程內容製做團隊堪稱豪華,團隊由業內知名的工程師組成,成員分別是:崔慶才、韋世東、陳祥安、張冶青、唐軼飛、蔡晉、馮威、戴煌金、周子淇、文安哲。若是你對他們的名字感到陌生,那看到頭像就懂了:
•2018~2019 年火爆全網的《Python3 網絡爬蟲開發實戰》,做者崔慶才;•2020 年京東熱賣榜(IT 讀物)第1、噹噹新書榜(IT 讀物)第一的《Python3 反爬蟲原理與繞過實戰》,做者韋世東;•2019 年瘋狂收穫 4k Star 數的開源項目 Crawlab 做者 MarvinZ;•那個站在 JavaScript 逆向食物鏈頂端的男人 sml2h3;•連續高頻發文,帶領你們領略逆向風光的花兒謝了、蔡老闆和鹹魚哥;•4G 商業代理文章首發做者,同時也是在爬蟲職業深陷輿論時首個站出來發聲《請不要污名化爬蟲》的做者 Loco;•過低調了,低調到我都不知道怎麼描述他的企鵝工程師大魚,反正韋世東的成長路上少不了他;
課程早在 10 月份就開啓了預售,預售完成以後團隊才肯定要錄製這門課程的。在沒有任何外部廣告的做用下,夜幕團隊贏得了 750 名工程師的信任,你們早早就交錢等課。
預售羣一羣成員截圖
夜幕團隊感謝你們的信任!
通過幾個月的素材製做、視頻錄製、交叉驗證、補錄、字幕製做和剪輯,《JavaScript 逆向系列課》終於要跟你們見面了,課程正式開售日期爲 2020.1.20 日。
新課開售|限時優惠
未能參與預售活動的朋友能夠參與此次的新課開售活動,有 50 元優惠哦!優惠活動持續到 2020.1.31號,過時不候。
本文分享自微信公衆號 - Python學習開發(python3-5)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。