實戰位址:
http://match.yuanrenxue.com/match/1
打開f12 随即出現了無限debugger反調試
在debugger所在右擊出現的菜單欄點選never pause here 去掉斷點
之後清空控制台。 開始抓包分析,發現隻有一個加密參數m
全局搜尋m=,m: 發現結果 有點多。也沒發現什麼。。。
最後通過ajax請求的回調棧找了線索
複制出來格式化此處代碼
看到這問題範圍就縮小了。。。可以明确oo0O0 函數 和 window.f是關鍵
扣出這部分代碼放到node js 中運作。
然後本着缺啥補啥的原則繼續補下去
缺失的東西可以去控制台找譬如 document.f 值應為多少
因為不停的列印永不言棄。。。淹沒自己的運作結果。。。是以我直接在那句話打了斷點。防止幹擾視線。
繼續分析oo0O0 函數,發現最後有個eval
而且函數最後也隻是傳回了空
可以到控制台或者node中輸出一下
atob(window['b']) , J('0x0', ']dQW'), J('0x1', 'GTu!') , '\x27' + mw + '\x27')
格式化分析atob(window['b']) 傳回的代碼發現了window.f的藏身之地。。哈哈哈,
再次回看剛剛輸出的。replace mwqqppz 等關鍵字。。。嗯。。
window.f的值為hex_md5(mwqqppz), 而mwqqppz被replace成了oo0O0
函數傳入的時間戳字元串參數,到此即可修改代碼為
最後放到一個js檔案中供調用(直接用字元串傳入出現了編碼錯誤。換成檔案調用成功了)。成品如下
成功!