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 应用类库代码
Jun 02 Javascript
jquery 必填项判断表单是否为空的方法
Sep 14 Javascript
jquery判断单个复选框是否被选中的代码
Sep 03 Javascript
判断输入是否为空,获得输入类型的JS代码
Oct 30 Javascript
js 设置缓存及获取设置的缓存
May 08 Javascript
javascript中数组array及string的方法总结
Nov 28 Javascript
jQuery原生的动画效果
Jul 10 Javascript
jQuery EasyUI tree 使用拖拽时遇到的错误小结
Oct 10 Javascript
详谈AngularJs 控制器、数据绑定、作用域
Jul 09 Javascript
vue的基本用法与常见指令
Aug 15 Javascript
Node.JS循环删除非空文件夹及子目录下的所有文件
Mar 12 Javascript
Vue自定义弹窗指令的实现代码
Aug 13 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访问查询mysql数据的三种方法
2006/10/09 PHP
PHP 中的面向对象编程:通向大型 PHP 工程的办法
2006/12/03 PHP
phpmyadmin里面导入sql语句格式的大量数据的方法
2010/06/05 PHP
php中mysql模块部分功能的简单封装
2011/09/30 PHP
PHP测试程序运行时间的类
2012/02/05 PHP
解决PHP4.0 和 PHP5.0类构造函数的兼容问题
2013/08/01 PHP
zend framework框架中url大小写问题解决方法
2014/08/19 PHP
PHP获取某个月最大天数(最后一天)的方法
2015/07/29 PHP
thinkphp多层MVC用法分析
2015/12/30 PHP
CI框架数据库查询缓存优化的方法
2016/11/21 PHP
PHP简单留言本功能实现代码
2017/06/09 PHP
laravel 根据不同组织加载不同视图的实现
2019/10/14 PHP
解析JavaScript中的标签语句
2013/06/19 Javascript
动态的绑定事件addEventListener方法的使用
2014/01/24 Javascript
jQuery获取checkbox选中的值
2016/01/28 Javascript
jQuery树形控件zTree使用小结
2016/08/02 Javascript
CSS3+JavaScript实现翻页幻灯片效果
2017/06/28 Javascript
用户管理的设计_jquery的ajax实现二级联动效果
2017/07/13 jQuery
JS中的防抖与节流及作用详解
2019/04/01 Javascript
不要用强制方法杀掉python线程
2017/02/26 Python
Python 多进程和数据传递的理解
2017/10/09 Python
解决win7操作系统Python3.7.1安装后启动提示缺少.dll文件问题
2019/07/15 Python
Python实现密码薄文件读写操作
2019/12/16 Python
python 实现人和电脑猜拳的示例代码
2020/03/02 Python
python GUI库图形界面开发之PyQt5信号与槽的高级使用技巧(自定义信号与槽)详解与实例
2020/03/06 Python
python如何绘制疫情图
2020/09/16 Python
python 5个实用的技巧
2020/09/27 Python
香港礼品网站:GiftU eshop
2017/09/01 全球购物
财务会计专业个人求职信范本
2014/01/08 职场文书
婚礼主持结束词
2014/03/13 职场文书
《记金华的双龙洞》教学反思
2014/04/19 职场文书
财务负责人任命书
2014/06/06 职场文书
绿色环保口号
2014/06/12 职场文书
公司活动总结怎么写
2014/06/25 职场文书
2014预防青少年违法犯罪工作总结
2014/12/10 职场文书
基于CSS3画一个iPhone
2021/04/21 HTML / CSS