国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Android系統(tǒng)的手機(jī)防火墻的設(shè)計(jì)與實(shí)現(xiàn)

2011-11-03 13:02:56河南王生陽
職業(yè)技術(shù) 2011年4期
關(guān)鍵詞:白名單關(guān)鍵字黑名單

河南 王生陽

基于Android系統(tǒng)的手機(jī)防火墻的設(shè)計(jì)與實(shí)現(xiàn)

河南 王生陽

欺詐短信和騷擾電話時常在我們身邊發(fā)生,尤其對于防范意識薄弱的老人和小孩來說更需要一款特定的軟件來監(jiān)控和保護(hù)他們的通訊安全,本文基于Android系統(tǒng),提出手機(jī)必須有一款針對短信和電話的防火墻軟件,它可以過濾惡意電話和詐騙短信。

廣播監(jiān)聽;黑名單;白名單;關(guān)鍵字;過濾

引言

隨著使用Android系統(tǒng)手機(jī)的用戶數(shù)量的增多,許多安全問題就隨之而來。大多數(shù)殺毒軟件公司都較注重網(wǎng)絡(luò)安全,但忽略了通訊和信息安全方面,尤其對欺詐防范意識薄弱的群體更需要這方面的軟件來保護(hù)他們的通訊和信息的安全。

基于Android系統(tǒng)的手機(jī)防火墻主要是針對短信和電話進(jìn)行過濾,它能夠?qū)崿F(xiàn)對短信實(shí)行關(guān)鍵字和號碼進(jìn)行過濾,能夠過濾那些垃圾廣告短信,系統(tǒng)自帶了一些常用的垃圾短信數(shù)據(jù)庫,它也可以自定義,用戶可以自行添加修改刪除關(guān)鍵字,能夠根據(jù)自己的需要和最新的常見垃圾短信內(nèi)容進(jìn)行過濾攔截它。它也可以對電話進(jìn)行黑名單過濾,如果在黑名單之內(nèi)的電話會自動掛斷。

1 And roid系統(tǒng)介紹

Android的系統(tǒng)架構(gòu)和其操作系統(tǒng)一樣,采用了分層的架構(gòu)。android分為四層,從高層到低層分別是應(yīng)用程序?qū)?、?yīng)用程序框架層、系統(tǒng)運(yùn)行庫層和linux核心層。Android會同一系列核心應(yīng)用程序包一起發(fā)布,該應(yīng)用程序包包括email客戶端,SMS短消息程序,日歷,地圖,瀏覽器,聯(lián)系人管理程序等。所有的應(yīng)用程序都是使用JAVA語言編寫的。開發(fā)人員也可以完全訪問核心應(yīng)用程序所使用的API框架。該應(yīng)用程序的架構(gòu)設(shè)計(jì)簡化了組件的重用;任何一個應(yīng)用程序都可以發(fā)布它的功能塊并且任何其它的應(yīng)用程序都可以使用其所發(fā)布的功能塊。

2功能性需求

當(dāng)手機(jī)接收到短信時會先存入手機(jī)中的短信數(shù)據(jù)庫中,再廣播出含有短信的intent。所有有權(quán)限接收到這類廣播的程序都會收到。所以有兩種方式可以處理收到的短信。一種是自己定義一個接收者(receiver)方式來接收含有短信的intent。另一種是手機(jī)短信數(shù)據(jù)庫監(jiān)聽方式,當(dāng)收到短信時短信數(shù)據(jù)庫一定有變化,以此來激活程序運(yùn)行。這里我用第一種方法來接收短信intent,為了第一時間得到廣播可以設(shè)置接收者的優(yōu)先級最高,這樣可以先得到短信信息并設(shè)置過濾規(guī)則,如果輸入攔截信息就終止此廣播,讓系統(tǒng)自帶的廣播接收者無法接收到此廣播,也就不提醒用戶有信息。

電話防火墻采用自定義廣播接收者(receiver)方式來接收電話信息,然后設(shè)置過濾規(guī)則,當(dāng)來電屬于黑名單時采用自動掛斷的方式。短信攔截的用例圖如圖2-1所示。

基本事件流:1.系統(tǒng)接收到短信;2.分析讀取短信的發(fā)送地址和具體內(nèi)容;3.通過黑名單和關(guān)鍵字分別過濾短信是不是黑名單中的號碼或者內(nèi)容是否含有關(guān)鍵字;4.如果是屬于黑名單或者短信內(nèi)容則終止短息。

