# 文件系統,第 8 部分:從 Android 設備中刪除預裝的惡意軟件
> 原文:<https://github.com/angrave/SystemProgramming/wiki/File-System%2C-Part-8%3A-Removing-preinstalled-malware-from-an-Android-device>
案例研究:從 Android 設備中刪除惡意軟件
本節使用此 wikibook 中討論的文件系統功能和系統編程工具來查找和刪除 Android 平板電腦中不需要的惡意軟件。
免責聲明。在嘗試修改您的平板電腦之前,請確保您的設備上的任何有價值的信息都已備份。不推薦修改系統設置和系統文件。嘗試使用此 CASU STUDU GUIDE 修改設備可能會導致您的數據分片分享,丟失或損壞您的數據。您的平板電腦可能會不正確地停止或暫停功能。由您自己承擔此案例研究的風險。作者不承擔任何責任,也不對本案例研究中包含的這些說明的正確性或完整性做出任何保證。作者不承擔任何責任,也不對任何軟件(包括本指南中描述或鏈接的外部第三方軟件)提供任何擔保。
## 背景
從亞馬遜購買的 E97 Android 平板電腦產生了一些奇怪的怪癖。最值得注意的是,瀏覽器應用程序總是在 gotoamazing.com 上打開一個網站,而不是在應用程序首選項中設置的主頁(稱為瀏覽器“劫持”)。我們是否可以使用此 wikibook 中的知識來了解這種不受歡迎的行為是如何發生的,并從設備中刪除不需要的預安裝應用程序?
## 使用的工具
雖然可以使用安裝在遠程 USB 連接的計算機上的 Android 開發人員工具,但本指南僅使用平板電腦上的系統工具。安裝了以下應用程序 -
* Malwarebytes - 免費的漏洞和惡意軟件工具。
* 終端模擬器 - 一個簡單的終端窗口,可以讓我們在平板電腦上訪問 shell。
* KingRoot - 使用 Linux 內核中的已知漏洞獲取 root 訪問權限的工具。
如果能夠突破 Android 安全模型,安裝任何應用程序都可能允許執行任意代碼。在上面提到的應用程序中,KingRoot 是最極端的例子,因為它利用系統漏洞為我們的目的獲得 root 訪問權限。然而,在這樣做的同時,也可能是這些,KingRoot 是最值得安裝的工具 - 我們相信它不會安裝任何自己的惡意軟件。一個更安全的替代方案是使用 [https://github.com/android-rooting-tools/](https://github.com/android-rooting-tools/)
## 終端概述
最有用的命令是`su grep mount`和 Android 的包管理器工具`pm`。
* grep -s abc * _/_ (在當前目錄和直接子目錄中搜索`abc`)
* su(又名“切換用戶”成為 root - 需要 root 設備)
* mount -o rw,remount / system(允許/系統分區可寫)
* pm disable(又名'包管理器'禁用 Android 應用包)
## 文件系統布局概述
在運行 Android 4.4.2 的特定平板電腦上,預安裝的應用程序無法修改且位于
```
/system/app/
/system/priv-app/
```
和首選項和應用程序數據存儲在`/data`分區中每個應用程序通常打包在一個 apk 文件中,該文件本質上是一個 zip 文件。安裝應用程序時,代碼將擴展為可由 Android 虛擬機直接解析的文件。二進制代碼(至少對于此特定虛擬機)具有 odex 擴展名。
我們可以在已安裝的系統應用程序的代碼中搜索字符串'gotoamazing'
```
grep -s gotoamazing /system/app/* /system/priv-app/*
```
這沒有找到任何東西;看來這個字符串沒有硬編碼到給定系統應用程序的源代碼中。驗證我們可以找到
我們來檢查所有已安裝應用的數據區域
```
cd /data/data
grep -s gotoamazing * */* */*/*
```
產生了以下內容
```
data/com.android.browser/shared_prefs/xbservice.xml: <string name="URL">http://www.gotoamazing...
```
-s 選項“silent option”阻止 grep 抱怨嘗試 grep 目錄和其他無效文件。注意我們也可以使用-r 來遞歸搜索目錄,但是使用文件通配符(shell 的通配符擴展*)很有趣。
現在我們到了某個地方!看起來這個字符串是應用程序'com.android.browser'的一部分,但讓我們也找出哪個應用程序二進制代碼打開'xbservice'首選項。也許這個不受歡迎的服務隱藏在另一個應用程序中,并設法秘密加載作為瀏覽器的擴展?
讓我們查找包含 xbservice 的任何文件。這次我們將遞歸搜索包含'app'的/ system 目錄
```
grep -r -s xbservice /system/*app*
Binary file /system/app/Browser.odex matches
```
最后 - 看來工廠瀏覽器出廠時預先安裝了主頁劫持。我們卸載吧。為此,讓我們成為根。
`$ su
## 下午列出包-s
`Android 的包管理器有很多命令和選項。以上示例列出了所有當前安裝的系統應用程序我們可以使用以下命令卸載瀏覽器應用程序
```
pm disable com.android.browser
pm uninstall com.android.browser
```
使用`pm list packages`可以列出所有已安裝的軟件包(使用`-s`選項查看系統軟件包)。我們禁用了以下系統應用。當然,沒有真正保證我們成功刪除了所有不需要的軟件,或者其中一個是誤報。因此,我們不建議在這樣的平板電腦上保留敏感信息。
* com.android.browser
* com.adups.fota.sysoper
* elink.com
* com.google.android.apps.cloudprint
* com.mediatek.CrashService
* com.get.google 應用
* com.adups.fota(一個可以在將來安裝任意項目的無線包)。
* com.mediatek.appguide.plugin
您可能只需使用`pm enable package-name`或`pm install`以及/ system / app 或/ system / priv-app 中的相關.apk 文件重新啟用軟件包
- UIUC CS241 系統編程中文講義
- 0. 簡介
- #Informal 詞匯表
- #Piazza:何時以及如何尋求幫助
- 編程技巧,第 1 部分
- 系統編程短篇小說和歌曲
- 1.學習 C
- C 編程,第 1 部分:簡介
- C 編程,第 2 部分:文本輸入和輸出
- C 編程,第 3 部分:常見問題
- C 編程,第 4 部分:字符串和結構
- C 編程,第 5 部分:調試
- C 編程,復習題
- 2.進程
- 進程,第 1 部分:簡介
- 分叉,第 1 部分:簡介
- 分叉,第 2 部分:Fork,Exec,等等
- 進程控制,第 1 部分:使用信號等待宏
- 進程復習題
- 3.內存和分配器
- 內存,第 1 部分:堆內存簡介
- 內存,第 2 部分:實現內存分配器
- 內存,第 3 部分:粉碎堆棧示例
- 內存復習題
- 4.介紹 Pthreads
- Pthreads,第 1 部分:簡介
- Pthreads,第 2 部分:實踐中的用法
- Pthreads,第 3 部分:并行問題(獎金)
- Pthread 復習題
- 5.同步
- 同步,第 1 部分:互斥鎖
- 同步,第 2 部分:計算信號量
- 同步,第 3 部分:使用互斥鎖和信號量
- 同步,第 4 部分:臨界區問題
- 同步,第 5 部分:條件變量
- 同步,第 6 部分:實現障礙
- 同步,第 7 部分:讀者編寫器問題
- 同步,第 8 部分:環形緩沖區示例
- 同步復習題
- 6.死鎖
- 死鎖,第 1 部分:資源分配圖
- 死鎖,第 2 部分:死鎖條件
- 死鎖,第 3 部分:餐飲哲學家
- 死鎖復習題
- 7.進程間通信&amp;調度
- 虛擬內存,第 1 部分:虛擬內存簡介
- 管道,第 1 部分:管道介紹
- 管道,第 2 部分:管道編程秘密
- 文件,第 1 部分:使用文件
- 調度,第 1 部分:調度過程
- 調度,第 2 部分:調度過程:算法
- IPC 復習題
- 8.網絡
- POSIX,第 1 部分:錯誤處理
- 網絡,第 1 部分:簡介
- 網絡,第 2 部分:使用 getaddrinfo
- 網絡,第 3 部分:構建一個簡單的 TCP 客戶端
- 網絡,第 4 部分:構建一個簡單的 TCP 服務器
- 網絡,第 5 部分:關閉端口,重用端口和其他技巧
- 網絡,第 6 部分:創建 UDP 服務器
- 網絡,第 7 部分:非阻塞 I O,select()和 epoll
- RPC,第 1 部分:遠程過程調用簡介
- 網絡復習題
- 9.文件系統
- 文件系統,第 1 部分:簡介
- 文件系統,第 2 部分:文件是 inode(其他一切只是數據...)
- 文件系統,第 3 部分:權限
- 文件系統,第 4 部分:使用目錄
- 文件系統,第 5 部分:虛擬文件系統
- 文件系統,第 6 部分:內存映射文件和共享內存
- 文件系統,第 7 部分:可擴展且可靠的文件系統
- 文件系統,第 8 部分:從 Android 設備中刪除預裝的惡意軟件
- 文件系統,第 9 部分:磁盤塊示例
- 文件系統復習題
- 10.信號
- 過程控制,第 1 部分:使用信號等待宏
- 信號,第 2 部分:待處理的信號和信號掩碼
- 信號,第 3 部分:提高信號
- 信號,第 4 部分:信號
- 信號復習題
- 考試練習題
- 考試主題
- C 編程:復習題
- 多線程編程:復習題
- 同步概念:復習題
- 記憶:復習題
- 管道:復習題
- 文件系統:復習題
- 網絡:復習題
- 信號:復習題
- 系統編程笑話