精品国产一级在线观看,国产成人综合久久精品亚洲,免费一级欧美大片在线观看

當前位置:安全行業(yè)動態(tài) → 正文

Android木馬如何實現(xiàn)用戶定位技術?

責任編輯:editor006 作者:GDLpa |來源:企業(yè)網(wǎng)D1Net  2016-07-10 22:28:10 本文摘自:黑客與極客

這幾年安卓系統(tǒng)的普及速度可謂迅猛,一時間各式各樣的設備都承載著安卓系統(tǒng),手機、平板、機頂盒等都忠實地成為了安卓系統(tǒng)的用戶。由于安卓系統(tǒng)在移動設備上的使用率最高,而移動設備上存儲的數(shù)據(jù)往往涉及到個人隱私,如手機通訊錄、短信內(nèi)容、拍攝照片、閱讀書目、保存文檔等,有時更會涉及到經(jīng)濟利益,這誘惑著一些利益集團開始制作基于安卓系統(tǒng)的遠程控制程序,即安卓系統(tǒng)木馬。

首個安卓系統(tǒng)木馬應屬2010年出現(xiàn)的“Trojan-SMS.AndroidOS.FakePlayer.a”,這是一個以扣取用戶手機話費為目的的盈利性安卓系統(tǒng)木馬。隨著需要的發(fā)展,單純的盈利性木馬已經(jīng)不是重點,用戶的隱私數(shù)據(jù)才是核心,尤其是具有用戶行為監(jiān)視性的木馬最受關注。所謂“用戶行為監(jiān)視性的木馬”就是指該類安卓木馬能夠監(jiān)視用戶的所在、所說、所做。

所在”即用戶所處位置在哪里;“所說”即通話內(nèi)容,聊天內(nèi)容;“所做”即在操作什么程序,在干什么活動。

這一類的木馬由于涉及到用戶核心利益,往往經(jīng)濟價值較大,多用于私人偵探、商業(yè)竊密等領域,平時很難見到,更不要說了解其核心代碼、實現(xiàn)機制。為此,本文將逐步向讀者揭秘這些高級安卓木馬的核心實現(xiàn)技術,幫助大家更好地了解這些木馬實現(xiàn)技術,從而做好對個人隱私的保護,防范該類木馬的入侵。本文旨在討論技術,凡利用本文技術進行違法活動的作者與雜志概不負責。

如何實現(xiàn)定位

如果你利用百度搜索安卓定位原理,會發(fā)現(xiàn)百度給出的解釋不外乎是利用GPS或者手機基站定位,甚至結合Wi-Fi信號。原理不錯,但這只是原理,要想具體實現(xiàn)定位可是有一定難度的。以手機基站定位為例,現(xiàn)在傳統(tǒng)的實現(xiàn)方式是利用AndroidSDK中的API(TelephonyManager)獲得MCC、MNC、LAC、CID等信息,然后通過Google的API獲得所在位置的經(jīng)緯度,最后再通過GoogleMap的API獲得實際的地理位置。這其中:

MCC即MobileCountryCode,移動國家代碼(中國的為460);

MNC,MobileNetworkCode,移動網(wǎng)絡號碼(中國移動為00,中國聯(lián)通為01);

LAC,LocationAreaCode,位置區(qū)域碼;

CID,CellIdentity,基站編號,是個16位的數(shù)據(jù)(范圍是0到65535)。

由于谷歌存儲了MCC、MNC、LAC、CID等信息,一旦我們能夠獲取當前移動設備所在基站的這些數(shù)據(jù),就可以通過向谷歌的“http://www.google.com/loc/json”網(wǎng)址發(fā)送查詢數(shù)據(jù)獲取基站所在經(jīng)緯度。

