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 相关文章推荐
JS获取地址栏参数的小例子
Aug 23 Javascript
JQuery中extend使用介绍
Mar 13 Javascript
jquery表单对象属性过滤选择器实例分析
May 18 Javascript
JavaScript匿名函数之模仿块级作用域
Dec 12 Javascript
学习Javascript面向对象编程之封装
Feb 23 Javascript
vue.js指令和组件详细介绍及实例
Apr 06 Javascript
JavaScript屏蔽Backspace键的实现代码
Nov 02 Javascript
vue2.0与bootstrap3实现列表分页效果
Nov 28 Javascript
一次记住JavaScript的6个正则表达式方法
Feb 22 Javascript
jquery简单实现纵向的无缝滚动代码实例
Apr 01 jQuery
Vue 引入AMap高德地图的实现代码
Apr 29 Javascript
微信小程序使用echarts获取数据并生成折线图
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
ThinkPHP缓存方法S()概述
2014/06/13 PHP
PHP屏蔽过滤指定关键字的方法
2014/11/03 PHP
PHP时间戳和日期相互转换操作实例小结
2018/12/18 PHP
JSON语法五大要素图文介绍
2012/12/04 Javascript
Underscore.js 的模板功能介绍与应用
2012/12/24 Javascript
document.documentElement的一些使用技巧
2013/04/18 Javascript
JS实现带关闭功能的阿里妈妈网站顶部滑出banner工具条代码
2015/09/17 Javascript
js检测离开或刷新页面时表单数据是否更改的方法
2016/08/02 Javascript
Angular.JS利用ng-disabled属性和ng-model实现禁用button效果
2017/04/05 Javascript
bootstrap精简教程_动力节点Java学院整理
2017/07/14 Javascript
微信小程序 获取javascript 里的数据
2017/08/17 Javascript
微信小程序wx.request实现后台数据交互功能分析
2017/11/25 Javascript
JS实现的文字间歇循环滚动效果完整示例
2018/02/13 Javascript
jQuery实现简单日历效果
2020/07/05 jQuery
[52:00]2018DOTA2亚洲邀请赛 4.1 小组赛 A组加赛 LGD vs Optic
2018/04/02 DOTA
python编写暴力破解FTP密码小工具
2014/11/19 Python
Python标准库之循环器(itertools)介绍
2014/11/25 Python
python实现多线程暴力破解登陆路由器功能代码分享
2015/01/04 Python
理解Python中的类与实例
2015/04/27 Python
Python运算符重载用法实例
2015/05/28 Python
解决python爬虫中有中文的url问题
2018/05/11 Python
python中dir()与__dict__属性的区别浅析
2018/12/10 Python
使用Python OpenCV为CNN增加图像样本的实现
2019/06/10 Python
python 进程的几种创建方式详解
2019/08/29 Python
Python生成六万个随机,唯一的8位数字和数字组成的随机字符串实例
2020/03/03 Python
python tkinter之 复选、文本、下拉的实现
2020/03/04 Python
Python3实现飞机大战游戏
2020/04/24 Python
纯CSS3实现漂亮的input输入框动画样式库(Text input love)
2018/12/29 HTML / CSS
法国时尚童装网站:Melijoe
2016/08/10 全球购物
办公室副主任岗位职责
2013/11/25 职场文书
电气工程及自动化专业自荐书范文
2013/12/18 职场文书
西游降魔篇观后感
2015/06/15 职场文书
简单实现一个手持弹幕功能+文字抖动特效
2021/03/31 HTML / CSS
python blinker 信号库
2022/05/04 Python
MySQL数据库简介与基本操作
2022/05/30 MySQL
Spring JPA 增加字段执行异常问题及解决
2022/06/10 Java/Android