日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長(zhǎng)提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

這其實(shí)是前幾天看到 B 站代碼被開源后的一個(gè)感想,為什么要冒這么大風(fēng)險(xiǎn)去做這事,活著不好嗎?到底是 996 讓你瘋狂?還是不給漲薪還克扣工資?或者黑了你的蔡徐坤?鬼知道為什么會(huì)有這想法。 然后腦子里就冒出了一個(gè)更奇怪的想法,如果我要在代碼里下毒,要怎么做?

如何在 Android 代碼中下毒

這其實(shí)是前幾天看到 B 站代碼被開源后的一個(gè)感想,為什么要冒這么大風(fēng)險(xiǎn)去做這事,活著不好嗎?到底是 996 讓你瘋狂?還是不給漲薪還克扣工資?或者黑了你的蔡徐坤?鬼知道為什么會(huì)有這想法。

然后腦子里就冒出了一個(gè)更奇怪的想法,如果我要在代碼里下毒,要怎么做?

友情提示:如果你是一個(gè)管理者,或者一個(gè)項(xiàng)目的負(fù)責(zé)人,讀完以后請(qǐng)盡快去檢查你公司的代碼,小心被人下毒了。

 

Android 工程的幾個(gè)風(fēng)險(xiǎn)

隨手寫一段奇葩代碼在項(xiàng)目中,這不算下毒,畢竟這種毒分分鐘就被查出來了,還有可能成為控訴你的證據(jù)。

要說下毒,首先要講的就是幾個(gè)容易下毒的點(diǎn)了。

  1. 現(xiàn)在的 Android 工程都是使用 Gradle 管理依賴庫(kù)了。但是 Gradle 有一個(gè)非常奇葩的特性,允許你依賴一個(gè) snapshot 包,而這個(gè)特性正常情況下甚至是無法被關(guān)閉的(特殊情況走自定義除外)。
  2. ContentProvider 居然是可以自動(dòng)執(zhí)行的,只要在 manifest 文件中聲明了你的 ContentProvider,并且保證這個(gè) ContentProvider的 authorities 不會(huì)與其他的沖突,它的onCreate()方法就可以在應(yīng)用啟動(dòng)的時(shí)候被自動(dòng)執(zhí)行。當(dāng)然,沖突了你也裝不上。
  3. Android 保留了遠(yuǎn)程代碼執(zhí)行能力,盡管現(xiàn)在的插件化手段越來越困難,但那些也都是限制在系統(tǒng)組件層面,如果只是想單純的在遠(yuǎn)程執(zhí)行一段 helloworld 程序,這實(shí)在太簡(jiǎn)單。
  4. Android 截至目前都沒有一個(gè)正常的,可以確保退出的方法(別告訴我System.exit()算你的正常退出)。而當(dāng)你調(diào)用System.exit()的時(shí)候,任何一個(gè)異常處理函數(shù)都不會(huì)有記錄,因?yàn)樗孛淳筒皇莻€(gè)異常。
  5. 原生函數(shù)居然可以讓 JAVAScript 直接調(diào)用,并且還沒任何權(quán)限問題,只要知道入口函數(shù),任何一個(gè)網(wǎng)頁(yè)的 js 都能調(diào)用。雖然 API17以后本地要加上 @JavaScriptInterface注解的,這已經(jīng)是進(jìn)步了。但是這貨他到現(xiàn)在居然都還是個(gè) runtime 注解,結(jié)合第三條,其實(shí)沒什么鳥用。
  6. 我不想寫了,寫再多可能要出事了。

配毒藥

上面這幾條,隨便兩三點(diǎn)混合起來,都是致命的。畢竟,無形裝逼,最為致命。

舉個(gè)栗子:

我在職的時(shí)候,隨便在代碼里面丟個(gè) jcenter 的 snapshot 包依賴,此刻這個(gè)包是沒有任何風(fēng)險(xiǎn)的。 離職了以后,通過遠(yuǎn)端,覆蓋掉這個(gè) snapshot 包,在關(guān)鍵代碼中下點(diǎn)毒,寫個(gè)異常或者上面說的 System.exit()。此刻,這個(gè)包就有風(fēng)險(xiǎn)了。

稍微聰明一點(diǎn),改進(jìn)一下,在依賴的時(shí)候依賴一個(gè)正式包。但是依賴的這個(gè)正式包,再去依賴一個(gè) snapshot 包,同樣可行。

上面的步驟有個(gè)問題,就是這個(gè)關(guān)鍵的代碼,他本身有可能不會(huì)被執(zhí)行到。在改進(jìn)一下,在 snapshot 這個(gè) aar 里用上第二條說的:用 ContentProvider 在應(yīng)用啟動(dòng)的時(shí)候,就開始下毒,隨便開個(gè)線程,延遲個(gè)隨機(jī)數(shù),再根據(jù)時(shí)間戳做個(gè)取模,隨機(jī)一批用戶,調(diào)用System.exit(),不反編譯代碼,神仙來了也不知道包為什么莫名其妙就閃退了。

前面一種例子適合 snapshot 包的場(chǎng)景,經(jīng)常會(huì)有公司的打包機(jī)器是不允許連接外網(wǎng)的,其實(shí)很大程度就避免了這種問題。

只要你愿意,隨便網(wǎng)上丟一個(gè)class,再下載下來,通過ClassLoader直接 run 起來,一樣達(dá)到目的。

甚至你還可以限制再死一點(diǎn),你公司在深圳,那就深圳的 IP 全部執(zhí)行默認(rèn)邏輯,外地 IP 才開始下毒。總之只有你想不到,沒有你辦不到。

最后

哦對(duì)了,git 的提交者信息也都是可以改的。

git config user.name(email)

放手干去吧,搞死那些 996 的公司,不會(huì)有證據(jù)的,別說是我教你的。

分享到:
標(biāo)簽:Android
用戶無頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫(kù),初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績(jī)?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績(jī)?cè)u(píng)定