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 相关文章推荐
延时重复执行函数 lLoopRun.js
May 08 Javascript
js绑定事件this指向发生改变的问题解决方法
Apr 23 Javascript
Javascript进制转换实例分析
May 14 Javascript
简介JavaScript中substring()方法的使用
Jun 06 Javascript
JS实现淘宝支付宝网站的控制台菜单效果
Sep 28 Javascript
jQuery 实现评论等级好评差评特效
May 06 Javascript
vue如何引用其他组件(css和js)
Apr 13 Javascript
jQueryMobile之窗体长内容的缺陷与解决方法实例分析
Sep 20 jQuery
浅谈vue中改elementUI默认样式引发的static与assets的区别
Feb 03 Javascript
详解angular分页插件tm.pagination二次触发问题解决方案
Jul 20 Javascript
JS数组splice操作实例分析
Oct 12 Javascript
Vuex的API文档说明详解
Feb 05 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
饭制《星际争霸》Mod:优化游戏机制 增加新单位
2017/07/02 星际争霸
两个开源的Php输出Excel文件类
2010/02/08 PHP
php定时计划任务与fsockopen持续进程实例
2014/05/23 PHP
ThinkPHP模板判断输出Empty标签用法详解
2014/06/30 PHP
php ci框架中加载css和js文件失败的原因及解决方法
2014/07/29 PHP
PHP使用内置函数file_put_contents写入文件及追加内容的方法
2015/12/07 PHP
WordPress中用于获取及自定义头像图片的PHP脚本详解
2015/12/17 PHP
PHP预定义变量9大超全局数组用法详解
2016/04/23 PHP
Laravel 实现密码重置功能
2018/02/23 PHP
PHP微商城开源代码实例
2019/03/27 PHP
js固定DIV高度,超出部分自动添加滚动条的简单方法
2013/07/10 Javascript
jquery选择器之基本过滤选择器详解
2014/01/27 Javascript
javascript实现获取cookie过期时间的变通方法
2014/08/14 Javascript
Underscore.js常用方法总结
2015/02/28 Javascript
JavaScript中的getTimezoneOffset()方法使用详解
2015/06/10 Javascript
Highcharts+NodeJS搭建数据可视化平台示例
2017/01/01 NodeJs
微信小程序中实现一对多发消息详解及实例代码
2017/02/14 Javascript
vue数据双向绑定的注意点
2017/06/23 Javascript
解读ES6中class关键字
2017/11/20 Javascript
解决vue初始化项目时,一直卡在Project description上的问题
2019/10/31 Javascript
Vue实现图片轮播组件思路及实例解析
2020/05/11 Javascript
[06:36]吞吞映像top1
2014/06/20 DOTA
PyTorch的Optimizer训练工具的实现
2019/08/18 Python
Pytorch如何切换 cpu和gpu的使用详解
2021/03/01 Python
CSS3 按钮边框动画的实现
2020/11/12 HTML / CSS
SQL数据库笔试题
2016/03/08 面试题
AJAX的全称是什么
2012/11/06 面试题
小学英语教学反思案例
2014/02/04 职场文书
专业技术职务聘任书
2014/03/29 职场文书
安康杯竞赛活动总结
2014/05/05 职场文书
《中国梦我的梦》大学生演讲稿
2014/08/20 职场文书
整改报告格式
2014/11/06 职场文书
赔偿协议书怎么写
2015/01/28 职场文书
试了下Golang实现try catch的方法
2021/07/01 Golang
USB TYPE-C 或将成为所有智能手机充电标准
2022/04/21 数码科技
阿里面试Nacos配置中心交互模型是push还是pull原理解析
2022/07/23 Java/Android