導(dǎo)讀: 本文介紹殺毒軟件和病毒是如何獲取通知欄上的所有通知,并且利用其信息殺死應(yīng)用。
上一篇將過如何利用root權(quán)限來做一次靜默安裝,有的人會說,安裝apk就安裝唄,反正哥有金山手機衛(wèi)士,哥有360主動防御……他們都會彈出通知告訴我的! 安裝了新的應(yīng)用,手機會發(fā)送廣播,這些所謂的殺毒軟件監(jiān)聽這些廣播,然后彈出通知 好吧,我承認(rèn),他們在一定意義上還是有點用處的,我們先把這個問題放一放,先來說兩句題外話
360和和金山手機衛(wèi)士都有一個讓廣大android開發(fā)者比較蛋疼的一個功能:那就是檢查廣告通知! 當(dāng)有通知欄有廣告的時候,運行360執(zhí)行檢查,它會告訴你是哪個應(yīng)用程序的廣告(當(dāng)然,這里并不局限于廣告,他們是獲得所有通知,然后過濾),然后他會讓用戶選擇:不處理;關(guān)閉通知(實際上是把這個進(jìn)程kill掉,整個軟件停止運行);卸載此軟件。
雖然我沒有發(fā)布過android應(yīng)用,但是我知道,靠軟件賺錢的各位,本來收入已經(jīng)夠?qū)擂蔚牧耍偌由线@些操蛋的軟件提供這些操蛋的功能……哎 大家不喜歡收費軟件那咱們就免費,點點廣告支持一下總行吧,就是不點,你就放在那唄(當(dāng)然,有的軟件發(fā)起廣告來沒玩沒了也挺操蛋)
說了這么多廢話,我們就來看看那些所謂的殺毒軟件是如何對付大家的 到了關(guān)鍵的地方,實際也就那么一行代碼……又讓大家失望了。。。 adb shell dumpsys notification 比如,我現(xiàn)在在我機器上面執(zhí)行一下,輸出的結(jié)果為 Current Notification Manager state: Notification List: NotificationRecord{41453c70 pkg=com.zdworks.android.toolbox id=7f090092 tag=null pri=0} icon=0x0 / <name unknown> contentIntent=null deleteIntent=null tickerText=null contentView=null defaults=0x0 flags=0x62 sound=null vibrate=null ledARGB=0x0 ledOnMS=0 ledOffMS=0 NotificationRecord{415f48e8 pkg=com.zdworks.android.toolbox id=7f090080 tag=null pri=100} icon=0x7f0200fd / com.zdworks.android.toolbox:drawable/barttery_notify_icon contentIntent=PendingIntent{41949028: PendingIntentRecord{412e3c20 com.zdworks.android.toolbox startActivity}} deleteIntent=null tickerText=電量提示 contentView=android.widget.RemoteViews@416e7b90 defaults=0x0 flags=0x22 sound=null vibrate=null ledARGB=0x0 ledOnMS=0 ledOffMS=0 NotificationRecord{416db3e0 pkg=android id=1040414 tag=null pri=100} icon=0x10804f5 / android:drawable/stat_sys_adb contentIntent=PendingIntent{41275de8: PendingIntentRecord{416dade8 android startActivity}} deleteIntent=null tickerText=USB 調(diào)試已連接 contentView=android.widget.RemoteViews@416daf40 defaults=0x0 flags=0x2 sound=null vibrate=null ledARGB=0x0 ledOnMS=0 ledOffMS=0 NotificationRecord{41790de8 pkg=com.htc.android.psclient id=7f020010 tag=null pri=100} icon=0x7f020010 / com.htc.android.psclient:drawable/usb_to_pc_notify contentIntent=PendingIntent{416c3e38: PendingIntentRecord{417bc968 com.htc.android.psclient startActivity}} deleteIntent=null tickerText=null contentView=android.widget.RemoteViews@4169d128 defaults=0x0 flags=0x2 sound=null vibrate=null ledARGB=0x0 ledOnMS=0 ledOffMS=0 mSoundNotification=null mSound=com.android.server.NotificationPlayer@413e73b8 mVibrateNotification=null mDisabledNotifications=0x0 mSystemReady=true 現(xiàn)在大家知道了吧,這么簡單就把咱們給搞定了 下面的事情就簡單 1.想辦法獲取這段log 2.提取包名 3.根據(jù)數(shù)據(jù)庫中的黑名單白名單不同處理 4.你的應(yīng)用很可能在黑名單中,最后的結(jié)果也基本是進(jìn)程被殺死 (這里就不演示3、4部分了,只演示1、2)
上面的這段代碼實在沒什么技術(shù)含量,讓給位網(wǎng)友見笑了 按順序簡單解釋一下 首先,我們先執(zhí)行dumpsys notification這條命令,這在上一期的代碼中已經(jīng)有了 然后通過process.getInputStream()獲得其輸出按行讀取,這里只關(guān)心類似于下面這種的log NotificationRecord{40dacad8 pkg=com.htc.android.psclient id=7f020010 tag=null pri=100} 然后從中提取出包名即可 其中的正則就是為了提取包名用的,想了解正則的同學(xué)可以看我的正則教程
這里我執(zhí)行的結(jié)果為(看來有一個應(yīng)用提示了兩個通知)
之后的工作就是把這個list展示給用戶,讓用戶去選擇了 既然360可以這樣,病毒為什么不可以呢?病毒Fake.apk可以在半夜偷偷安裝應(yīng)用Real.apk,幾秒鐘后,F(xiàn)ake.apk執(zhí)行上面的這些操作,獲取360,然后kill!爽! 大家有興趣可以反編譯一下金山和360,他們基本就是這么干的,我發(fā)現(xiàn)360比較壞,至于為什么這么說,大家自己去發(fā)現(xiàn)吧
ps:我使用的是卡巴斯基免費版,殺毒軟件是不會去管有沒有廣告推送的,廣告不是病毒,殺毒軟件也不應(yīng)該干一些不該干的事!
請大家不要用root的手機隨意下載軟件,更不要以任何借口制造任何病毒! |
|