Posts

Showing posts from October, 2021

我不小心解開了 AdBlock 的會員

Image
我不小心解開了 AdBlock 的會員 更新日期:2021 年 10 月 18 日 先説明:禁止轉載!Write by Mane,個人觀點,僅供參考學習使用 另外 : 我不是計算機系的,寫的肯定是有錯的地方 ,歡迎留個言糾正下。 起源 我個人是習慣使用 AdBlock — best ad blocker 作爲阻擋廣告插件,原因是個人覺得 UI 做的比 uBlocker - Ad Block Tool for Chrome 好看,由於谷歌的政策,能發佈在谷歌市場上就意味著代碼不可以被混淆,所以,於是我就開始手癢了。(其實,這玩意一年要給 5 美元的智商稅我就很。。)。 所以,這篇文章也就記錄下我做了什麽,和具體的實現原理, 出事了我不負責 。 破解 分析 正如上面所説, 谷歌市場上的插件不可以被混淆 ,這也就意味著大家都可以去看這裏面裝著什麽,如果源碼被混淆了,可以通過底層更暴力的方法(比如:直接暴力調用 chromium 底層)來暴搞,不過谷歌不允許你混淆源碼,一方面谷歌很難審查這個插件幹了些什麽,第二方面怕有安全隱患(安全隱患是真的,寫過插件的人都知道這個權限有多高),所以廢話不多説直接開搞。 0x0 插件默認路徑 從 Chrome Web Store 下載完插件也就是 *.crx 文件時,會啓動新的綫程 void SandboxedUnpacker::Start () 來驗證包的簽名,準備插件路徑: //chrome\browser\extensions\sandboxed_unpacker.cc if (!CreateTempDirectory ()) return; // ReportFailure () already called. // Initialize the path that will eventually contain the unpacked extension. extension_root_ = temp_dir_.path ().AppendASCII ( extension_filenames::kTempExtensionName); 隨後執行 Unpacker::Run () 進行解包,調用 file_util::CreateDirectory (temp_install_dir_) 在本地的目錄下創建目...