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 getElementsByClassName函数
Apr 01 Javascript
关于jQuery中.attr()和.prop()的问题探讨
Sep 06 Javascript
jquery 新建的元素事件绑定问题解决方案
Jun 12 Javascript
JavaScript使用function定义对象并调用的方法
Mar 23 Javascript
小心!AngularJS结合RequireJS做文件合并压缩的那些坑
Jan 09 Javascript
js实现内容显示并使用json传输数据
Mar 16 Javascript
使用jQuery.form.js/springmvc框架实现文件上传功能
May 12 Javascript
jQuery得到多个值只能用取Class ,不能用取ID的方法
Dec 04 Javascript
vue实现ToDoList简单实例
Feb 07 Javascript
javascript作用域链与执行环境详解
Mar 25 Javascript
Node实战之不同环境下配置文件使用教程
Jan 02 Javascript
node.js通过url读取文件
Oct 16 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
终于听上了直流胆调频
2021/03/02 无线电
php中使用$_REQUEST需要注意的一个问题
2013/05/02 PHP
php防止sql注入代码实例
2013/12/18 PHP
自写的利用PDO对mysql数据库增删改查操作类
2018/02/19 PHP
jQuery 仿百度输入标签插件附效果图
2014/07/04 Javascript
由ReactJS的Hello world说开来
2015/07/02 Javascript
IE6兼容透明背景图片及解决方案
2015/08/19 Javascript
修复jQuery tablesorter无法正确排序的bug(加千分位数字后)
2016/03/30 Javascript
纯JS代码实现一键分享功能
2016/04/20 Javascript
jQuery如何防止Ajax重复提交
2016/10/14 Javascript
怎样判断jQuery当前元素是隐藏还是显示
2016/11/23 Javascript
jQuery实现ajax无刷新分页页码控件
2017/02/28 Javascript
微信小程序实现留言功能
2018/10/31 Javascript
Vue实现一个图片懒加载插件
2019/03/11 Javascript
Vue CLI3创建项目部署到Tomcat 使用ngrok映射到外网
2019/05/16 Javascript
nodejs对mongodb数据库的增加修删该查实例代码
2020/01/05 NodeJs
vue中keep-alive、activated的探讨和使用详解
2020/07/26 Javascript
解决vue 退出动画无效的问题
2020/08/09 Javascript
js实现3D旋转效果
2020/08/18 Javascript
跟老齐学Python之编写类之四再论继承
2014/10/11 Python
python计算两个地址之间的距离方法
2018/06/09 Python
python 求一个列表中所有元素的乘积实例
2019/06/11 Python
python Dijkstra算法实现最短路径问题的方法
2019/09/19 Python
Django Docker容器化部署之Django-Docker本地部署
2019/10/09 Python
Python 实现Numpy中找出array中最大值所对应的行和列
2019/11/26 Python
基于Html5 canvas实现裁剪图片和马赛克功能及又拍云上传图片 功能
2019/07/09 HTML / CSS
Corelle官方网站:购买康宁餐具
2016/11/02 全球购物
写出SQL四条最基本的数据操作语句(DML)
2012/12/12 面试题
初始化了一个没有run()方法的线程类,是否会出错?
2014/03/27 面试题
财务出纳员岗位职责
2013/11/26 职场文书
年终晚会主持词
2014/03/25 职场文书
《独坐敬亭山》教学反思
2014/04/08 职场文书
《神奇的克隆》教学反思
2014/04/10 职场文书
vue实现无缝轮播效果(跑马灯)
2021/05/14 Vue.js
Python还能这么玩之用Python做个小游戏的外挂
2021/06/04 Python
Python面向对象编程之类的概念
2021/11/01 Python