|
android手機(jī)root后的安全問(wèn)題 (一) android手機(jī)root后的安全問(wèn)題 (二)
導(dǎo)讀: 本文介紹殺毒軟件和病毒是如何獲取通知欄上的所有通知,并且利用其信息殺死應(yīng)用。
上一篇將過(guò)如何利用root權(quán)限來(lái)做一次靜默安裝,有的人會(huì)說(shuō),安裝apk就安裝唄,反正哥有金山手機(jī)衛(wèi)士,哥有360主動(dòng)防御……他們都會(huì)彈出通知告訴我的! 安裝了新的應(yīng)用,手機(jī)會(huì)發(fā)送廣播,這些所謂的殺毒軟件監(jiān)聽這些廣播,然后彈出通知 好吧,我承認(rèn),他們?cè)谝欢ㄒ饬x上還是有點(diǎn)用處的,我們先把這個(gè)問(wèn)題放一放,先來(lái)說(shuō)兩句題外話
360和和金山手機(jī)衛(wèi)士都有一個(gè)讓廣大android開發(fā)者比較蛋疼的一個(gè)功能:那就是檢查廣告通知! 當(dāng)有通知欄有廣告的時(shí)候,運(yùn)行360執(zhí)行檢查,它會(huì)告訴你是哪個(gè)應(yīng)用程序的廣告(當(dāng)然,這里并不局限于廣告,他們是獲得所有通知,然后過(guò)濾),然后他會(huì)讓用戶選擇:不處理;關(guān)閉通知(實(shí)際上是把這個(gè)進(jìn)程kill掉,整個(gè)軟件停止運(yùn)行);卸載此軟件。
雖然我沒有發(fā)布過(guò)android應(yīng)用,但是我知道,靠軟件賺錢的各位,本來(lái)收入已經(jīng)夠?qū)擂蔚牧?,再加上這些操蛋的軟件提供這些操蛋的功能……哎 大家不喜歡收費(fèi)軟件那咱們就免費(fèi),點(diǎn)點(diǎn)廣告支持一下總行吧,就是不點(diǎn),你就放在那唄(當(dāng)然,有的軟件發(fā)起廣告來(lái)沒玩沒了也挺操蛋)
說(shuō)了這么多廢話,我們就來(lái)看看那些所謂的殺毒軟件是如何對(duì)付大家的 到了關(guān)鍵的地方,實(shí)際也就那么一行代碼……又讓大家失望了。。。 adb shell dumpsys notification 比如,我現(xiàn)在在我機(jī)器上面執(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)在大家知道了吧,這么簡(jiǎn)單就把咱們給搞定了 下面的事情就簡(jiǎn)單 1.想辦法獲取這段log 2.提取包名 3.根據(jù)數(shù)據(jù)庫(kù)中的黑名單白名單不同處理 4.你的應(yīng)用很可能在黑名單中,最后的結(jié)果也基本是進(jìn)程被殺死 (這里就不演示3、4部分了,只演示1、2)
上面的這段代碼實(shí)在沒什么技術(shù)含量,讓給位網(wǎng)友見笑了 按順序簡(jiǎn)單解釋一下 首先,我們先執(zhí)行dumpsys notification這條命令,這在上一期的代碼中已經(jīng)有了 然后通過(guò)process.getInputStream()獲得其輸出按行讀取,這里只關(guān)心類似于下面這種的log NotificationRecord{40dacad8 pkg=com.htc.android.psclient id=7f020010 tag=null pri=100}
然后從中提取出包名即可 其中的正則就是為了提取包名用的,想了解正則的同學(xué)可以看我的正則教程
這里我執(zhí)行的結(jié)果為(看來(lái)有一個(gè)應(yīng)用提示了兩個(gè)通知)
之后的工作就是把這個(gè)list展示給用戶,讓用戶去選擇了 既然360可以這樣,病毒為什么不可以呢?病毒Fake.apk可以在半夜偷偷安裝應(yīng)用Real.apk,幾秒鐘后,F(xiàn)ake.apk執(zhí)行上面的這些操作,獲取360,然后kill!爽! 大家有興趣可以反編譯一下金山和360,他們基本就是這么干的,我發(fā)現(xiàn)360比較壞,至于為什么這么說(shuō),大家自己去發(fā)現(xiàn)吧
ps:我使用的是卡巴斯基免費(fèi)版,殺毒軟件是不會(huì)去管有沒有廣告推送的,廣告不是病毒,殺毒軟件也不應(yīng)該干一些不該干的事!
請(qǐng)大家不要用root的手機(jī)隨意下載軟件,更不要以任何借口制造任何病毒! |
|
|