python破解[5分钟解决拼多多商家后台字体加密]

news2024/9/21 14:26:13

可+【QQ群】拿源码

进入经营总览想把数据存下来发现返回的json数据部分空白如下

这可怎么办

稳住应该是字体的问题,可能是多多自己实现了某种字体,我们去找他的js

发现如我们所想,进行跟踪,发现的确是在css端进行了字体替换,

直接找字体,找到了,根据请求去找,那里请求的

来源在这个请求里

https://api.yangkeduo.com/api/phantom/web/en/ft

看看返回,跑不掉了,接下来就是下载下来进行查看,字体如何修改的,

我们可以进这个网站 FontDrop!

看到 8的映射 是 unicode
这就是为什么在 json里显示是空白占行的,因为这种unicode是不被显示的

我们只需要做好映射关系 比如 字体8映射 EFC5  就行了,那如何知道 字体8是现实正常字体8。

我们可以通过图像识别,比如ocr识别,如果字体映射关系不变的话这种也还行,但是效率可能比较慢。如果改变的或效率就会更慢。看下图,我们又拉了一次字体,发现字体是改变的,位置,映射都在变,说明,通过 ocr文字识别虽然可行,但是效率上太慢

不得不找到新的方式,经过思索,和找规律,发现可以这么查看,灵机一动,比对多个8,轨迹是不是都是一样的,不下了10几次字体确定是的,我们只需要拿到字体的轨迹就行了,轨迹对应标准数字,我们通过。python开源库,加载字体,获取每个字体的轨迹存下来,平铺成字符串,

就实现了 自动转换,然后在和json中的unicode做映射就完美了,同时写个自动替换脚本自动转json,看成品


防止多多老六找我,只放上部分源码

#字体转义代码
def getUnames(unames):
    ss = ''
    for x in unames.split('\\u'):
        if x:
            ucode = x.upper()
            if '.' in ucode:
                ucode=ucode.replace('.','')
                ss += ttFont(ucode, ttf_file_path)
                ss += "."
            elif ',' in ucode:
                ucode=ucode.replace(',','')
                ss += ttFont(ucode, ttf_file_path)
                ss += ","
            elif '%' in ucode:
                ucode=ucode.replace('%','')
                ss += ttFont(ucode, ttf_file_path)
                ss += "%"
            else:
                # print(ucode)
                ss += ttFont(ucode, ttf_file_path)
    return ss

可+【QQ群】拿源码

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2095323.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

报警规范管理

报警规则管理 想要获取报警数据,我们首先必须先制定报警规则,会根据不同的设备,不同的物模型来定义报警规则 需求分析 我们先来分析需求,打开原型图 数据来源: 逻辑规则: 1)若多条报警规则是…

CSS-层叠上下文【看这一篇就够了!!!】

目录 前序 z-index设置定位元素层叠顺序 z-index值相同时,写在后面的覆盖写在前面的 z-index值越大,越在上面显示 z-index值为负数 CSS中的层叠上下文 什么是“层叠上下文” 层叠上下文的创建 根层叠上下文 定位元素的传统层叠上下文 层叠顺序…

15:发光二极管布局要求

1.指示灯一般放正面, 靠板边

【Android】Material Design编写更好的UI

Toolbar 对于控件ActionBar我们非常熟悉,就是我们常见的标题栏,但ActionBar只能位于活动的顶部,因此我们更建议使用Toolbar。在新建一个项目的时候都是默认显示ActionBar,我们要使用Toolbar就需要先将标题栏改为不显示 先来看看…

在Ubuntu上使用apt工具安装RabbitMQ

创建安装脚本 cd home/ madir scripts cd scripts 创建脚本前,需要确认Linux版本。不同的版本对应着不同的运行脚本。 lsb_release -a 查看Linux版本 可以看到,我的Ubuntu版本是22.04。 在这里找到对应的脚本复制。 创建脚本文件: ca…

详解树状数组(C/C++)

树状数组(Binary Indexed Tree,简称BIT或Fenwick Tree)是一种用于高效处理数据序列的算法数据结构。它能够支持两个主要操作:单点更新和区间求和,这两个操作的时间复杂度都能达到O(log n),其中 n 是数据序列…

STM32基础篇:SPI片上外设

SPI外设简介 STM32芯片内部集成了SPI片上外设,可由硬件自动执行时钟生成、数据收发等功能,减轻CPU负担。对于STM32F103C8T6,其SPI资源有SPI1、SPI2。 一些参数配置: 8位/16位数据帧高位先行/低位先行时钟频率:PCLK/…

