Js逆向实现滑动验证码图片还原的示例代码


Posted in Javascript onMarch 10, 2020

本文列举两个例子:某象和某验的滑动验证

一、某验: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逆向滑动验证码内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
JavaScript 获取用户客户端操作系统版本
Aug 25 Javascript
jquery方法+js一般方法+js面向对象方法实现拖拽效果
Aug 30 Javascript
基于JavaScript 下namespace 功能的简单分析
Jul 05 Javascript
原生JavaScript生成GUID的实现示例
Sep 05 Javascript
jQuery实现提示密码强度的代码
Jul 15 Javascript
如何解决谷歌浏览器下jquery无法获取图片的尺寸
Sep 10 Javascript
JavaScript浏览器对象之一Window对象详解
Jun 03 Javascript
jQuery实现iframe父窗体和子窗体的相互调用
Jun 17 Javascript
微信小程序 解决请求服务器手机预览请求不到数据的方法
Jan 04 Javascript
简单实现JS上传图片预览功能
Apr 14 Javascript
react学习笔记之state以及setState的使用
Dec 07 Javascript
详解vue或uni-app的跨域问题解决方案
Feb 21 Javascript
微信小程序获取公众号文章列表及显示文章的示例代码
Mar 10 #Javascript
jquery实现烟花效果(面向对象)
Mar 10 #jQuery
非常漂亮的js烟花效果
Mar 10 #Javascript
微信小程序搜索框样式并实现跳转到搜索页面(小程序搜索功能)
Mar 10 #Javascript
微信小程序实现搜索功能
Mar 10 #Javascript
原生JS实现烟花效果
Mar 10 #Javascript
JS实现iframe中子父页面跨域通讯的方法分析
Mar 10 #Javascript
You might like
Zend Framework实现具有基本功能的留言本(附demo源码下载)
2016/03/22 PHP
根据分辩率调用不同的CSS.
2007/01/08 Javascript
js 禁止选择功能实现代码(兼容IE/Firefox)
2010/04/23 Javascript
jquery map方法使用示例
2014/04/23 Javascript
NodeJS制作爬虫全过程
2014/12/22 NodeJs
jquery实现带缩略图的可定制高度画廊效果(5种)
2015/08/28 Javascript
jQuery实现带分组数据的Table表头排序实例分析
2015/11/24 Javascript
jQuery实现的左右移动焦点图效果
2016/01/14 Javascript
ES6记录异步函数的执行时间详解
2016/08/31 Javascript
socket.io实现在线群聊功能
2017/04/07 Javascript
自定义类似于jQuery UI Selectable 的Vue指令v-selectable
2017/08/23 jQuery
基于Require.js使用方法(总结)
2017/10/26 Javascript
原生js实现简单的焦点图效果实例
2017/12/14 Javascript
详解封装基础的angular4的request请求方法
2018/06/05 Javascript
详解关于Vuex的action传入多个参数的问题
2019/02/22 Javascript
使用JS实现动态时钟
2020/03/12 Javascript
[01:46]新英雄登场
2019/09/10 DOTA
python冒泡排序算法的实现代码
2013/11/21 Python
python中正则表达式的使用详解
2014/10/17 Python
Python排序搜索基本算法之归并排序实例分析
2017/12/08 Python
Python中实现最小二乘法思路及实现代码
2018/01/04 Python
Python实现的将文件每一列写入列表功能示例【测试可用】
2018/03/19 Python
pandas DataFrame创建方法的方式
2019/08/02 Python
python 利用已有Ner模型进行数据清洗合并代码
2019/12/24 Python
keras之权重初始化方式
2020/05/21 Python
CSS3正方体旋转示例代码
2013/08/08 HTML / CSS
css3教程之倾斜页面
2014/01/27 HTML / CSS
HTML5标签嵌套规则详解【必看】
2016/04/26 HTML / CSS
加拿大著名时装品牌:SOIA & KYO
2016/08/23 全球购物
大学毕业感言一句话
2014/02/06 职场文书
2014年医院后勤工作总结
2014/12/06 职场文书
网络营销计划
2015/01/17 职场文书
三八妇女节新闻稿
2015/07/17 职场文书
工程主管竞聘书
2015/09/15 职场文书
Windows Server 2019 配置远程控制以及管理方法
2022/04/28 Servers
Redis sentinel哨兵集群的实现步骤
2022/07/15 Redis