?

基于Android的手機防盜軟件的研究與實現

2016-12-15 09:44李紀平丁么明焦家林
湖北工程學院學報 2016年6期
關鍵詞:SIM卡防盜被盜

李紀平,丁么明,焦家林

(湖北工程學院 計算機與信息科學學院, 湖北 孝感 432000)

?

基于Android的手機防盜軟件的研究與實現

李紀平,丁么明,焦家林

(湖北工程學院 計算機與信息科學學院, 湖北 孝感 432000)

針對手機被盜或丟失后個人隱私泄露所帶來的安全隱患,提出了一種基于Android手機防盜軟件的總體設計方案和流程,詳細給出了各模塊的具體實現方法和相應的關鍵代碼。該軟件采用后臺監聽技術,以綁定安全號碼的方式,通過手機短信對被盜手機實現定位與防盜追蹤、鎖屏、語音警告以及個人隱私信息銷毀功能。模擬器和真機環境下的測試結果表明,該軟件具有一定的實用價值。

Android;隱私泄露;防盜追蹤;數據清除;語音報警;鎖屏

隨著移動計算技術的發展,智能手機已成信息獲取的主要載體。其中,Android智能手機不僅簡單易用、功能強大,而且具有開源的特點,市場占有率高達81%,在人們的日常生活中有著廣泛的應用[1-3]。當前,人們使用智能手機除了打電話、發短信外,更多的是用來實現移動互聯服務,如看新聞、上網聊天、收發微博、移動支付、視頻觀看、手機游戲以及導航服務等。此外,隨著人們生活節奏加快,移動辦公已常態化,重要日程提醒、會議記錄的存儲、銀行賬號及密碼的存儲、通信錄的管理、視頻照片存儲等都可以借助智能手機完成。然而,智能手機在給人們的工作、生活帶來巨大方便的同時,存儲在智能手機中的個人信息及相關隱私數據如果泄露,將會給智能手機的使用者帶來嚴重的安全隱患。比如,犯罪分子可以利用丟失或被盜手機中的聯系人信息,冒充銀行、電信、公檢法警察等身份對失主的朋友及家人進行詐騙,不僅會對失主及其親戚朋友造成一定的經濟損失,而且會給他們的工作、生活造成非常大的影響[4-6]。因此,設計并開發基于Android的手機防盜追蹤與隱私保護安全軟件,以手機App實現丟失手機的定位跟蹤及隱私信息的有效清除就顯得尤為重要和有意義[7-9]。

1 系統設計

為了實現手機防盜功能,系統要實現SIM卡更換警告、手機定位跟蹤、手機鎖屏、語音警告及隱私數據清除等功能,手機防盜系統的功能如圖1所示。

1.1 系統組成

該系統主要由系統設置和防盜管理兩部分構成,其中系統設置主要完成用戶在初次使用本軟件時實現用戶名和口令設置,完成系統的初始化,并綁定安全號碼。防盜管理主要有SIM 卡更換警告、手機定位跟蹤、手機鎖屏、隱私數據清除及手機語音警告等功能。

1.2 系統功能

當手機開機時,系統首先檢測該安全軟件是否是首次在此手機上運行,若是,就進行初始化設置,完成登錄用戶名和登錄密碼,以及安全號碼的設置。當初始化設置完成后,系統將SIM卡信息、用戶名和密碼保存,同時自動啟動防盜追蹤功能;若安全軟件不是首次運行,則需要輸入登錄用戶名和密碼進行用戶安全認證,只有安全認證通過,才可進入軟件設置界面,實現手機防盜功能的開啟與關閉,實現Username和Password的修改。但是, 輸入Username和Password進行安全認證出錯次數最多不超過3次,否則該安全軟件將退出登錄窗口,在后臺執行監聽操作,根據綁定安全號碼手機發來的“location”、“lockscreen”、“alarm”、“wipedata”等不同短信指令,分別對被盜手機執行定位跟蹤、鎖屏、語音警告及隱私數據銷毀等操作。

如果被盜手機SIM卡更換,被盜手機將會向邦定安全號碼的手機發送SIM變更信息,并將新的SIM卡信息發送給擁有安全號碼的手機;當擁有安全號碼的手機向被盜手機發送不同的短消息指令,若發送“location”短消息指令,則被盜手機會向綁定安全號碼的手機發送其所在經緯度位置信息;若發送“lockscreen”短消息指令,則被盜手機的屏幕將被鎖定,防止非法用戶查看或處理被盜手機內相關信息;若發送“alarm”短消息指令,則被盜手機將會自動播放語音警告信息;若發送“wipedata”短消息指令,則將清除被盜手機上的隱私數據信息,具體流程如圖2所示。

