最近在部署一台新設備時,由於懶得翻牆用google下載軟件,由一次中了坑。百度搜索出來的這個《性能監視器 v2.0 漢化版》,安裝了之后,設備會時不時自動彈出廣告。反編譯分析了一下,的確就是這貨漢化做了流氓,大伙都為這貨送錢彈廣告。
首先,PerfMon是一個在安卓系統提供性能監測的浮動窗口的工具軟件,是xda.develop上一個chainfire的作者開發的,最后版本是1.21,2015年,大小只有110k。並不存在2.0版本。
那時國內的漢化版也是1.21版,大小也是110k。但是隨后就出了一個2.0的漢化版,大小卻變成了139k。明白人一看就知道八分了。
1.21及1.21漢化版,大小是110k,圖標是這樣的:
聲稱2.0漢化版,大小是138k,圖標卻變成了這樣的:
下面百度的搜索結果前三條:
這流氓漢化版和百度一起作惡不少。我查的是“PerfMon android”,不是搜索出googleplay,以及chainfire在xda上的貼,百度這搜索真讓人懷疑。
如果你安裝了這貨,你的設備就會每半分到一分鍾彈一次UnityAds廣告。
回到反編譯分析。
剛看androidmanifest.xml,就一身汗,偽2.0漢化版滿滿的惡意。
這是原版的
1 <?xml version="1.0" encoding="utf-8" standalone="no" ?> 2 - <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="eu.chainfire.perfmon" platformBuildVersionCode="15" platformBuildVersionName="4.0.4-1406430"> 3 <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" /> 4 <uses-permission android:name="android.permission.GET_TASKS" /> 5 - <application android:icon="@drawable/ic_launcher" android:label="@string/app_name"> 6 - <activity android:excludeFromRecents="true" android:label="@string/app_name" android:launchMode="singleInstance" android:name=".LaunchActivity" android:theme="@android:style/Theme.NoDisplay"> 7 - <intent-filter> 8 <action android:name="android.intent.action.MAIN" /> 9 <category android:name="android.intent.category.LAUNCHER" /> 10 </intent-filter> 11 </activity> 12 <service android:name=".PerfMonWindow" /> 13 </application> 14 </manifest>
這是偽2.0漢化版的
1 <?xml version="1.0" encoding="utf-8" standalone="no" ?> 2 - <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="nine.chainsystem.perfmon"> 3 <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" /> 4 <uses-permission android:name="android.permission.GET_TASKS" /> 5 <uses-permission android:name="android.permission.INTERNET" /> 6 <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 7 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 8 <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" /> 9 <uses-permission android:name="android.permission.READ_PHONE_STATE" /> 10 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 11 <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> 12 <uses-permission android:name="android.permission.WAKE_LOCK" /> 13 <uses-permission android:name="android.permission.DEVICE_POWER" /> 14 - <application android:icon="@drawable/ic_launcher" android:label="@string/app_name"> 15 - <activity android:excludeFromRecents="true" android:label="@string/app_name" android:launchMode="singleInstance" android:name="nine.chainsystem.perfmon.LaunchActivity" android:theme="@android:style/Theme.NoDisplay"> 16 - <intent-filter> 17 <action android:name="android.intent.action.MAIN" /> 18 <category android:name="android.intent.category.LAUNCHER" /> 19 </intent-filter> 20 </activity> 21 <service android:name="nine.chainsystem.perfmon.PerfMonWindow" /> 22 - <receiver android:exported="true" android:name="tom.ebook.uxbook.SdkReceiver"> 23 - <intent-filter> 24 <action android:name="android.intent.action.BOOT_COMPLETED" /> 25 <action android:name="android.intent.action.update_sdk" /> 26 <action android:name="com.android.alarmclock.ALARM_ALERT" /> 27 </intent-filter> 28 </receiver> 29 <service android:exported="true" android:name="tom.ebook.uxbook.NetWorkService" /> 30 <service android:exported="true" android:name="tom.ebook.uxbook.DownloadApkService" /> 31 </application> 32 </manifest>
大家清楚明白了。偽漢化版開了多少不必要的權限,網絡,定位,寫存儲這些都是為了調用UnityAds廣告接口。還要掛載文件系統!接收開機廣播寫着我會開機自啟動。軟件名也被重打包成了nine.chainsystem.perfmon。添加了廣播接收器,還有兩個網絡相關的服務,一個不用說就是UnityAds相關,另一個是自動更新,新添加的惡意代碼在tom.ebook.uxbook這個包。
原版無特殊權限,不訪問網絡。偽2.0漢化版則充滿着惡意。
再來看jar包
主包被改名,添加了一個服務包。主包雖然改了名,但是代碼不可能改,因為是混餚過的,並且混餚是一樣的。
再來看VirSCAN.org,http://r.virscan.org/report/02ed82737b021a8fb4927707ddd7cfad。國內一堆安全大廠都檢測不出問題,唯獨quickheal檢測出AdWare廣告插件。
眾觀大廠也是在做同樣狼輩為奸的流氓行為,各種流量推送捆綁全家桶等等之類,所以廣告插件是洗白的。只是UnityAds的彈廣告的方式更惡心。