侵權洗掉
另外希望有道云筆記改改bug(關機報錯的)
我還是希望文章不要被洗掉,破解和反破解技術是相互發展的,
本文提供分析思路,突破的技術手段,不提供軟體成品,提供原始碼,如果有道云看到,我希望修補這個漏洞,另外修復一下bug,
很多人學習python,不知道從何學起, 很多人學習python,掌握了基本語法過后,不知道在哪里尋找案例上手, 很多已經做案例的人,卻不知道如何去學習更加高深的知識, 那么針對這三類人,我給大家提供一個好的學習平臺,免費領取視頻教程,電子書籍,以及課程的源代碼! QQ群:701698587 歡迎加入,一起討論 一起學習!
前言
之前有人向我要一篇我寫的文章,我很多文章都是留在有道云筆記上的,我匯出pdf, 發現需要會員,我沖了會員,然后匯出了pdf,后來我想分析一下有道云筆記是如何控制是否允許 markdown 匯出pdf,所以有了這篇文章,
分析
我想 pdf 來自兩個地方:
- 網路請求回傳,這種請求的時候肯定是進行了身份認證,判斷用戶是否已經沖了會員(cookie),才會從服務器回傳pdf的資料,
- 本地 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):
# print(flow.request.url)
if "http://notify3.note.youdao.com/pushserver3/client" in flow.request.url:
pass
elif "https://rpc1.note.youdao.com/ydrive/rpc/u" in flow.request.url:
data = https://www.cnblogs.com/pythonQqun200160592/p/flow.response.content
flow.response.set_content(data.decode().replace('"is_vip":false','"is_vip":true').encode())
elif "https://note.youdao.com/yws/mapi/payment?method=status" in flow.request.url:
data = https://www.cnblogs.com/pythonQqun200160592/p/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 服務,這里我就不放出了,
會員沒有生效點擊同步的時候就會生效,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/300646.html
標籤:Python