圖2 -1短信攔截

圖2 -2電話過濾與監(jiān)聽

防火墻電話過濾與監(jiān)聽

如果遇到經(jīng)常騷擾自己的電話,或者一些陌生電話打一下就掛斷的,可以加入黑名單,只要是黑名單里的電話來電時會自動掛斷電話。當(dāng)被監(jiān)護(hù)人的來電不是黑名單和靜音名單時,電話進(jìn)來時啟動錄音功能將通話信息錄制下來,存儲在被監(jiān)護(hù)人手機(jī)上,此時通知監(jiān)護(hù)人有電話進(jìn)來并及時查看通話錄音,如果通話內(nèi)容具有詐騙性質(zhì)的或者其它惡意的可以及時提醒被監(jiān)護(hù)人。用例圖和用例描述如圖2-2所示。

基本事件流:(1)讀取電話信息;(2)電號碼進(jìn)行黑名單和白名單過濾;(3)若來電是屬于黑名單自動掛斷電話。

3設(shè)計(jì)與實(shí)現(xiàn)

Android系統(tǒng),提供了一個名為SQLiteOpenHelper的抽象類,必須繼承它才能使用,它是通過對數(shù)據(jù)庫版本進(jìn)行管理來實(shí)現(xiàn)前面提出的需求。

為了實(shí)現(xiàn)對數(shù)據(jù)庫版本進(jìn)行管理,SQLiteOpenHelper類提供了兩個重要的方法,分別是onCreate(SQLiteDatabase db)和onUpgrade(SQLiteDatabase db,intoldVersion,int newVersion),前者用于初次使用軟件時生成數(shù)據(jù)庫表,后者用于升級軟件時更新數(shù)據(jù)庫表結(jié)構(gòu)。當(dāng)調(diào)用SQLiteOpenHelper的getW ritableDatabase()或者getReadableDatabase()方法獲取用于操作數(shù)據(jù)庫的SQLiteDatabase實(shí)例的時候,如果數(shù)據(jù)庫不存在,Android系統(tǒng)會自動生成一個數(shù)據(jù)庫,接著調(diào)用onCreate()方法,onCreate()方法在初次生成數(shù)據(jù)庫時才會被調(diào)用,在onCreate()方法里可以生成數(shù)據(jù)庫表結(jié)構(gòu)及添加一些應(yīng)用使用到的初始化數(shù)據(jù)。onUpgrade()方法在數(shù)據(jù)庫的版本發(fā)生變化時會被調(diào)用,一般在軟件升級時才需改變版本號。

getWritableDatabase()和getReadableDatabase()方法都可以獲取一個用于操作數(shù)據(jù)庫的SQLiteDatabase實(shí)例。但getWritableDatabase()方法以讀寫方式打開數(shù)據(jù)庫,一旦數(shù)據(jù)庫的磁盤空間滿了,數(shù)據(jù)庫就只能讀而不能寫,倘若使用的是getWritableDatabase()方法就會出錯。getReadableDatabase()方法先以讀寫方式打開數(shù)據(jù)庫,如果數(shù)據(jù)庫的磁盤空間滿了,就會打開失敗,當(dāng)打開失敗后會繼續(xù)嘗試以只讀方式打開數(shù)據(jù)庫。下邊表3-1、表3-2、表3-3分別是黑名單表、白名單表、關(guān)鍵字表的結(jié)構(gòu)。

表3 -1黑名單表

表3 -1白名單表

表3 -1關(guān)鍵字特征庫表

短信過濾部分

短信過濾定義了一個Listener繼承BroadcastReceiver,并在功能清單里定義這個自定義廣播接收者,再定義其優(yōu)先級priority值為1000,這樣當(dāng)信息廣播傳到系統(tǒng)時,第一時間得到廣播。在Listener獲取廣播意圖的值,然后和短信意圖相對比,短信廣播意圖值為“android.provider.Telephony.SMS_RECEIVED“,如果是短信廣播意圖,則通過Bundle來獲取廣播信息,然后通過解析把短信內(nèi)容和地址號碼分開。將號碼分別進(jìn)行白名單和黑名單進(jìn)行過濾,如果號碼屬于白名單怎廣播不中止,如果號碼屬于黑名單則短信廣播中止,如果號碼既不屬于白名單又不屬于黑名單,則進(jìn)行關(guān)鍵字過濾,如果含有關(guān)鍵則中止廣播。中止廣播用函數(shù)abortBroadcast()。

電話過濾部分