vue3本地运行错误集

1、解决报错ValidationError: Progress Plugin Invalid Options问题 ValidationError: Progress Plugin Invalid Optionsoptions should NOT have additional propertiesoptions should NOT have additional propertiesoptions should NOT have additional propertiesoptions …

SMART PLC 脉冲输出指令PLS应用

200SMART PLC如何实现可调频率可调占空比PWM输出 200smart_PLC如何实现可调频率可调占空比PWM输出_200smart pwm-CSDN博客文章浏览阅读6.4k次,点赞2次,收藏7次。本文介绍了如何在SMART PLC中通过修改原向导接口,实现可调频率和占空比的PWM输出。详细阐述了脉冲周期、占空比…

DMA简述与使用实例

之后要学:SPI / IICDMA 学习的这位up主的视频:全网最清楚的DMA讲解,三种搬运模式三个例子讲清楚(STM32教程基于HAL库和CUBEIDE)_哔哩哔哩_bilibili 目录 01-基本信息 1-概述 2-方向 3-模式 正常模式 轮询模式 …

学习日志8.30--防火墙NAT

目录 一、实验环境配置 二、配置防火墙静态NAT一对一 三、配置防火墙静态NAT多对多 四、配置防火墙NAT端口转换NAPT 五、防火墙smart-nat、easyip 六、防火墙三元组NAT 在学习过基于路由器的NAT网络地址转换,现在学习基于防火墙NAT的网络地址转换,…

python-读写Excel:xlwings库操作

几种操作Excel的python库对比 安装:pip install xlwings 目录 APP实例化对象 工作薄对象 创建工作薄 打开工作薄 工作薄属性 工作表对象 新增工作表 复制表 获取工作表对象 工作表属性 删除和清除表数据及表格式 工作表行高列宽(自动调整) 单元格对象 获取单元…

【hot100篇-python刷题记录】【旋转图像】

R7-矩阵篇 印象题: 思路: 先转置,转置完我们按照列的中间进行对称交换就可以了。 class Solution:def rotate(self, matrix: List[List[int]]) -> None:"""Do not return anything, modify matrix in-place instead.&qu…

【微机原理】指令JZ和JNZ的区别

🌟 嗨,我是命运之光! 🌍 2024,每日百字,记录时光,感谢有你一路同行。 🚀 携手启航,探索未知,激发潜能,每一步都意义非凡。 JZ(Jump …

祝贺严建兵教授任华中农业大学校长

公众号:生信漫谈,获取最新科研信息! 祝贺严建兵教授任华中农业大学校长https://mp.weixin.qq.com/s?__bizMzkwNjQyNTUwMw&mid2247487040&idx1&sn6800055c9944754be11dc77a30ee1906&chksmc0e9ebb0f79e62a64634d5cd057578ca5…

Java 入门指南:Java 并发编程 —— AQS、AQLS、AOS 锁与同步器的框架

AQS AQS 是 AbstractQueuedSynchronizer 的缩写,即 抽象队列同步器,是 Java.util.concurrent 中的一个基础工具类,用于实现同步器(Synchronizer)的开发。 AQS 提供了一种实现锁和同步器的框架,使用 AQS 能…

Mysql高级篇(上)

Mysql高级篇(上) Mysql架构介绍(一)1、Linux环境下的MySQL的安装与使用2、MySQL请求到响应字符集变化(了解)3、MySQL8 的主要目录结构4、数据库和文件系统关系(1)默认数据库(2)数据库…

C语言程序设计之基础易错题锦集6

C语言程序设计之基础易错题锦集6 问题 6_0解析 6_0 问题 6_0 将形参 s 所指字符串中字母字符顺序前移,其他字符顺序后移,处理后将新字符串的首地址作为函数值返回。 例如:输入 :“asd123fgh456df”, 输出:“a…

React基础面试题

React 面试题 以下是面试官最有可能问到的 50 个 React 面试题和答案。为方便你学习,我对它们进行了分类: 基本知识React 组件React ReduxReact 路由 基本知识 1. 区分Real DOM和Virtual DOM Real DOMVirtual DOM1. 更新缓慢。1. 更新更快。2. 可以…

简化理解:Tomcat 和 Servlet 规范

有时候,我们会把复杂的技术概念弄得很复杂,其实这些东西可以用更简单的语言来理解。我们来看看 Tomcat 和 Servlet 规范到底是怎么回事。 1. 什么是 Servlet 规范? 简单来说,Sun 公司(现在是 Oracle)定了…