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 延迟加载 改变JS的位置加快网页加载速度
Dec 11 Javascript
JS数组去重与取重的示例代码
Jan 24 Javascript
js实现网页自动刷新可制作节日倒计时效果
May 27 Javascript
浅谈jQuery.easyui的datebox格式化时间
Jun 25 Javascript
Bootstrap每天必学之媒体对象
Nov 30 Javascript
JavaScript基础篇(6)之函数表达式闭包
Dec 11 Javascript
详解jQuery中的deferred对象的使用(一)
May 27 Javascript
layui前段框架日期控件使用方法详解
May 19 Javascript
jQuery 实现倒计时天,时,分,秒功能
Jul 31 jQuery
vue二级菜单导航点击选中事件的方法
Sep 12 Javascript
Node.js API详解之 util模块用法实例分析
May 09 Javascript
element-ui 弹窗组件封装的步骤
Jan 22 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
无法在发生错误时创建会话,请检查 PHP 或网站服务器日志,并正确配置 PHP 安装(win+linux)
2012/05/05 PHP
Windows下的PHP 5.3.x安装 Zend Guard Loader教程
2014/09/06 PHP
在WordPress中安装使用视频播放器插件Hana Flv Player
2016/01/04 PHP
WordPress开发中用于获取近期文章的PHP函数使用解析
2016/01/05 PHP
php实现批量删除挂马文件及批量替换页面内容完整实例
2016/07/08 PHP
PHP机器学习库php-ml的简单测试和使用方法
2017/07/14 PHP
使用YII2框架实现微信公众号中表单提交功能
2017/09/04 PHP
php微信公众号开发之音乐信息
2018/10/20 PHP
JS类中定义原型方法的两种实现的区别
2007/03/08 Javascript
js实现的GridView即表头固定表体有滚动条且可滚动
2014/02/19 Javascript
js的Boolean对象初始值示例
2014/03/04 Javascript
javascript轻量级模板引擎juicer使用指南
2014/06/22 Javascript
JS组件Form表单验证神器BootstrapValidator
2016/01/26 Javascript
AngularJS控制器详解及示例代码
2016/08/16 Javascript
jQuery检查元素存在性(推荐)
2016/09/17 Javascript
JavaScript使用原型和原型链实现对象继承的方法详解
2017/04/05 Javascript
JavaScript中使用webuploader实现上传视频功能(demo)
2017/04/10 Javascript
javascript for循环性能测试示例
2019/08/07 Javascript
Angular之jwt令牌身份验证的实现
2020/02/14 Javascript
使用Python的Twisted框架实现一个简单的服务器
2015/04/16 Python
简单介绍Python的Tornado框架中的协程异步实现原理
2015/04/23 Python
python+requests+unittest API接口测试实例(详解)
2017/06/10 Python
详解Python字符串切片
2019/05/20 Python
python利用多种方式来统计词频(单词个数)
2019/05/27 Python
Python flask框架post接口调用示例
2019/07/03 Python
Windows下实现将Pascal VOC转化为TFRecords
2020/02/17 Python
python爬虫实现获取下一页代码
2020/03/13 Python
Zipadee-Zip襁褓过渡毯:Sleeping Baby
2018/12/30 全球购物
以设计师精品品质提供快速时尚:Mostata
2019/05/10 全球购物
澳大利亚买卖正宗二手奢侈品交易平台:Luxe.It.Fwd
2019/10/16 全球购物
一道SQL存储过程面试题
2016/10/07 面试题
Why we need EJB
2016/10/20 面试题
教师自我鉴定范文
2013/11/10 职场文书
《蓝色的树叶》教学反思
2014/02/24 职场文书
学校团代会开幕词
2016/03/04 职场文书
企业管理不到位检讨书
2019/06/27 职场文书