猿人学爬虫比赛第七题:《动态字体,随风漂移》

地址: http://match.yuanrenxue.com/match/7


召唤师名字是在html 的 script 标签中,字体是从接口中返回。

先请求match/7,然后请求 api/match/7

api/match/7返回的json数据,里面data数组有10个字体(胜点) 和 woff文件的地址。

这种动态字体现在已经有固定的处理方式了,用 python处理字体的库 fontTools。

先保存一份woff字体,查看一下内容。

# -*- coding: utf-8 -*-
# @Author  : lximport base64
import requests
headers = {'User-Agent': 'yuanrenxue.project',
}data =requests.get(f'http://match.yuanrenxue.com/api/match/7',headers=headers).json()woff = data['woff']
with open('7.woff','wb') as f:f.write(base64.b64decode(woff))

转成xml查看

from fontTools.ttLib import TTFont
font = TTFont('7.woff')
font.saveXML('7x.xml')

xml文件中 有对应关系, extraNames是按照0-9的顺序排序的。

接下来,把xml中的name提取出来构建一个map,
{
‘unif689’: 0,
‘unia924’: 1,
‘unif637’: 2,
‘unib526’: 3,
‘unic831’: 4,
‘unib348’: 5,
‘unie283’: 6,
‘unib827’: 7,
‘unif145’: 8,
‘unib793’: 9
}

和 json中的进行替换就能获取到需要的数据了。


猿人学爬虫比赛第八题:《图文点选》

地址: http://match.yuanrenxue.com/match/8


这种题和js没什么关系,不过多描述了。

处理点选验证码的逻辑:
1、获取资源文件(需要识别的字、验证码图片)
2、图片处理(二值、去边去线、降噪等)
3、自己训练识别模型或者使用第三方OCR
4、向api发送点击后的请求(一般获取点击位置即可)


抓包可以发现,资源文件都在api中:http://match.yuanrenxue.com/api/match/8_verify

下面查看验证码图片区域:

我按照可点击的像素格进行点击,查看返回结果。

可以看到,提交的 answer就是点击的位置,并且小方格下标为点击的位置。

那么可以自定义一个位置字典,{“字1”:“155”,“字2”:“166”,“字3”:“175”,…}

然后把验证码识别之后的结果和需要点击的字对比,确定好位置,发送验证请求即可。

js逆向-猿人学(7-8)动态字体-图文点选相关推荐

  1. JS逆向:猿人学爬虫比赛第九题详细题解

    实战地址 http://match.yuanrenxue.com/match/9 抓包分析 地址栏输入 地址,按下F12并回车,浏览器停在这里: 不用理会它,点击下图所示的按钮: 按下F8,让浏览器继 ...

  2. Js逆向 | 猿人学爬虫攻防大赛 | 第一题: js 混淆 - 源码乱码(多图预警!!手把手教学!!)

    地址: 第一题地址 题目: 抓取所有(5页)机票的价格,并计算所有机票价格的平均值,填入答案. 初探: 进入网站,惯例先开F12康康 这里被 debugger 卡住了: 你可以 选中行号点右键点 Ed ...

  3. 《封号码罗》关于js逆向猿人学第一题m值的获取[纯补环境](二十四)

    网上有很多资料,包括视频都讲解了m值的生成方式,但是我自己总是看过之后,有很多疑惑,所以我自己再总结一遍. 抓包看看请求 m值得生成位置 用AST简单解混淆一下,源码就是整个混淆的js复制到本地文件 ...

  4. JS逆向:猿人学爬虫比赛第五题详细题解(下)

    上篇文章,我们已经找到了加密的地方,关键代码是这样的: _$Ww = _$Tk["enc"]["Utf8"]["parse"](window ...

  5. Heatmap.js 一个强大简易的web动态热图

    Heatmap.js 一个强大简易的web动态热图 最近在做热力图效果,背景图上绘制热力图,最开始使用的事Echarts,但是Echarts绘制是基于map,还其他一些第三方的库也很多基于map,还要 ...

  6. php-5.3.3.tat.gz,[JS逆向 JS混淆] 猿人学 爬虫攻防赛 第五题

    [JavaScript] 纯文本查看 复制代码var _$8K = {}; var _$ev = [], _$Uy = String.fromCharCode; function _$HY(_$5X) ...

  7. JS逆向之去哪儿旅行 - - - 动态混淆

    声明:本文仅限交流学习使用,请勿使用在任何非法商业活动,禁止用于非法用途.否则后果自负.如有侵权,请告知删除,谢谢! 我们来玩个游戏吧, 看谁先接口加密参数, 游戏开始咯! 简介:         一 ...

  8. js逆向第5例:猿人学第8题-验证码图文点选

    文章目录 一.解决点选坐标问题 二.图像去噪点处理 选出rgp颜色最多2个,进行降噪处理 移除干扰线条 灰度转换 增强字体显示效果 图片切割成单个字体便于识别 三.图像识别/机器学习 四.header ...

  9. js逆向案例-猿人学比赛题(中等及以下难度的)

    目录 1.注意 1.js混淆-源码乱码尝试hook window属性 2.js混淆-动态cookie 3.请求头顺序与请求规律检测 4.css样式style偏移干扰 5.js混淆-用hook定位与埋坑 ...

最新文章

  1. SqlHelper中IN集合场景下的参数处理
  2. 思考:通过MMU/TLB/Cache对安全内存攻击的可能性
  3. 危害网络安全或入信用“黑名单”
  4. 察看ABAP程序各项参数限制的情况
  5. java jxl创建多个sheet,使用jxl导出excel时怎么创建多个sheet | 学步园
  6. 超强在线小游戏网源码 内置80个小游戏 上传空间直接用
  7. pythonxml读写_python xml读取和写入
  8. opengl渲染4k数据提高效率
  9. Linux 设置系统时间和时区2.Ubuntu
  10. 用Visual C#调用Windows API函数
  11. GoogleCpp风格指南 8)格式 _part1
  12. Intellij IDEA免费版方法(1)
  13. 金蝶K3修改核算项目锁定字段的默认长度(以物料主数据的助记码为例)
  14. Windows下运行Makefile
  15. 宝石熔炼设备可以融化黄金吗?
  16. 怎样轻松旋转PDF文件
  17. No387FirstUniqueCharacterInAString
  18. maven的下载和安装教程
  19. 无论是开放外链,或是回归实体,不同的互联网平台之间的高墙正在被推倒
  20. python并行运算 Parallel

热门文章

  1. access2013数据库实验笔记_二级Access数据库备考笔记之使用查询向导
  2. ubuntu 安装启动 openssh-server
  3. element-plus el-table 显示不全或者不显示
  4. Spark分区 partition 详解
  5. [冠军杯]巴塞罗那 2:1 AC米兰
  6. 僧多粥少的P2P,恒信易贷该如何破解生存之道?
  7. title和h1的区别 +b和strong的区别+i和em的区别
  8. SSM毕设项目大学校园宿舍零食便利店8o8u4(java+VUE+Mybatis+Maven+Mysql)
  9. STM32常用位操作
  10. 互金信用评分建模四步骤