国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

查看: 2936|回復(fù): 0
打印 上一主題 下一主題

聯(lián)璧港:如何自動識別APK中使用了哪些SDK

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2017-10-12 13:01:37 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
關(guān)鍵詞: APK , SDK , 聯(lián)璧港
一、準備工作
由于后端技術(shù)我熟悉的是JAVA,所以這個程序我是使用JAVA寫的。寫工具之前需要先準備以下工具:
SpringMVC:Spring MVC框架是有一個MVC框架,通過實現(xiàn)Model-View-Controller模式來很好地將數(shù)據(jù)、業(yè)務(wù)與展現(xiàn)進行分離。
Hibernate:是一個基于元數(shù)據(jù)的輕量級的ORM框架。
Mysql:用來存儲APP信息以及第三方SDK信息
APKTool:反編譯APK的利器
HttpClient:是用來提供高效的、最新的、功能豐富的支持 HTTP 協(xié)議的客戶端編程工具包,并且它支持 HTTP 協(xié)議最新的版本和建議。
HTMLparser:HTML解析工具
SAX:SAX(simple API for XML)是一種XML解析的替代方法。相比于DOM,SAX是一種速度更快,更有效的方法。
二、設(shè)計思路
以下只介紹這個工具的設(shè)計思路,沒有貼具體代碼,思路清晰以后寫代碼很簡單。
1. 數(shù)據(jù)庫設(shè)計
我們采集數(shù)據(jù)就需要設(shè)計數(shù)據(jù)庫表,這個很簡單,我設(shè)計了6個表:
tools_app_category:保存APP的分類信息
tools_app_info:保存APP基本信息
tools_app_packages:保存APP包名信息及SDK信息
tools_app_packages_relat:APP和第三方SDK關(guān)聯(lián)表
tools_app_perm:APP權(quán)限信息表
tools_app_perm_relat:APP與權(quán)限的關(guān)聯(lián)表
2. 獲取APP安裝包
各大應(yīng)用市場都有TOP xx應(yīng)用列表,這些APP一般是用戶使用比較多APP,這些APP使用的第三方SDK一般是比較成熟的SDK,值得我們是參考。
我選擇從小米應(yīng)用市場下載熱門APP作為數(shù)據(jù)分析樣本,選擇應(yīng)用排行靠前的1000余款A(yù)PK,我只選擇分析應(yīng)用類APP,把游戲類的過濾掉了。

       應(yīng)用排行榜界面的url格式是這種:http://app.mi.com/topList?page=xx,使用HttpClient獲取這些頁面網(wǎng)頁源碼,再使用HTMLparser解析網(wǎng)頁源碼獲取每一個APP的詳情url地址,APP詳情地址的格式是這種:http://app.mi.com/details?id=app包名,然后在APP詳情頁面解析出APK的下載地址并下載該APK。除了APK的下載地址以外還可以通過這個界面獲取APP的其他基本信息,如有需要可以保存到數(shù)據(jù)庫,我的是存在tools_app_info表中。
3. 反編譯APK下載完APK以后要做的工作就是反編譯APK了,這里我們就要用到搶到的APKTool。這一步其實很簡單,大家知道JAVA里面可以直接運行腳本命令的,使用一下命令即可反編譯APK。
Runtime.getRuntime().exec("java -jar apktool.jar d -f"+apkPath+" -o "+outPath)
這里可能有人會問,反編譯出來的是smali文件,有什么用處呢?反編譯以后有兩部分內(nèi)容對我們有用smali為前綴的目錄以及AndroidManifest.xml。通過AndroidManifest.xml可以獲取apk的基本信息,如有需要可以使用XML解析工具解析,我這里是使用SAX計息AndroidManifest.xml并且獲取每個APP的進程數(shù)、廣播接收器的數(shù)量以及權(quán)限等信息。以smali為前綴的目錄是我們主要使用的數(shù)據(jù)。大家知道每一個SDK的包名基本上是唯一的,很少有重復(fù),而java文件的包名和目錄名是有對應(yīng)關(guān)系的,通過獲取smali文件所在的路徑即可知道這個APK的所有包名。就這樣把APK的包名全部收集起來存放到數(shù)據(jù)庫中備用。這里大家要注意的是在收集包名的時候可以做一下初步篩選,把一些沒有用的或者是APK本身的包名直接過濾,可提高采集效率并且避免采集一些垃圾數(shù)據(jù)。把這些信息存在tools_app_packages表中。
4.關(guān)聯(lián)SDK這一步真的是苦力活,是一不干著想吐的活,是這個SDK采集過程中唯一需要人工完成的。上一步我們已經(jīng)搜集了所有APP使用的包名,這一步我們需要檢查這些包名,如果是非第三方SDK則刪掉,如果是SDK則備注SDK名稱以及備注,方便后續(xù)查找。
5.前端界面后臺已經(jīng)搭建好了,大家可以根據(jù)需要稍微完善,比如我們已經(jīng)記錄了每個app的下載地址,可以定時更新。現(xiàn)在我們這里要做的就是開發(fā)一個前端界面,用于可視化操作查詢,這一部分沒什么講的,就是寫接口調(diào)接口而已,直接上效果圖:
搜索界面
聯(lián)璧港提供免費API,SDK平臺。
官網(wǎng):http://lbp.lincomb.com/

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 在线亚视频 | 亚洲美女影院 | 亚欧乱色视频大全 | 天天干天天操天天爽 | 国产精品15p | 在线观看免费视频网站色 | 欧美成人午夜视频免看 | 久久精品久久久 | 毛片站 | 四虎影院永久网站 | 欧美视频一区在线观看 | 狠狠色狠狠色综合日日小蛇 | 国产一区二区在线免费观看 | 国产午夜视频在线 | 精品网站 | 色丁香综合 | 狠狠ady精品 | 男人天堂久久 | 毛片网站在线播放 | 久久精品六 | 亚洲人成影院在线高清 | 噜噜噜久久 | 五月婷婷久久综合 | 国产精品国产精品国产三级普 | 日韩免费视频一区二区 | 欧美综合视频在线观看 | 久久久久久综合对白国产 | 毛片大片免费看 | 免费福利片 | 国产精品亚洲精品 | 中文字幕日韩一区二区 | 成人a毛片 | 91最懂男人的午夜社区 | 高清视频在线播放ww | 好色999| 亚洲日韩天堂 | 91精品欧美一区二区三区 | 全黄a免费一级毛片人人爱 全国最大色成免费网站 | 亚洲视频在线网站 | 亚色中文 | 91视频国内|