得到經(jīng)緯度后,我們將其轉換為實際地址,這需要向谷歌的“http://maps.google.cn/maps/geo?key=abcdefg&q=”發(fā)送經(jīng)緯度數(shù)據(jù),最終獲得移動設備所在實際地址。這樣的實現(xiàn)代碼在網(wǎng)上很多,你會發(fā)現(xiàn)它們都不好使了,為什么呢?因為“http://www.weixianmanbu.com/”這個網(wǎng)址現(xiàn)在已經(jīng)不能訪問了。這個可悲的消息使得我們意識到必須采用一種相對穩(wěn)妥的方法來實現(xiàn)移動設備定位。在對某個安卓木馬程序做逆向分析時,發(fā)現(xiàn)一種新的基于手機基站定位實現(xiàn)技術。當然在這之前,細心的讀者會發(fā)現(xiàn)為什么我們一直在詳細講解基于手機基站的定位實現(xiàn),而不采用最為常用的GPS。

因為手機這樣的移動設備一旦進入到房屋內(nèi)等封閉場所,GPS信號就衰減為0,不足以實現(xiàn)定位,而手機信號多半都是存在的,所以基于手機基站的定位方式更為穩(wěn)妥,這就是為什么很多高級安卓木馬會采用該方式實現(xiàn)定位的原因。言歸正傳,我們發(fā)現(xiàn)的這個安卓木馬采用了基于百度提供的定位SDK。根據(jù)百度官方的解釋:百度Android定位SDK支持Android1.5以及以上設備,提供定位功能,通過GPS、網(wǎng)絡定位(WIFI、基站)混合定位模式,返回當前所處的位置信息。

反地理編碼功能:

解析當前所處的位置坐標,獲得詳細的地址描述信息。如此豐富的技術支持,難怪該安卓木馬會采用這個SDK。

百度Android定位SDK的使用非常簡單,首先在百度的官網(wǎng)下載最新的庫文件,將liblocSDK.so文件拷貝到libs/armeabi目錄下,將locSDK.jar文件拷貝到工程根目錄下,并在工程屬性->JavaBuildPath->Libraries中選擇AddJARs,選定locSDK.jar,確定后返回,就可以在程序中使用百度Android定位SDK了。在代碼實現(xiàn)時,首先需要初始化LocationClient類,其代碼如下:

publicLocationClientmLocationClient=null;

publicBDLocationListenermyListener=newMyLocationListener();

publicvoidonCreate(){

mLocationClient=newLocationClient(this)

//聲明LocationClient類

//注冊監(jiān)聽函數(shù)

mLocationClient.registerLocationListener(myListener);

}

接著實現(xiàn)BDLocationListener接口。BDLocationListener接口有一個方法,作用是接收異步返回的定位結果,參數(shù)是BDLocation類型參數(shù)。其代碼如下:

publicclassMyLocationListennerimplementsBDLocationListener{

@Override

publicvoidonReceiveLocation(BDLocationlocation){

if(location==null)

return;

StringBuffersb=newStringBuffer(256);

sb.append("time:");

sb.append(location.getTime());

sb.append(" errorcode:");

sb.append(location.getLocType());

sb.append(" latitude:");

sb.append(location.getLatitude());

sb.append(" lontitude:");

sb.append(location.getLongitude());

sb.append(" radius:");

sb.append(location.getRadius());

if(location.getLocType()==BDLocation.TypeGpsLocation){

sb.append(" speed:");

sb.append(location.getSpeed());

sb.append(" satellite:");

sb.append(location.getSatelliteNumber());

}elseif(location.getLocType()==BDLocation.TypeNetWorkLocation){

sb.append(" addr:");

sb.append(location.getAddrStr());

}

logMsg(sb.toString());

}

}

接著設置參數(shù)。設置定位參數(shù)包括定位模式(單次定位,定時定位),返回坐標類型,是否打開GPS等。實現(xiàn)代碼如下:

LocationClientOptionoption=newLocationClientOption();

option.setOpenGps(true);

option.setAddrType("detail");

option.setCoorType("gcj02");

option.setScanSpan(5000);

