【JS逆向】猿人学第七题-css加密

猿人学第七题-css加密

原地址:猿人学第七题

分析接口

接口很明显并无加密

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-w8OQVCYi-1619071860965)(/Users/zhouchenyang/Library/Application Support/typora-user-images/image-20210422135137148.png)]

分析数据

对比两张图,很明显data中就是胜点数据那么 woff字段就是这次要解决的字体文件

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4q5A698D-1619071814783)(/Users/zhouchenyang/Library/Application Support/typora-user-images/image-20210422135227816.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OaUJK0fa-1619071814784)(/Users/zhouchenyang/Library/Application Support/typora-user-images/image-20210422135254910.png)]

解析woff文件

先确定一下woff文件是否正确

将woff字段下载下来

放到 lconfont上验证一下

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AjkDqvK9-1619071814785)(/Users/zhouchenyang/Library/Application Support/typora-user-images/image-20210422135634806.png)]

这时其实如果字符串不变的话 就可以手动复制写一个字典将这题解决了

但是后面发现这个值是每页不断变化的

所以 我们就需要用程序自动地去解决

代码解析woff文件

解决思路:

一、:读取woff文件

二、:将字体写入图片中

三、:识别图片

四、:返回对应键值对

读取woff文件
font = TTFont(fontPath)  # 打开文件
codeList = font.getGlyphOrder()[1:]
创建图片
im = Image.new("RGB", (1800, 1000), (255, 255, 255))
dr = ImageDraw.Draw(im)
font = ImageFont.truetype(fontPath, 40)
将字体写入图片
count = 3
arrayList = numpy.array_split(codeList, count)   #将列表切分成15份,以便于在图片上分行显示
# print(arrayList)
for t in range(count):
    newList = [i.replace("uni", "\\u") for i in arrayList[t]]
    text = "".join(newList)
    text = text.encode('utf-8').decode('unicode_escape')
    dr.text((0, 50 * t), text, font=font, fill="#000000")
im.save("sss.jpg")
识别图片
result = pytesseract.image_to_string(im, lang="chi_sim")
result = result.replace(" ", "").replace("\n", "")
codeList = [i.replace("uni", "&#x") for i in codeList]
return dict(zip(codeList, list(result)))
结果

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YH7vdo57-1619071814786)(/Users/zhouchenyang/Library/Application Support/typora-user-images/image-20210422140709103.png)]

全部代码-字体识别
def fontConvert(fontPath):     #将web下载的字体文件解析,返回其编码和汉字的对应关系
    font = TTFont(fontPath)  # 打开文件
    codeList = font.getGlyphOrder()[1:]
    # print(codeList)
    im = Image.new("RGB", (1800, 1000), (255, 255, 255))
    dr = ImageDraw.Draw(im)
    font = ImageFont.truetype(fontPath, 40)
    count = 3
    arrayList = numpy.array_split(codeList, count)   #将列表切分成15份,以便于在图片上分行显示
    # print(arrayList)
    for t in range(count):
        newList = [i.replace("uni", "\\u") for i in arrayList[t]]
        text = "".join(newList)
        text = text.encode('utf-8').decode('unicode_escape')
        dr.text((0, 50 * t), text, font=font, fill="#000000")
    im.save("sss.jpg")
    # im = Image.open("sss.jpg")      #可以将图片保存到本地,以便于手动打开图片查看
    result = pytesseract.image_to_string(im, lang="chi_sim")
    result = result.replace(" ", "").replace("\n", "")
    codeList = [i.replace("uni", "&#x") for i in codeList]
    return dict(zip(codeList, list(result)))
结尾

其实css加密这种解法大多一样 保存其woff文件 识别 得到键值对 替换

大众点评、猫眼电影 汽车之家都可用上方思路去解决

安装Docker安装插件,可以按照以下步骤进行操作: 1. 首先,安装Docker。可以按照官方文档提供的步骤进行安装,或者使用适合您操作系统的包管理器进行安装。 2. 安装Docker Compose插件。可以使用以下方法安装: 2.1 下载指定版本的docker-compose文件: curl -L https://github.com/docker/compose/releases/download/1.21.2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose 2.2 赋予docker-compose文件执行权限: chmod +x /usr/local/bin/docker-compose 2.3 验证安装是否成功: docker-compose --version 3. 在安装插件之前,可以测试端口是否已被占用,以避免编排过程中出错。可以使用以下命令安装netstat并查看端口号是否被占用: yum -y install net-tools netstat -npl | grep 3306 现在,您已经安装Docker安装Docker Compose插件,可以继续进行其他操作,例如上传docker-compose.yml文件到服务器,并在服务器上安装MySQL容器。可以参考Docker的官方文档或其他资源来了解如何使用DockerDocker Compose进行容器的安装和配置。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [Docker安装docker-compose插件](https://blog.youkuaiyun.com/qq_50661854/article/details/124453329)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [Docker安装MySQL docker安装mysql 完整详细教程](https://blog.youkuaiyun.com/qq_40739917/article/details/130891879)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值