Js逆向?qū)崿F(xiàn)滑動(dòng)驗(yàn)證碼圖片還原的示例代碼
本文列舉兩個(gè)例子:某象和某驗(yàn)的滑動(dòng)驗(yàn)證
一、某驗(yàn):aHR0cHM6Ly93d3cuZ2VldGVzdC5jb20vZGVtby9zbGlkZS1mbG9hdC5odG1s
未還原圖像:

還原后的圖:

從服務(wù)端請(qǐng)求來(lái)的圖片是打亂后的,給用戶看的時(shí)候是完整的,這個(gè)過(guò)程肯定是運(yùn)行了某段js代碼,將打亂的圖片進(jìn)行還原操作。所以我們需要找到這段js,然后還原它的代碼邏輯,實(shí)現(xiàn)圖片的還原操作,找到缺口距離,實(shí)現(xiàn)滑動(dòng)操作。
如果你仔細(xì)觀察的話,你會(huì)發(fā)現(xiàn)還原后的圖它是canvas生成出來(lái)的

那你應(yīng)該會(huì)想到,那段js中會(huì)生成canvas,然后使用它下面的一些方法,實(shí)現(xiàn)圖片的還原操作,所以我們需要知道他啥時(shí)候生成canvas,找到位置,然后慢慢往下調(diào)試,找到還原代碼。
這時(shí)我們就需要使用油猴插件,進(jìn)行hook了。如果對(duì)油猴不了解的同學(xué),可以谷歌百度下,學(xué)習(xí)下,這是非常有用的,代碼如下:
// ==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);
}
})();
我們現(xiàn)在來(lái)看看效果,刷新頁(yè)面:

那我們就可以能快速定位到創(chuàng)建canvas的位置了,

下面就是慢慢分析代碼了,具體就不多說(shuō)了



這個(gè)例子主要就是對(duì)油猴插件(hook)的使用吧。
二、某象:aHR0cDovL2Nkbi5kaW5neGlhbmctaW5jLmNvbS9jdHUtZ3JvdXAvY2FwdGNoYS11aS9kZW1vLw==
同樣的驗(yàn)證碼圖片還原也是使用canvas生成的,如果使用上面的方式的話,沒(méi)啥效果的

但是通過(guò)search關(guān)鍵字canvas還是能過(guò)發(fā)現(xiàn)一些貓膩的。




好了,兩個(gè)例子就是這樣了,具體還原代碼,有興趣自己去實(shí)現(xiàn)吧。
到此這篇關(guān)于Js逆向?qū)崿F(xiàn)滑動(dòng)驗(yàn)證碼圖片還原的示例代碼的文章就介紹到這了,更多相關(guān)Js逆向滑動(dòng)驗(yàn)證碼內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
JS實(shí)現(xiàn)自動(dòng)閱讀單詞(有道單詞本添加功能)
有道單詞客戶Duan沒(méi)有自動(dòng)閱讀的功能, 本文用強(qiáng)大的js實(shí)現(xiàn)了簡(jiǎn)單的自動(dòng)下一個(gè)單詞的功能,需要的朋友可以參考下2016-11-11
JavaScript探測(cè)CSS動(dòng)畫(huà)是否已經(jīng)完成的方法
這篇文章主要為大家詳細(xì)介紹了JavaScript探測(cè)CSS動(dòng)畫(huà)是否已經(jīng)完成的方法,感興趣的小伙伴們可以參考一下2016-08-08
微信小程序?qū)崿F(xiàn)2048小游戲的詳細(xì)過(guò)程
這篇文章主要給大家介紹了關(guān)于微信小程序?qū)崿F(xiàn)2048小游戲的相關(guān)資料,文中將實(shí)現(xiàn)的代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用微信小程序具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2021-09-09
JS+canvas動(dòng)態(tài)繪制餅圖的方法示例
這篇文章主要介紹了JS+canvas動(dòng)態(tài)繪制餅圖的方法,結(jié)合具體實(shí)例形式分析了js+canvas實(shí)現(xiàn)餅狀圖形繪制的相關(guān)操作技巧,需要的朋友可以參考下2017-09-09
javascript for-in有序遍歷json數(shù)據(jù)并探討各個(gè)瀏覽器差異
這篇文章主要介紹了javascript for-in有序遍歷json數(shù)據(jù)并探討各個(gè)瀏覽器差異的相關(guān)資料,需要的朋友可以參考下2015-11-11
如何使用工具規(guī)范前端項(xiàng)目的commits與changelog技巧
這篇文章主要為大家介紹了如何使用工具規(guī)范前端項(xiàng)目的commits與changelog技巧詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02
javascript eval()應(yīng)用實(shí)例 select
javascript eval應(yīng)用小例子。實(shí)例代碼就是控制checkbox的選擇與取消的函數(shù),非常不錯(cuò)。2009-07-07
TypeScript創(chuàng)建一個(gè)簡(jiǎn)單Web應(yīng)用
這篇文章主要為大家介紹了TypeScript創(chuàng)建一個(gè)簡(jiǎn)單Web應(yīng)用,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05