mLocClient.setLocOption(option);

最后,發(fā)起定位請求。請求過程是異步的,定位結果在上面的監(jiān)聽函數(shù)中獲取,代碼如下:

if(mLocClient!=null&&mLocClient.isStarted())

mLocClient.requestLocation();

else

Log.d("LocSDK_2.0_Demo1","locClientisnullornotstarted");

實際測試效果如圖1所示。從圖中可以看出,演示程序準確定位到了我此刻手機所在的位置,定位精度在百米內(nèi)。木馬程序一旦使用了這樣的技術,完全可以實現(xiàn)對用戶所在的監(jiān)視,你此刻是不是有一種毛骨悚然的感覺呢?

Android木馬揭秘之用戶定位技術的實現(xiàn) 移動安全

定位代碼實現(xiàn)后,就可以利用移動網(wǎng)絡將用戶數(shù)據(jù)時時上傳至控制端網(wǎng)站,由控制端用戶查看。結合以往數(shù)據(jù),就可以勾畫出一個人一段時間內(nèi)的行蹤,對被控制者來說,此刻的手機或者其它移動設備就成為了出賣自己的第一元兇。定位代碼的成功實現(xiàn),只是高級安卓木馬程序的一部分功能,隨后的工作還有很多,將會陸續(xù)將這些核心技術向讀者一一揭秘。

關鍵字:append定位參數(shù)

本文摘自:黑客與極客

x Android木馬如何實現(xiàn)用戶定位技術? 掃一掃
分享本文到朋友圈
當前位置:安全行業(yè)動態(tài) → 正文

Android木馬如何實現(xiàn)用戶定位技術?

責任編輯:editor006 作者:GDLpa |來源:企業(yè)網(wǎng)D1Net  2016-07-10 22:28:10 本文摘自:黑客與極客

這幾年安卓系統(tǒng)的普及速度可謂迅猛,一時間各式各樣的設備都承載著安卓系統(tǒng),手機、平板、機頂盒等都忠實地成為了安卓系統(tǒng)的用戶。由于安卓系統(tǒng)在移動設備上的使用率最高,而移動設備上存儲的數(shù)據(jù)往往涉及到個人隱私,如手機通訊錄、短信內(nèi)容、拍攝照片、閱讀書目、保存文檔等,有時更會涉及到經(jīng)濟利益,這誘惑著一些利益集團開始制作基于安卓系統(tǒng)的遠程控制程序,即安卓系統(tǒng)木馬。

首個安卓系統(tǒng)木馬應屬2010年出現(xiàn)的“Trojan-SMS.AndroidOS.FakePlayer.a”,這是一個以扣取用戶手機話費為目的的盈利性安卓系統(tǒng)木馬。隨著需要的發(fā)展,單純的盈利性木馬已經(jīng)不是重點,用戶的隱私數(shù)據(jù)才是核心,尤其是具有用戶行為監(jiān)視性的木馬最受關注。所謂“用戶行為監(jiān)視性的木馬”就是指該類安卓木馬能夠監(jiān)視用戶的所在、所說、所做。

所在”即用戶所處位置在哪里;“所說”即通話內(nèi)容,聊天內(nèi)容;“所做”即在操作什么程序,在干什么活動。

這一類的木馬由于涉及到用戶核心利益,往往經(jīng)濟價值較大,多用于私人偵探、商業(yè)竊密等領域,平時很難見到,更不要說了解其核心代碼、實現(xiàn)機制。為此,本文將逐步向讀者揭秘這些高級安卓木馬的核心實現(xiàn)技術,幫助大家更好地了解這些木馬實現(xiàn)技術,從而做好對個人隱私的保護,防范該類木馬的入侵。本文旨在討論技術,凡利用本文技術進行違法活動的作者與雜志概不負責。

如何實現(xiàn)定位

