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

電子工程網(wǎng)

標(biāo)題: 聯(lián)璧港:如何自動(dòng)識(shí)別APK中使用了哪些SDK [打印本頁(yè)]

作者: 聯(lián)璧港    時(shí)間: 2017-10-12 13:01
標(biāo)題: 聯(lián)璧港:如何自動(dòng)識(shí)別APK中使用了哪些SDK
一、準(zhǔn)備工作
由于后端技術(shù)我熟悉的是JAVA,所以這個(gè)程序我是使用JAVA寫(xiě)的。寫(xiě)工具之前需要先準(zhǔn)備以下工具:
SpringMVC:Spring MVC框架是有一個(gè)MVC框架,通過(guò)實(shí)現(xiàn)Model-View-Controller模式來(lái)很好地將數(shù)據(jù)、業(yè)務(wù)與展現(xiàn)進(jìn)行分離。
Hibernate:是一個(gè)基于元數(shù)據(jù)的輕量級(jí)的ORM框架。
Mysql:用來(lái)存儲(chǔ)APP信息以及第三方SDK信息
APKTool:反編譯APK的利器
HttpClient:是用來(lái)提供高效的、最新的、功能豐富的支持 HTTP 協(xié)議的客戶端編程工具包,并且它支持 HTTP 協(xié)議最新的版本和建議。
HTMLparser:HTML解析工具
SAX:SAX(simple API for XML)是一種XML解析的替代方法。相比于DOM,SAX是一種速度更快,更有效的方法。
二、設(shè)計(jì)思路
以下只介紹這個(gè)工具的設(shè)計(jì)思路,沒(méi)有貼具體代碼,思路清晰以后寫(xiě)代碼很簡(jiǎn)單。
1. 數(shù)據(jù)庫(kù)設(shè)計(jì)
我們采集數(shù)據(jù)就需要設(shè)計(jì)數(shù)據(jù)庫(kù)表,這個(gè)很簡(jiǎn)單,我設(shè)計(jì)了6個(gè)表:
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)用市場(chǎng)都有TOP xx應(yīng)用列表,這些APP一般是用戶使用比較多APP,這些APP使用的第三方SDK一般是比較成熟的SDK,值得我們是參考。
我選擇從小米應(yīng)用市場(chǎng)下載熱門(mén)APP作為數(shù)據(jù)分析樣本,選擇應(yīng)用排行靠前的1000余款A(yù)PK,我只選擇分析應(yīng)用類APP,把游戲類的過(guò)濾掉了。

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






歡迎光臨 電子工程網(wǎng) (http://www.qingdxww.cn/) Powered by Discuz! X3.4
主站蜘蛛池模板: 国产成人精品日本亚洲专一区 | 国产成人久久综合二区 | 亚洲女人国产香蕉久久精品 | 久久久噜噜噜 | 成人在线免费播放 | 91精品成人福利在线播放 | 国产精品66 | 国产yw855.c免费观看网站 | 日韩欧美不卡一区二区三区 | 窝窝人体色 | 国产日韩精品一区二区在线观看 | 日韩久草视频 | 亚洲一区二区在线播放 | 99视频在线免费观看 | 精品中文字幕一区在线 | 最近日本中文字幕免费完整 | 杰罗德游戏在线观看完整版免费 | 伊人99在线观看 | 欧美黑寡妇高清一级在线观看 | 玖玖中文 | 欧美精品成人一区二区在线观看 | 久久国产精品亚洲va麻豆 | 丁香六月婷婷综合激情动漫 | 欧美成人 一区二区三区 | 国产一级毛片高清视频完整版 | 久久噜噜噜 | 亚洲一级黄色 | 久久99久久99 | 欧美一级日韩一级亚洲一级 | 精品国产欧美 | 亚洲黄色免费网站 | 97视频在线观看视频最新 | 九九久久精品 | 重口调教女虐女长篇小说 | 国产片a国产片免费看视频 国产片a | 色一情一伦一区二区三 | 国产一级高清视频免费看 | 久久五月天综合 | 国产精品久久久久毛片真精品 | 一 级 黄 色 片生活片 | 国产自产视频在线观看香蕉 |