• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于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)

      河南 王生陽

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

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

      引言

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

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

      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會(huì)同一系列核心應(yīng)用程序包一起發(fā)布,該應(yīng)用程序包包括email客戶端,SMS短消息程序,日歷,地圖,瀏覽器,聯(lián)系人管理程序等。所有的應(yīng)用程序都是使用JAVA語言編寫的。開發(fā)人員也可以完全訪問核心應(yīng)用程序所使用的API框架。該應(yīng)用程序的架構(gòu)設(shè)計(jì)簡(jiǎn)化了組件的重用;任何一個(gè)應(yīng)用程序都可以發(fā)布它的功能塊并且任何其它的應(yīng)用程序都可以使用其所發(fā)布的功能塊。

      2功能性需求

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

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

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

      圖2 -1短信攔截

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

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

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

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

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

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

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

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

      表3 -1黑名單表

      表3 -1白名單表

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

      短信過濾部分

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

      電話過濾部分

      在自定義廣播接收者Listener類中獲取廣播意圖的值,然后和電話意圖值比較,電話意圖值為"android.intent.action.PHONE_STATE",然后通過意圖獲取來電號(hào)碼,方法為intent.getStringExtra("incoming_number")。對(duì)于掛斷電話的實(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)時(shí),進(jìn)行黑白名單過濾,如果是屬于黑名單就調(diào)用end-Call()函數(shù)進(jìn)行掛斷。

      電話錄音

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

      總結(jié)

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

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

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

      [3]汪永峰.Android平臺(tái)開發(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í)干勇作為——十個(gè)關(guān)鍵字,盤點(diǎn)江蘇統(tǒng)戰(zhàn)的2021
      核電廠儀控系統(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)
      平邑县| 横峰县| 隆林| 阿拉善右旗| 家居| 正镶白旗| 枣庄市| 桂平市| 通江县| 湛江市| 河源市| 鄂州市| 东平县| 义马市| 永定县| 固镇县| 辽宁省| 乳源| 万州区| 濮阳县| 杭锦旗| 阿勒泰市| 久治县| 凌云县| 枣庄市| 弥渡县| 定南县| 南宫市| 和硕县| 德庆县| 呼伦贝尔市| 乐亭县| 泸州市| 赣榆县| 和静县| 永年县| 无锡市| 姚安县| 从江县| 霍州市| 南平市|