在自定義廣播接收者Listener類中獲取廣播意圖的值,然后和電話意圖值比較,電話意圖值為"android.intent.action.PHONE_STATE",然后通過意圖獲取來電號碼,方法為intent.getStringExtra("incoming_number")。對于掛斷電話的實(shí)現(xiàn),1.1版本后.Google已經(jīng)把該API隱藏掉??梢钥梢酝ㄟ^AIDL(Android遠(yuǎn)程方法)及反射來實(shí)現(xiàn),這里我用反射來調(diào)用hide API。在項(xiàng)目中新建包c(diǎn)om.android.internal.telep-hony,因?yàn)橐褂肁IDL,在該包下新建文件ITelephony.aidl該包與ITelephony.aidl一致,該包下新建文件ITelephony.aidl,將ITelephony.aidl內(nèi)容拷貝到文件中,通過反射獲取TelephonyManager,這樣可以調(diào)用iTelephony的endCall()隱藏方法來掛斷電話。

TelephonyManager夠監(jiān)控來電三種狀態(tài)TelephonyManager.CALL_STATE_RINGING來電響鈴;TelephonyManager.CALL_STATE_OFFH OOK來電接通去電撥TelephonyManag-er.CALL_STATE_IDLE來去電電話掛斷;在來電響鈴狀態(tài)時,進(jìn)行黑白名單過濾,如果是屬于黑名單就調(diào)用end-Call()函數(shù)進(jìn)行掛斷。

電話錄音

開機(jī)啟動一個服務(wù),服務(wù)service里通過TelephonyManager來監(jiān)聽電話狀。通過一個繼承PhoneStateListener類的內(nèi)部類實(shí)施電話狀態(tài)中的動作,當(dāng)來電處于通話狀態(tài)時調(diào)用MediaRecorder開始錄音,當(dāng)電話處于掛斷時停止錄音,并將錄音文件存在手機(jī)內(nèi)存sdcard上。

總結(jié)

基于Android系統(tǒng)防火墻能很好的能夠?qū)硗绦藕碗娫挼膶?shí)時監(jiān)控,在一定程度上保護(hù)了社會上那些防范意識薄弱的群體不受陌生電話的侵犯和垃圾短信的騷擾,監(jiān)護(hù)人能夠及時得到被監(jiān)護(hù)人的通話和短信信息,可以放心的工作了。

[1]楊豐盛.Android應(yīng)用開發(fā)揭秘[M].北京:機(jī)械工業(yè)出版社,2010.1:518.

[2]張山風(fēng),劉雪艷.Windows XP系統(tǒng)文件保護(hù)功能探討[J].辦公自動化,2006,6:31-32.

[3]汪永峰.Android平臺開發(fā)之旅[M].北京:機(jī)械工業(yè)出版社,2010.8:515.

(作者單位:河南省南陽農(nóng)業(yè)學(xué)校)

(編輯 王旸)

猜你喜歡
白名單關(guān)鍵字黑名單
基于白名單的車道工控系統(tǒng)信息安全解決方案
防曬黑名單?第2款就翻車了!
好日子(2022年6期)2022-08-17 07:16:00
履職盡責(zé)求實(shí)效 真抓實(shí)干勇作為——十個關(guān)鍵字,盤點(diǎn)江蘇統(tǒng)戰(zhàn)的2021
華人時刊(2022年1期)2022-04-26 13:39:28
核電廠儀控系統(tǒng)安全防護(hù)策略研究及應(yīng)用
成功避開“關(guān)鍵字”
受懲黑名單
中國信用(2017年5期)2017-05-25 11:20:08
受懲黑名單
中國信用(2017年4期)2017-05-23 11:40:56
黑名單
公布洋大學(xué)“白名單”遠(yuǎn)遠(yuǎn)不夠
基于用戶反饋的關(guān)系數(shù)據(jù)庫關(guān)鍵字查詢系統(tǒng)
三江| 大田县| 通山县| 九江县| 中宁县| 灌阳县| 四平市| 凤山市| 宜丰县| 广南县| 宁晋县| 延吉市| 浠水县| 大理市| 台中县| 阜城县| 海城市| 石阡县| 镇康县| 天全县| 商丘市| 常山县| 定州市| 毕节市| 淅川县| 苍南县| 耿马| 建水县| 汝阳县| 巴林左旗| 南和县| 临沧市| 辽阳市| 扶绥县| 海原县| 墨江| 南投市| 柯坪县| 固原市| 英吉沙县| 乡城县|