吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 8022|回复: 35
上一主题 下一主题
收起左侧

[Python 转载] 有道云笔记会员突破

  [复制链接]
跳转到指定楼层
楼主
wshuo 发表于 2021-9-15 20:34 回帖奖励
本帖最后由 wshuo 于 2022-1-10 16:50 编辑

侵权删除
另外希望有道云笔记改改bug(关机报错的)
我还是希望文章不要被删除,破解和反破解技术是相互发展的。
本文提供分析思路,突破的技术手段,不提供软件成品,提供源码,如果有道云看到,我希望修补这个漏洞,另外修复一下bug。

前言

之前有人向我要一篇我写的文章,我很多文章都是留在有道云笔记上的,我导出pdf, 发现需要会员,我冲了会员,然后导出了pdf。后来我想分析一下有道云笔记是如何控制是否允许 markdown 导出pdf,所以有了这篇文章。

分析

我想 pdf 来自两个地方:

  1. 网络请求返回,这种请求的时候肯定是进行了身份认证,判断用户是否已经冲了会员(cookie),才会从服务器返回pdf的数据。
  2. 本地 markdown转换,这种就只能是有道云程序里面有一个开关(是否是会员),是否允许进行转换,而这个开关的是否闭合肯定是源于一个请求的响应。  

经过charles 抓包,发现当我点击导出pdf 时候,并不会请求到一个pdf数据,所以判断是第二种情况,那么关键在于我找这个关键请求,我猜测响应中具有一个关键字就是vip, 我开始在很多请求中寻找返回中具有关键字vip的关键请求,然后在其下断点。

因为我冲了会员,所以我是具有会员状态的。
但是我下完断点后发现还是具有保持vip状态,明明请求结果还没有返回,但是还是保持了我充完会员的状态,那么肯定有一个本地数据库保存了我是否是会员的状态,于是我寻找到了对应的数据库,C:\Users\wshuo\AppData\Local\YNote\Data在这个目录下:
在这里插入图片描述
将其全部删除,就会重新请求是否是会员的状态,(后来我发现点击同步就会刷新状态)。
终于我下断点的请求断下了,那么这时我再导出pdf, 发现不能导出,然后我一个一个放行请求,直到有一个请求放行后发现可以导出了,说明这个请求就是关键请求。  

我重新注册一个无会员的有道云用户,然后手动修改charles返回请求结果,发现还是不能将其变为有会员状态,这可能我手动改的速度太慢,超时了,没办法,只能用fiddler的autoResponder来消除这种影响。果然成功了,并且我发现每次点击同步按钮的时候都会进行这个请求,这种是我想看到的,因为不能每次都要删除本地数据库,那就没有意义了。  

会员功能测试

当然这里测试我都是使用无会员账号测试的。

导出pdf:
在这里插入图片描述

会员纸张:
请添加图片描述
会员标识:
在这里插入图片描述

还有一些功能没有测试,由此可以判断,普通用户和充完会员的用户唯一区别只有空间了,其它功能都具有了。  

软件编写

我不能每次启动有道云都开启fiddler, 后来我想起python mitmdump可以实现修改请求返回结果,简单的脚本:  

# mitmdump -s proxServer.py -p 8888 -k -q

import json
import time

tss1 = '3000-01-01'
timeArray = time.strptime(tss1, "%Y-%m-%d")
timeStamp = int(time.mktime(timeArray))*1000

def response(flow):
    if "/pushserver3/client" in flow.request.url:
        pass
    elif "/ydrive/rpc/u" in flow.request.url:
        data = flow.response.content
        flow.response.set_content(data.decode().replace('"is_vip":false','"is_vip":true').encode())
    elif "/yws/mapi/payment?method=status" in flow.request.url:
        data = json.loads(flow.response.content) 
        data["pt"] = ["pres", "wx_auto"]
        data["end"] = timeStamp
        flow.response.set_content(json.dumps(data).encode())

print("已启动会员")

在windows上设置好代{过}{滤}理127.0.0.1 8888端口就可以了,启动命令为脚本的第一行。  

后续我写了python自动设置代{过}{滤}理,每次当有道云笔记启动的时候前自动设置代{过}{滤}理,当软件退出的时候再自动关闭了代{过}{滤}理和 mitmdump 服务,这里我就不放出了。

会员没有生效点击同步的时候就会生效。

免费评分

参与人数 14吾爱币 +16 热心值 +13 收起 理由
萌新与小白 + 1 + 1 热心回复!
mdeche101644 + 1 + 1 6的飞起的大佬
chaifengbox + 1 + 1 谢谢@Thanks!
空白的记忆 + 1 + 1 用心讨论,共获提升!
appstore + 1 + 1 谢谢@Thanks!
Ocean_ + 1 + 1 谢谢@Thanks!
mantuner + 1 + 1 热心回复!
yjn866y + 1 + 1 我很赞同!
三滑稽甲苯 + 2 + 1 用心讨论,共获提升!
feelings + 1 + 1 热心回复!
wuai1023a + 1 热心回复!
qzhing + 2 + 1 用心讨论,共获提升!
helian147 + 1 + 1 用心讨论,共获提升!
1287417511 + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!

查看全部评分

本帖被以下淘专辑推荐:

  • · Aarow|主题: 991, 订阅: 304

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

推荐
lszchh 发表于 2021-9-15 21:12
最喜欢这种版本了
推荐
爱的天使 发表于 2021-9-16 06:15
推荐
1287417511 发表于 2021-9-15 21:06
5#
我是一只小小 发表于 2021-9-15 21:23
这个很厉害哦,真的是,哈哈哈
6#
我是一只小小 发表于 2021-9-15 21:48
所以是不是可以据此做一个离线VIP版
7#
伊父之文 发表于 2021-9-15 23:35
感谢分享
8#
liwangC 发表于 2021-9-15 23:37
感谢分享,学习
9#
viersnv 发表于 2021-9-16 00:18
感谢分享 ,喜欢这种版本了
10#
hbj.xyz 发表于 2021-9-16 01:26
我是一只小小 发表于 2021-9-15 21:48
所以是不是可以据此做一个离线VIP版

对我个人而言,离线就没任何作用了,我主要是用来同步,多端可以看,有道云笔记的markdown在手机看很鸡肋
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-4-19 06:08

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表