本文列舉兩個例子:某象和某驗的滑動驗證
一、某驗:aHR0cHM6Ly93d3cuZ2VldGVzdC5jb20vZGVtby9zbGlkZS1mbG9hdC5odG1s
未還原圖像:
還原后的圖:
從服務端請求來的圖片是打亂后的,給用戶看的時候是完整的,這個過程肯定是運行了某段js代碼,將打亂的圖片進行還原操作。所以我們需要找到這段js,然后還原它的代碼邏輯,實現圖片的還原操作,找到缺口距離,實現滑動操作。
如果你仔細觀察的話,你會發現還原后的圖它是canvas生成出來的
那你應該會想到,那段js中會生成canvas,然后使用它下面的一些方法,實現圖片的還原操作,所以我們需要知道他啥時候生成canvas,找到位置,然后慢慢往下調試,找到還原代碼。
這時我們就需要使用油猴插件,進行hook了。如果對油猴不了解的同學,可以谷歌百度下,學習下,這是非常有用的,代碼如下:
// ==UserScript==
// @name hook createElement
// @namespace http://tampermonkey.net/
// @version 0.1
// @description try to take over the world!
// @author 朱宇
// @match *://*/*
// @grant none
// ==/UserScript==
(function() {
'use strict';
// Your code here...
let _createElement = document.createElement.bind(document);
document.createElement = function (elm) {
console.log("createElement:",elm);
if (elm === "canvas") {
// debugger;
}
return _createElement(elm);
}
})();
我們現在來看看效果,刷新頁面:
那我們就可以能快速定位到創建canvas的位置了,
下面就是慢慢分析代碼了,具體就不多說了
這個例子主要就是對油猴插件(hook)的使用吧。
二、某象:aHR0cDovL2Nkbi5kaW5neGlhbmctaW5jLmNvbS9jdHUtZ3JvdXAvY2FwdGNoYS11aS9kZW1vLw==
同樣的驗證碼圖片還原也是使用canvas生成的,如果使用上面的方式的話,沒啥效果的
但是通過search關鍵字canvas
還是能過發現一些貓膩的。
好了,兩個例子就是這樣了,具體還原代碼,有興趣自己去實現吧。
本文僅供學習交流,如有任何權益問題請聯系筆者刪除