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_) 在本地的目錄下創建目