侵權刪除
另外希望有道雲筆記改改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 = 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 = 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 服務,這里我就不放出了。
會員沒有生效點擊同步的時候就會生效。