如果你利用百度搜索安卓定位原理,會發(fā)現(xiàn)百度給出的解釋不外乎是利用GPS或者手機基站定位,甚至結合Wi-Fi信號。原理不錯,但這只是原理,要想具體實現(xiàn)定位可是有一定難度的。以手機基站定位為例,現(xiàn)在傳統(tǒng)的實現(xiàn)方式是利用AndroidSDK中的API(TelephonyManager)獲得MCC、MNC、LAC、CID等信息,然后通過Google的API獲得所在位置的經(jīng)緯度,最后再通過GoogleMap的API獲得實際的地理位置。這其中:

MCC即MobileCountryCode,移動國家代碼(中國的為460);

MNC,MobileNetworkCode,移動網(wǎng)絡號碼(中國移動為00,中國聯(lián)通為01);

LAC,LocationAreaCode,位置區(qū)域碼;

CID,CellIdentity,基站編號,是個16位的數(shù)據(jù)(范圍是0到65535)。

由于谷歌存儲了MCC、MNC、LAC、CID等信息,一旦我們能夠獲取當前移動設備所在基站的這些數(shù)據(jù),就可以通過向谷歌的“http://www.google.com/loc/json”網(wǎng)址發(fā)送查詢數(shù)據(jù)獲取基站所在經(jīng)緯度。

得到經(jīng)緯度后,我們將其轉換為實際地址,這需要向谷歌的“http://maps.google.cn/maps/geo?key=abcdefg&q=”發(fā)送經(jīng)緯度數(shù)據(jù),最終獲得移動設備所在實際地址。這樣的實現(xiàn)代碼在網(wǎng)上很多,你會發(fā)現(xiàn)它們都不好使了,為什么呢?因為“http://www.weixianmanbu.com/”這個網(wǎng)址現(xiàn)在已經(jīng)不能訪問了。這個可悲的消息使得我們意識到必須采用一種相對穩(wěn)妥的方法來實現(xiàn)移動設備定位。在對某個安卓木馬程序做逆向分析時,發(fā)現(xiàn)一種新的基于手機基站定位實現(xiàn)技術。當然在這之前,細心的讀者會發(fā)現(xiàn)為什么我們一直在詳細講解基于手機基站的定位實現(xiàn),而不采用最為常用的GPS。

因為手機這樣的移動設備一旦進入到房屋內(nèi)等封閉場所,GPS信號就衰減為0,不足以實現(xiàn)定位,而手機信號多半都是存在的,所以基于手機基站的定位方式更為穩(wěn)妥,這就是為什么很多高級安卓木馬會采用該方式實現(xiàn)定位的原因。言歸正傳,我們發(fā)現(xiàn)的這個安卓木馬采用了基于百度提供的定位SDK。根據(jù)百度官方的解釋:百度Android定位SDK支持Android1.5以及以上設備,提供定位功能,通過GPS、網(wǎng)絡定位(WIFI、基站)混合定位模式,返回當前所處的位置信息。

反地理編碼功能:

解析當前所處的位置坐標,獲得詳細的地址描述信息。如此豐富的技術支持,難怪該安卓木馬會采用這個SDK。

百度Android定位SDK的使用非常簡單,首先在百度的官網(wǎng)下載最新的庫文件,將liblocSDK.so文件拷貝到libs/armeabi目錄下,將locSDK.jar文件拷貝到工程根目錄下,并在工程屬性->JavaBuildPath->Libraries中選擇AddJARs,選定locSDK.jar,確定后返回,就可以在程序中使用百度Android定位SDK了。在代碼實現(xiàn)時,首先需要初始化LocationClient類,其代碼如下:

publicLocationClientmLocationClient=null;

publicBDLocationListenermyListener=newMyLocationListener();

publicvoidonCreate(){

mLocationClient=newLocationClient(this)

//聲明LocationClient類

//注冊監(jiān)聽函數(shù)

mLocationClient.registerLocationListener(myListener);

}

