1. 程式人生 > 程式設計 >Js逆向實現滑動驗證碼圖片還原的示例程式碼

Js逆向實現滑動驗證碼圖片還原的示例程式碼

本文列舉兩個例子:某象和某驗的滑動驗證

一、某驗:aHR0cHM6Ly93d3cuZ2VldGVzdC5jb20vZGVtby9zbGlkZS1mbG9hdC5odG1s

未還原影象:

Js逆向實現滑動驗證碼圖片還原的示例程式碼

還原後的圖:

Js逆向實現滑動驗證碼圖片還原的示例程式碼

從服務端請求來的圖片是打亂後的,給使用者看的時候是完整的,這個過程肯定是運行了某段js程式碼,將打亂的圖片進行還原操作。所以我們需要找到這段js,然後還原它的程式碼邏輯,實現圖片的還原操作,找到缺口距離,實現滑動操作。

如果你仔細觀察的話,你會發現還原後的圖它是canvas生成出來的

Js逆向實現滑動驗證碼圖片還原的示例程式碼

那你應該會想到,那段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);
  }
})();

我們現在來看看效果,重新整理頁面:

Js逆向實現滑動驗證碼圖片還原的示例程式碼

那我們就可以能快速定位到建立canvas的位置了,

Js逆向實現滑動驗證碼圖片還原的示例程式碼

下面就是慢慢分析程式碼了,具體就不多說了

Js逆向實現滑動驗證碼圖片還原的示例程式碼

Js逆向實現滑動驗證碼圖片還原的示例程式碼

Js逆向實現滑動驗證碼圖片還原的示例程式碼

這個例子主要就是對油猴外掛(hook)的使用吧。

二、某象:aHR0cDovL2Nkbi5kaW5neGlhbmctaW5jLmNvbS9jdHUtZ3JvdXAvY2FwdGNoYS11aS9kZW1vLw==

同樣的驗證碼圖片還原也是使用canvas生成的,如果使用上面的方式的話,沒啥效果的

Js逆向實現滑動驗證碼圖片還原的示例程式碼

但是通過search關鍵字canvas還是能過發現一些貓膩的。

Js逆向實現滑動驗證碼圖片還原的示例程式碼

Js逆向實現滑動驗證碼圖片還原的示例程式碼

Js逆向實現滑動驗證碼圖片還原的示例程式碼

Js逆向實現滑動驗證碼圖片還原的示例程式碼

好了,兩個例子就是這樣了,具體還原始碼,有興趣自己去實現吧。

到此這篇關於Js逆向實現滑動驗證碼圖片還原的示例程式碼的文章就介紹到這了,更多相關Js逆向滑動驗證碼內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!