压在透明的玻璃上c-国产精品国产一级A片精品免费-国产精品视频网-成人黄网站18秘 免费看|www.tcsft.com

走進科學:揭秘如何入侵電視機

  [從可惡的廣告開始]
 
  前幾天家里買了臺新創維電視,安裝好興沖沖的開機,突然蹦出的廣告讓我心涼了半截,進了安卓系統,發現啥都沒有,不能自己裝軟件,只能從那只有不到20款軟件的破商店里下載,更可惡的是這廣告還兩天一換,后臺自動升級,這是為什么呢?我買的電視,憑啥你就能遠程控制隨便往里放廣告?電視步入了智能時代,一大堆捆綁的流氓軟件和廣告也從手機和PC轉戰到了電視平臺,所以,讓垃圾們都見鬼去吧!我要開始折騰了!
 
  [把電視當成平板]
 
  什么叫智能電視?實際上這只是唬人的名字,智能電視就是帶超大屏幕的安卓平板,只是這平板鎖住了70%的功能,而且沒有刷機用的連接接口,怎么辦呢?只能從網絡上想辦法了。
 
  具體思路就是先用ADB遠程連接,然后想辦法root,adb要遠程調試,需要電視上打開adbd服務,通過google得知大部分創維電視的adbd默認是打開的,或者可以從工廠設置里打開,不管怎么樣,我先碰碰運氣吧:
 
  看來有門,打開命令行,用adb試試:
 
  adb connect 192.168.0.100:5555
 
  connected to 192.168.0.100:5555
 
  adb remount
 
  remount succeeded
 
  居然成功了,下一步登錄進去看看,本想著如何root可能是個難題,可是當強大的#號出現在我面前時,我和我的小伙伴們全都驚呆了!
 
  電視的安卓系統居然是直接以root權限運行的,我對創維公司已經無語了,接下來一切好辦,開兩個shell窗口,一個登錄進安卓系統,另一個用adb連接:
 
  adb push su /system/xbin
 
  pm set-install-location 0
 
  adb install superuser.apk
 
  adb install rootexplorer.apk
 
  對于一個一直以root權限運行的系統來說,上面第一步似乎有些多余,只是習慣性的傳了一個,創維的廣告一般都在開機時出現,那么它的原理應該是后臺有一個守護服務,聯網后不斷的連接遠程服務器,如果有更新則下載并替換電視的開機界面。
 
  安卓系統的開機界面存在兩個位置,開機畫面是一個zip文件,一個位置在/data/local/bootanimation.zip,另一個在/system/media/bootanimation.zip,開機后首先讀取第一個,如果第一個不存在或無法讀取,則載入第二個,那么我先來看看第一個:
 
  adb pull /data/local/bootanimation.zip
 
  下載后解壓,貓膩果然在這里:
 
  第二個位置里的畫面是安卓自帶的沒有被改變,這里順便說一說安卓系統開機畫
 
  面的格式,bootanimation.zip里面壓縮了一個文件夾和一個desc.txt文本文件,文件夾里可以是一張圖,也可以是一系列動態圖片以實現開機動畫,desc.txt用來告訴系統文件夾的名稱、內容和播放方式,比如:
 
  p 1 10 images
 
  p是一個分隔符,1表示播放一遍,10表示播放完了停頓10幀的時間,images則是文件夾的名稱。知道了這些之后,要去掉廣告,只需替換文件夾里的圖片
 
  為我們自己喜歡的,然后壓縮上傳,開機界面就會改變,或者直接刪除這個文件,系統會在/system/media/bootanimation.zip讀取默認開機界面。
 
  [童鞋,別高興的太早了]
 
  事情沒那么簡單,前面說了,創維廣告是有守護進程的,你按上面說的做,過幾天廣告還會被自動下載的,ps進程列表發現,有個叫skyupdate的東東,不用問,一定在/system/app下有個叫skyupdate.apk的東西,有人說了,既然root了,把它刪了不就完了?是滴,我確實這樣做了,不過過了兩天它又出現了(我可以罵人嗎?),這TMD守護進程居然也有一個守護進程。
 
  所以,還得靠萬惡的sniffer,嗅探出該死的廣告服務器地址,把它屏蔽掉,才能一了百了。
 
  安卓實際就是linux,那么自然有強大的tcpdump:
 
  uid=0 gid=0@android:/ # tcpdump host 192.168.0.100 and not 192.168.0.103
 
  上面的192.168.0.100是電視機的ip,192.168.0.103是運行adb的本機ip,最好剛開機,什么也別運行就開始嗅探,這樣可以避免與其他聯網程序混淆:
 
  貓膩被揪到了,利用強大的iptables,寫個簡單的shell:
 
  #! /system/bin/sh
 
  iptables -I INPUT -s 223.6.253.51 -j DROP
 
  iptables -I OUTPUT -s 223.6.253.51 -j DROP
 
  保存為adblock.sh,放在/system/etc下,賦予權限:
 
  uid=0 gid=0@android:/system/etc # sh adblock.sh
 
  uid=0 gid=0@android:/system/etc # chmod 777 adblock.sh
 
  [還沒完呢,麻煩事還有]
 
  現在的問題是,如何讓這段腳本開機自動運行,有人說了,有三種方法:
 
  1 修改init.rc,添加一行service即可。
 
  說這話的人純屬沒長腦子,init.rc只是ramdisk.img在內存中的鏡像而已,每次修改后開機會重新復原,唯一改動的辦法是修改固件后重新刷機,你想讓電視變磚嗎?
 
  2 修改/system/etc/install-recovery.sh,把adblock.sh的內容添加進去。
 
  這招在其他安卓平板上可行,可TMD創維在init.rc里把install-recovery.sh給注釋掉了,此路不通也。
 
  3 把shell腳本放在/system/etc/init.d目錄下,開機就會自動運行。
 
  你以為這是三星手機啊!這個目錄根本就不存在!這個功能早就被創維扣掉了。
 
  咋辦?只有兩個辦法了:
 
  方法一:這個簡單,啟用路由器自帶的防火墻,把這嗅探出的ip加入屏蔽規則就成了。
 
  方法二:自己寫一個app,用來調用adblock.sh,把它做成開機自動運行。
 
  由于最近懶得要死,所以我最后選擇了方法一,但方法二的代碼我也給出一段,雖然沒測試,不過估計沒啥大問題:
 
  Runtime runtime = Runtime.getRuntime();
 
  Process proc = runtime.exec(“./system/etc/adblock.sh”);
 
  try {
 
  if (proc.waitFor() != 0) {
 
  System.err.println( proc.exitValue());
 
  }
 
  } catch (InterruptedException e) {
 
  System.err.println(e);
 
  }
 
  在app的AndroidManifest.xml的application標簽內加入:
 
  <receiver android:enabled="true" android:name=".BootBroadcastReceiver"
 
  android:permission="android.permission.RECEIVE_BOOT_COMPLETED">
 
  <intent-filter>
 
  <action android:name="android.intent.action.BOOT_COMPLETED" />
 
  <category android:name="android.intent.category.DEFAULT" />
 
  </intent-filter>
 
  </receiver>
 
  添加如下權限:
 
  <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
 
  再添加一個BootBroadcastReceiver類:
 
  import android.content.BroadcastReceiver;
 
  import android.content.Context;
 
  import android.content.Intent;
 
  public class BootBroadcastReceiver extends BroadcastReceiver {
 
  static final String ACTION = "android.intent.action.BOOT_COMPLETED";
 
  @Override
 
  public void onReceive(Context context, Intent intent) {
 
  if (intent.getAction().equals(ACTION)) {
 
  Intent mainActivityIntent = new Intent(context, MyActivity.class);
 
  mainActivityIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
 
  context.startActivity(mainActivityIntent);
 
  }
 
  }
 
  }
 
  各位自己去試吧,我是懶得再研究下去了。
 
  [結束]
 
  用了一周,開機界面一直沒變過,看來是成功了,我又裝了一大堆的app,現在電視的界面已經和平板沒多大區別了.
 
  [補充]
 
  經過我賣電視機的遠方親戚的同意,對其店里的所有創維智能電視進行檢測,全部都可以用root權限遠程登錄,也就是說,一臺筆記本可以輕易入侵同一無線網內的所有電視機,看來,電視病毒泛濫傳播的時代已經不遠,電視黑客也即將出現,日后還有手表、洗衣機、空調、音響……一切皆是智能,一切皆可入侵,下圖中所現的場景,也許會成為現實

上一篇:智能無懼挑戰 山石網科轟動RSA2015

下一篇:Gartner:2013年全球安全軟件市場增長4.9%