接著實現(xiàn)BDLocationListener接口。BDLocationListener接口有一個方法,作用是接收異步返回的定位結果,參數(shù)是BDLocation類型參數(shù)。其代碼如下:

publicclassMyLocationListennerimplementsBDLocationListener{

@Override

publicvoidonReceiveLocation(BDLocationlocation){

if(location==null)

return;

StringBuffersb=newStringBuffer(256);

sb.append("time:");

sb.append(location.getTime());

sb.append(" errorcode:");

sb.append(location.getLocType());

sb.append(" latitude:");

sb.append(location.getLatitude());

sb.append(" lontitude:");

sb.append(location.getLongitude());

sb.append(" radius:");

sb.append(location.getRadius());

if(location.getLocType()==BDLocation.TypeGpsLocation){

sb.append(" speed:");

sb.append(location.getSpeed());

sb.append(" satellite:");

sb.append(location.getSatelliteNumber());

}elseif(location.getLocType()==BDLocation.TypeNetWorkLocation){

sb.append(" addr:");

sb.append(location.getAddrStr());

}

logMsg(sb.toString());

}

}

接著設置參數(shù)。設置定位參數(shù)包括定位模式(單次定位,定時定位),返回坐標類型,是否打開GPS等。實現(xiàn)代碼如下:

LocationClientOptionoption=newLocationClientOption();

option.setOpenGps(true);

option.setAddrType("detail");

option.setCoorType("gcj02");

option.setScanSpan(5000);

mLocClient.setLocOption(option);

最后,發(fā)起定位請求。請求過程是異步的,定位結果在上面的監(jiān)聽函數(shù)中獲取,代碼如下:

if(mLocClient!=null&&mLocClient.isStarted())

mLocClient.requestLocation();

else

Log.d("LocSDK_2.0_Demo1","locClientisnullornotstarted");

實際測試效果如圖1所示。從圖中可以看出,演示程序準確定位到了我此刻手機所在的位置,定位精度在百米內(nèi)。木馬程序一旦使用了這樣的技術,完全可以實現(xiàn)對用戶所在的監(jiān)視,你此刻是不是有一種毛骨悚然的感覺呢?

Android木馬揭秘之用戶定位技術的實現(xiàn) 移動安全

定位代碼實現(xiàn)后,就可以利用移動網(wǎng)絡將用戶數(shù)據(jù)時時上傳至控制端網(wǎng)站,由控制端用戶查看。結合以往數(shù)據(jù),就可以勾畫出一個人一段時間內(nèi)的行蹤,對被控制者來說,此刻的手機或者其它移動設備就成為了出賣自己的第一元兇。定位代碼的成功實現(xiàn),只是高級安卓木馬程序的一部分功能,隨后的工作還有很多,將會陸續(xù)將這些核心技術向讀者一一揭秘。

關鍵字:append定位參數(shù)

本文摘自:黑客與極客

電子周刊
回到頂部

關于我們聯(lián)系我們版權聲明隱私條款廣告服務友情鏈接投稿中心招賢納士

企業(yè)網(wǎng)版權所有 ©2010-2024 京ICP備09108050號-6 京公網(wǎng)安備 11010502049343號

^
  • <menuitem id="jw4sk"></menuitem>

    1. <form id="jw4sk"><tbody id="jw4sk"><dfn id="jw4sk"></dfn></tbody></form>
      主站蜘蛛池模板: 银川市| 长阳| 会东县| 睢宁县| 许昌市| 壶关县| 汝城县| 清远市| 罗源县| 唐山市| 神农架林区| 宁武县| 苏尼特左旗| 无极县| 澳门| 象州县| 贺州市| 九台市| 永泰县| 德格县| 洛扎县| 留坝县| 耿马| 铁岭市| 拜泉县| 图们市| 广水市| 海晏县| 庆城县| 西峡县| 宜春市| 柏乡县| 温泉县| 登封市| 昌黎县| 铅山县| 民县| 岳阳县| 沙坪坝区| 焉耆| 老河口市|