2 手機防盜系統的實現

2.1 系統初始化模塊

該模塊的主要功能是讓本軟件在Android智能手機上首次使用時,讓用戶完成Username和Password的設置與保存。當前,Android 系統主要有4種數據存儲方式:SQLite數據庫、SharedPreferences、Content Provider以及文件存儲[10]??紤]到本軟件要存儲的數據量較小,且多為一些設置參數,故采用SharedPreferences方式保存登錄Username和Password,以及要綁定的SecurityNumber和SIM卡信息等。

圖2 安全軟件系統功能流程

2.2 用戶管理模塊

用戶管理模塊的主要功能是讓用戶進行防盜功能的設置、登錄用戶名和密碼的重置。如果用戶要進入此功能,必須進行登錄Username和Password的驗證。如果登錄Username、Password和初始化時設置的Username、Password相同,則可進行防盜功能的設置,或登錄用戶名、密碼的重置;否則,將無法進入到此模塊。

2.3 SIM卡綁定模塊

一旦手機和指定的SIM綁定后,如果該手機被盜或丟失后SIM卡被換掉,該被盜手機將向綁定安全號碼的手機發送SIM卡更換消息,并將更換后的SIM卡信息發送給綁定安全號碼的手機,SIM卡綁定的核心代碼如下:

siv_simBind.setOnClickListener(new OnClickListener(){

public void onClick(View v) {

String simSerialNumber = tm.getSimSerialNumber();

if(siv_simBind.isChecked()){

siv_simBind.setChecked(false);

sp.edit().putString(“sim”,“”).commit();} else{siv_simBind.setChecked(true);

sp.edit().putString(“sim”,simSerialNumber).commit();} } };

2.4 安全號碼綁定模塊

該模塊的主要功能是為用戶提供設置一個Security number的接口,當手機被盜后,通過此Security number,失主可以向被盜手機發送“location”、“lockscreen”、“alarm”、“wipedata”等短消息指令,實現對被盜手機的遠程控制與管理。實現安全號碼綁定功能的核心代碼如下:

protected void showNext(){

String et_safephone=et_phone.getText().toString().trim();

if(TextUtils.isEmpty(et_safephone)){

Toast.makeText(this, “請設置安全號碼”, 0).show();

return ;}

sp.edit().putString(“safephone”, et_safephone).commit();

Intent intent = new Intent (this,Setup4Activity.class);

startActivity(intent);

finish();

overridePendingTransition(R.anim.tran_in, R.anim.tran_out); }

2.5 SIM卡檢測模塊

SIM卡檢測模塊用來檢測手機SIM卡是否更換,如果SIM卡更換,則視為手機被盜或丟失,將向綁定安全號碼的手機發送被盜信息及更換后的SIM卡信息。系統啟動后,Android會發送BOOT_ COMPLETED廣播,用來通告系統的各種狀態信息[11]。在后臺,用BootCompleteReceiver來專門監聽BOOT_COMPLETED廣播事件,并采用TelephonyManager類的實例來獲取手機的SIM卡信息,并將此信息和手機中綁定的SIM卡信息進行比對,用來判斷手機SIM卡是否變更,從而決定是否向綁定安全號碼的手機發送變更后的SIM卡信息。

2.6 手機定位跟蹤模塊

手機定位跟蹤模塊主要用來實現被盜手機的定位跟蹤服務,為被盜手機的找回提供指導。當GPS定位服務開啟后,通過調用public void onLocationChanged(Location location)方法來獲取被盜手機的經緯度信息,實現被盜手機定位跟蹤服務的核心代碼如下:

Public void onLocationChanged(Location location) {

String longitude=“longitude:”+location.getLongitude() +“ ”;

String latitude = “ latitude:” + location.getLatitude()+“ ”;

String accuracy= “accuracy:” + location.getAccuracy()+“ ”;

String lastlocation = longitude+latitude+accuracy;

sp.edit().putString(“lastlocation”, lastlocation).commit();}

2.7 隱私信息銷毀模塊

該模塊的主要功能是當手機被盜或丟失后,用戶可以借助綁定Security number的手機向被盜或丟失的手機發送“wipedata”短消息指令,清除被盜手機中的隱私信息,包括通信錄及手機中的存儲的短消息、照片等。

Android系統中的聯系人信息一般存儲在/data/data/com.android.providers.contacts/目錄下[11-12],但并不允許直接存取它,必須在獲取權限后,通過ContentResolver的insert接口獲取通訊錄的聯系人,然后通過ContentResolver的Delete接口刪除;而SD卡在Android系統中的路徑是/mnt /sdcard[11-12],如果要刪除SD卡中的數據,必須在取得權限后,通過文件操作實現刪除。

要刪除被盜手機聯系人信息,首先要獲取聯系人的讀寫權限,要想獲此讀寫權限,必須在AndroidManifest.xml配置文件中加入如下代碼:

刪除被盜手機所有聯系人的關鍵代碼如下:

ContentResolver cr=getContentResolver();

int n=cr.delete(ContactsContract.Data. CONTENT_URI,null,null);

要刪除被盜手機SD卡中存儲的信息,首先要獲得SD卡的寫權限。要想獲此權限,必須在AndroidManifest.xml配置文件中加入如下代碼。

在獲取SD卡寫權限后,執行相關操作可以實現不同類型信息。如下代碼用來刪除SD卡中存放的在Pictures目錄中的所有照片。

String baseDir

=Environment.getExternalStorageDirectory().get AbsolutePath();

baseDir=baseDir+“/Pictures”;

File[] list=new File(baseDir).listFiles();

for(int i=0;i

2.8 后臺短信監聽模塊

該模塊的主要功能是在后臺實時監聽接收到的短消息,如有綁定Security number的手機發來的短信,則對該短消息的內容進行截獲,并將短信內容與遠程控制代碼進行比較,若匹配成功,則根據匹配的內容啟動相應的防盜跟蹤、鎖屏、語音報警及隱私數據清除等操作,該功能的核心代碼如下:

public class SMSReceiver extends BroadcastReceiver{

private static final String TAG = “SMSReceiver”;

private SharedPreferences sp;

private DevicePolicyManager dpm;

public void onReceive(Context context, Intent intent)

{sp=context.getSharedPreferences(“config”,

context.MODE_PRIVATE);

dpm=(DevicePolicyManager)context.getSystemService(

context.DEVICE_POLICY_SERVICE);

Object[] objs = (Object[])

intent.getExtras().get(“pdus”);

for (Object obj:objs)

{smsMessage sms = smsMessage.createFromPdu((byte[]) obj);

String address = sms.getOriginatingAddress();

String safephone = sp.getString(“safephone”, “5556”);

if(address.contains(safephone)){

String body = sms.getMessageBody();

if (“location”.equals(body)){

Intent intentGPSService = new

Intent(context,GPSService.class);

context.startService(intentGPSService);

String lastlocation = sp.getString(“lastlocation”,“”);}

if(TextUtils.isEmpty(lastlocation)){

smsManager.getDefault().sendTextMessage(address,null,”

getting location...from zh”, null, null);}

else{SmsManager.getDefault().sendTextMessage(address,

null, lastlocation, null, null);abortBroadcast();}

else if(“alarm”.equals(body)){

MediaPlayer mp=MediaPlayer.create(context, R.raw.fail);

mp.setVolume(1.0f, 1.0f); mp.start();

abortBroadcast();}

else if(“wipedata”.equals(body)){dpm.wipeData(0);abortBroadcast();}

else if(“lockscreen”.equals(body)){dpm.lockNow ();

dpm.resetPassword(safephone, 0);abortBroadcast();}}

3 軟件測試

軟件測試的目的主要是測試軟件的界面是否與設計的效果吻合、運行效果是否良好、功能是否完善、性能是否穩定。為了驗證手機防盜安全軟件的運行效果,在仿真模擬器和真機環境下分別進行測試。測試的軟硬件環境如表1所示。

表1 測試采用的軟硬件環境

3.1 測試平臺

硬件:帶有USB 2.0接口的臺式機一臺、裝有Android 5.0系統的HTC D826 w手機一部、USB數據線一根,手機USB接口與電腦的USB接口通過USB數據線保持相連并處于同步狀態。

軟件:Eclipse Kepler 4.3、Android ADT 1.7集成開發環境、Android 4.0.3 SDK、HTC D826w手機驅動。

在電腦系統調試狀態,可以使電腦與HTC D826 w手機連接后保持同步。通過Eclipse中DDMS的Device對軟件的運行畫面截屏,通過集成環境的LogCat可以對軟件的運行情況進行分析。

3.2 測試結果

不論是采用Android模擬器測試還是真機測試,都能實現需求分析所需的四個主要功能。當綁定安全號碼的手機(或Android模擬器)向被盜手機(或裝有此防盜應用的Android模擬器)發送“location”短信指令,綁定安全號碼的手機(或Android模擬器)會收到被盜手機的地理位置信息,如圖3所示。

(a)真機測試環境 (b)模擬器測試環境

當綁定安全號碼的手機(或Android模擬器)向被盜手機(或裝有此防盜應用的Android模擬器)發送“lockscreen”短信指令時,被盜手機的屏幕將處于鎖定狀態,如圖4所示。

(a)真機測試環境 (b)模擬器測試環境

當綁定Security number的手機(或Android模擬器)向被盜手機(或裝有此防盜應用的Android模擬器)發送“alarm”短信指令時,被盜手機將播放預先設定的語音文件,向盜取手機者發送語音警告信息。

當綁定Security number的手機(或Android模擬器)向被盜手機(或裝有此防盜應用的Android模擬器)發送“wipedata”短信指令時,將清除被盜手機內所有數據。為了保證真實手機內數據不被刪除,在測試時采用模擬器測試環境,隱私數據清除界面如圖5所示。

圖5 模擬器環境下隱私數據清除測試

4 結束語

本文提出了一種基于Android平臺的手機安全軟件的設計方案,詳細給出了該軟件的系統功能框圖、功能流程圖及各功能模塊的核心代碼。該方案采用后臺監聽技術,以綁定Security number的方式,通過Security number手機以短信方式實現對被盜手機的防盜追蹤、語音警告、隱私信息清除及鎖屏功能,仿真和實測結果表明該軟件具有一定的實用價值。在下階段的研究中,將主要精力放在開發適用于IOS平臺的智能手機安全防盜軟件,實現防盜追蹤、語音警告、隱私信息刪除及鎖屏等功能。

[1] 楊豐盛.Android 應用開發揭秘[M].北京:機械工業出版社,2010.

[2] 段君,朱學森.基于Android智能手機來電防火墻的研究與設計[J].內蒙古科技大學學報,2012,31(4):356-359.

[3] 閆梅,彭新光.基于Android安全機制的權限檢測系統[J].計算機工程與設計,2013,34(3):854-858.

[4] 趙海軍.解決手機隱私泄露刻不容緩[N].中國計算機報,2012-02-27(4).

[5] 佚名.明爭·暗斗:手機安全大作戰[N/OL].電腦報,2013-03-05[2015-05-05].http: //www.icpcw.com.

[6] 賴超,龍曦,李金霖,等.基于 Android平臺的手機后臺監聽技術[J].電腦知識與技術,2010,6(33):9472-9474.

[7] 張浩,陳盛云.基于 Android 平臺手機防盜追蹤功能的實現[J].江西科學,2011,29(5):652-655.

[8] 李中平.Android 手機遠程控制關鍵技術分析[J].計算機應用與軟件,2013,30(4):113-115.

[9] 王穎,李威耀.基于Android平臺的手機防盜與數據保護系統[J].現代計算機. 2013(18):62-64.

[10] 楊豐盛.Android技術內幕·系統卷[M].北京:機械工業出版社,2011.

[11] 南秦博,慕德俊,侯艷艷.基于Android平臺的手機防盜安全軟件設計與實現[J].現代電子技術,2015(4):46-49.

[12] Darcey L,Conder S.Android應用開發入門經典[M].袁國忠,譯.北京:人民郵電出版社,2012.

(責任編輯:熊文濤)

Research and Realization of Mobile Phone Security Software Based on Android Platform

Li Jiping, Ding Yaoming, Jiao Jialin

(SchoolofComputerandInformationScience,HubeiEngineeringUniversity,Xiaogan,Hubei432000,China)

In order to overcome the security threat caused by the leak of personal private information due to the stolen or lost mobile phone, an overall design scheme for mobile phone is proposed based on android platform. In addition, the detailed realization method and related key codes of each module are also given. By using background monitoring technology and binding safe phone number, the developed software realizes remote control through short message, thus realizing the function of anti-theft tracking, voice alarm, locking of screen and destruction of private information. The testing results in both simulation and practical environments show that the security software is valuable in practice.

Android; privacy leaking; anti-theft tracking; data wiping; voice alarming; screen locking

2016-09-21

國家自然科學基金面上項目(61370223);湖北省自然科學基金面上項目(2014CFB577)

李紀平(1972- ),男,湖北漢川人,湖北工程學院計算機與信息科學學院副教授,博士。

丁么明(1963- ),男,湖北孝昌人,湖北工程學院計算機與信息科學學院教授,博士。

TP399

A

2095-4824(2016)06-0047-06

焦家林(1963- ),男,湖北漢川人,湖北工程學院計算機與信息科學學院副教授,碩士。

猜你喜歡
SIM卡防盜被盜
SIM卡防盜很關鍵 小喻教你如何給它“上保險”
鐵路GSM-R SIM卡讀寫次數測試方法研究
SIM卡的“減肥史”
古代陵墓中的防盜機關
防火防盜報警器設計
2017年凱迪拉克XT5電路圖
名畫被盜
黑郵票被盜
剩女筆記
藝術品被盜
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合