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获取url参数值的两种方式
Sep 10 Javascript
js获得当前时区夏令时发生和终止的时间代码
Feb 23 Javascript
Jquery插件分享之气泡形提示控件grumble.js
May 20 Javascript
关闭页面window.location事件未执行的原因及解决方法
Sep 01 Javascript
JS实现的自定义右键菜单实例二则
Sep 01 Javascript
基于jQuery实现放大镜特效
Oct 19 Javascript
JQuery实现网页右侧随动广告特效
Jan 17 Javascript
vue2.0结合Element实现select动态控制input禁用实例
May 12 Javascript
使用express搭建一个简单的查询服务器的方法
Feb 09 Javascript
Vue.js实现备忘录功能
Jun 26 Javascript
使用Easyui实现查询条件的后端传递并自动刷新表格的两种方法
Sep 09 Javascript
vue监听浏览器原生返回按钮,进行路由转跳操作
Sep 09 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
main.php
2006/12/09 PHP
php设计模式 Bridge (桥接模式)
2011/06/26 PHP
php的$_FILES的临时储存文件与回收机制实测过程
2013/07/12 PHP
php实现的农历算法实例
2015/08/11 PHP
阿里对象存储OSS在laravel框架中的使用方法
2019/10/13 PHP
web基于浏览器的本地存储方法应用
2012/11/27 Javascript
jQuery.buildFragment使用方法及思路分析
2013/01/07 Javascript
JavaScript的代码编写格式规范指南
2015/12/07 Javascript
又一款js时钟!transform实现时钟效果
2016/08/15 Javascript
JavaScript 轮播图和自定义滚动条配合鼠标滚轮分享代码贴
2016/10/28 Javascript
详解jQuery的Cookie插件
2016/11/23 Javascript
js仿搜狐视频记录片列表展示效果
2020/05/30 Javascript
利用Vue v-model实现一个自定义的表单组件
2017/04/27 Javascript
详解通过JSON数据使用VUE.JS
2017/05/26 Javascript
JS鼠标3次点击事件实现代码及扩展思路
2017/09/12 Javascript
JQuery 选择器、DOM节点操作练习实例
2017/09/28 jQuery
webpack vue项目开发环境局域网访问方法
2018/03/20 Javascript
JS实现的图片选择顺序切换和循环切换功能示例【测试可用】
2018/12/28 Javascript
[53:49]LGD vs Fnatic 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
Python3实现从指定路径查找文件的方法
2015/05/22 Python
Python多进程分块读取超大文件的方法
2016/04/13 Python
浅谈pytorch 模型 .pt, .pth, .pkl的区别及模型保存方式
2020/05/25 Python
pymysql模块使用简介与示例
2020/11/17 Python
Python函数调用追踪实现代码
2020/11/27 Python
canvas之自定义头像功能实现代码示例
2017/09/29 HTML / CSS
Bergfreunde丹麦:登山装备网上零售商
2017/02/26 全球购物
澳大利亚购买健身器材网站:Gym Direct
2019/12/19 全球购物
致100米运动员广播稿
2014/02/14 职场文书
春节联欢会主持词
2014/03/24 职场文书
林肯就职演讲稿
2014/05/19 职场文书
2014党员整改措施思想汇报
2014/10/07 职场文书
倡议书作文
2015/01/19 职场文书
整改通知书格式
2015/04/22 职场文书
2015年营业员工作总结
2015/04/23 职场文书
2015年艾滋病防治工作总结
2015/05/22 职场文书
导游词之澳门玫瑰圣母堂
2019/12/03 职场文书