Android系統掃描帶廣告應用的方法

來源:互聯網
上載者:User


聲明: 本文由( 魔豆先生 )原創編譯,轉載請保留連結: Android系統掃描帶廣告應用的方法

android上應用廣告檢測,廣告檢查,廣告掃描,廣告殺手,廣告外掛程式殺手的應用甚多,但是他們採用了什麼原理來進行的呢,今天進行深入剖析。

在反編譯帶廣告的apk的包後,會發下如下特徵:

1. manifest.xml檔案中有對各個activity的聲明,其中包含了廣告外掛程式的視窗;

2.廣告外掛程式是一個單獨的jar包,在混淆中,proguard.cfg檔案中必須對public的類和方法做相應的keep處理。

所以,在反編譯後的包裡面依然可以找到廣告外掛程式對應的包名。

針對上述跡象,對目前帶廣告檢測功能的應用進行實驗:

1.將待掃描的APK打包進廣告外掛程式,給“廣告掃描工具”進行掃描。

2.在manifest.xml中聲明一些廣告平台使用的activity。

LBE和360對廣告外掛程式的掃描結果不大一樣,LBE能掃描數來的相對多一些。

 

測試結果如下:

方法1能掃描出來。

方法2不能掃描出來。

 

所以,在此也打算用包名,類名匹配的方法來進行廣告外掛程式掃描。在具體的廣告外掛程式掃描方案是:

(1) 列出系統安裝的所有apk;

(2)列出每個apk使用的所有class;

(3)單個class與廣告外掛程式特徵庫進行匹配;

 

在android系統上

(1)擷取所有安裝的包的代碼:

PackageManager packagemgr= getPackageManager();

List<PackageInfo> packageList= packagemgr.getInstalledPackages( 0 ); count = packageList.size(); for ( int  i =  0 ;
i < count; i++) {
     PackageInfo pi = packageList.get(i);      if  (pi.versionName ==  null )          continue ;          //判斷該軟體包是否在/data/app目錄下
     File file =  new  File(  "/data/app/" 
pi.packageName + 
".apk" );      if (!file.exists())              systemInstalledApk++;     userInstalledApk ++;      /**       * 應用程式的名字       */     applicationName  = pi.applicationInfo.loadLabel(packagemgr).toString();         packageName = pi.packageName; }
(2)擷取單個package內所有的class:

try {
path = context.getPackageManager().getApplicationInfo(packageName, 0).sourceDir;// 獲得某個程式的APK路徑
} catch (NameNotFoundException e) {
e.printStackTrace();
}
try {
DexFile dexFile = new DexFile(path);// get dex file of APK
Enumeration<String> entries = dexFile.entries();
while (entries.hasMoreElements()) {// travel all classes
String className = (String) entries.nextElement();
}

} catch (IOException e) {
e.printStackTrace();
}

 

在PC端上:

實現實現上述兩點也容易,也不容易。

完全自己的程式的話,可以考慮解析class.dex檔案。這個涉及去瞭解dex檔案的格式,然後讀取響應的class內容。

如果僅僅是做一個自動化工具的話,可以考慮使用dexdump.exe程式去解析class.dex檔案。

剩下的工作可以使,C應用,MFC,Java,shell指令碼等等統統可以搞定。

 

剩下的一個問題就是廣告外掛程式特徵庫的收集,收集越全,掃描出來的廣告外掛程式就可以越準確。android廣告掃描 廣告攔截 相關原理和處理方式可以繼續查看相關博文,謝謝!

 

聲明: 本文由( 魔豆先生 )原創編譯,轉載請保留連結: Android系統掃描帶廣告應用的方法

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.