2014年11月27日 星期四

垃圾軟體分析實例 : CPU Booster

近日看到有人詢問想了解一個叫做 CPU Booster 的軟體是如何做到讓手機便流暢。於是我點
了連結到 Google Play 去看「 CPU Booster

介紹中完全沒有提到 Root required 這類的字樣,根據我對於 android 的了解,要讓 CPU Boost 或者 Overclock 勢必要有 root , 透過 native 、 shell  或修改系統設定檔才有辦法達到。所以第一個想法就是:他是騙人的

之前有一款「搖到充電」也是騙人的垃圾軟體,加上想了解這個程式到底有沒有做什麼不該做的事情,於是就將他拆解開來分析。

※ 由於 decompile 這個動作具有法律上的爭議性,因此這邊跳過這些步驟。




https://play.google.com/store/apps/details?id=com.faygroup.cpubooster

首先觀察 AndroidManifest.xml ,首先要求的權限有:
  1.  INTERNET
  2.  ACCESS_WIFI_STATE
  3.  ACCESS_NETWORK_STATE
  4.  WAKE_LOCK
  5.  WRITE_EXTERNAL_STORAGE
  6.  RECEIVE_BOOT_COMPLETED
  7.  GET_TASKS
  8.  READ_PHONE_STATE
  9.  SYSTEM_ALERT_WINDOW

1~3 : 因為有提到使用了廣告,通常廣告需要網路連線,所以前三個還OK
4 : 如果說要透過讓手機保持清醒,去 "全速" 跑程式的話,免強還可以
5 : 程式本身不應該會用到寫入 SD 卡權限,但考慮到廣告有可能要 cache,勉強可以
6 : 如果要讓程式開機自動啟動,也還可以,但比較大的原因是要啟動廣告吧?
7 : 這就很詭異了,為什麼需要得知啟動了那些 app ? 試想蒐集個資嗎 ?
8 : 這也很詭異,CPU Booster 真的不需要取得手機資料,可能也是廣告需要統計資料吧?
9 : 也是很奇怪的,猜測可能是想出現全螢幕遮蔽式的廣告,或者要做透明 overlay 才會用到這個

由此看出,這些權限幾乎都是為了廣告而設定,還有得有取得個資的疑慮,實在很怪異。

接著看到宣告的 Service 和 Activity :
  1. com.faygroup.cpubooster.MainActivity
  2. com.startapp.android.publish.list3d.List3DActivity
  3. com.startapp.android.publish.AppWallActivity
宣告了三個 Activity ,沒有 Service。

其中 MainActivtiy 是程式點選時的進入點,也就是啟動 App 的時候是跑這個 Activity,可以注意到的是另外兩個 Activity 都是 startapp 的東西,這個是廣告工具。所以實際上這個程式也只有用到 MainActivity。

接著我們將 dex 轉換好的 jar 檔案用 JD-GUI 打開,可以看到主要有三個 package
  1. com.faygroup.cpubooster
  2. com.startapp.android.publish
  3. com.tapcontext
其中 2,3 兩個都是廣告工具, StartApp 上面有連結了,TapConext 的 FB 專頁

而主要的 cupbooster 底下只有三個有用的 Class ( BuildConfig 和 R 都是 android 製作時產生的東西 ),分別是: AppRater , MainActivity , PreferenceHelper。

AppRater 是會跳出一個要你去評分的對話框。
PreferenceHelper 只有兩個功能:讀取設定、寫入設定。Code

剩下的就是 MainActivity,先參考整理過的 MainActivity Code

寫過 Android App 應該知道,一個 Activity 啟動的時候會先執行的是 onCreate,因此先看 onCreate 的內容。( 其實其他 Method 也都只是當 Activity 有事件的時候呼叫 StartApp 的事件而已 )

onCreate 裡面初始化了一些設定包含StartApp 這個廣告工具,還有啟動 AppRater 這個對話框,除此之外「沒有啟動其他東西了」。

接著記得,這個程式要按下中間的按鈕後,開始執行 CPU Booster 吧,因此看到 this.btn.setOnClickListener 的部分,可以發現到.....

他根本只有幫你把按鈕的圖片換過來而已!!!

    他根本只有幫你把按鈕的圖片換過來而已!!!

        他根本只有幫你把按鈕的圖片換過來而已!!!

因為很重要,所以講三次,底下是圖片的名稱:

光是到這邊,幾乎就可確定這個程式是唬人的,而且充斥著廣告,更別說兩個廣告工具裡面包含了一些蒐集個資的內容。


回到 CPU Booster 這個主題,上面提到如果真的要讓 CPU 加速,基本上一定需要 root,在沒 root 的狀況下,頂多就是清空記憶體,讓程式能使用的記憶體量隨時保持很高的狀態。

但絕對不是程式說明處提到的 Overclock 或者控制溫度這些方式。
 ( 更別說那個按鈕按下去其實什麼都沒做 )

沒有留言:

張貼留言