、組件名提取模塊、信息匹配模塊及數(shù)據(jù)庫;
所述APP程序識(shí)別獲取模塊用于讀取待檢測(cè)的Android APP程序包,并判斷待檢測(cè)的Android APP程序包的有效性;
所述APP解析模塊用于對(duì)Android APP程序包進(jìn)行解析并提取Androidmainfest.xml文件和classes, dex文件;
所述組件名提取模塊用于從Androidmainfest.xml文件中獲取注冊(cè)組件列表名及從classes, dex文件中獲取聲明組件列表名;
所述信息匹配模塊用于比較所述注冊(cè)組件列表名與所述聲明組件列表名,并將比較結(jié)果存入數(shù)據(jù)庫中;
所述數(shù)據(jù)庫用于存儲(chǔ)識(shí)別信息及結(jié)果;
所述方法包括如下步驟:
(1)APP程序識(shí)別獲取模塊獲取待識(shí)別的AndroidAPP程序包;
(2)APP解析模塊對(duì)待識(shí)別的Android APP程序包進(jìn)行解析,并從解析文件中提取Androidmainfest.xml 文件和 classes, dex 文件; (3)組件名提取模塊從Androidmainfest.xml文件中獲取注冊(cè)組件列表名及從classes, dex文件中獲取聲明組件列表名;
(4)信息匹配模塊比較組件名提取模塊提取的注冊(cè)組件列表名及聲明組件列表名,如注冊(cè)組件列表名及聲明組件列表名相同,則確認(rèn)Android APP程序包沒有加固,如注冊(cè)組件列表名及聲明組件列表名不同,則確認(rèn)Android APP程序包被加固;
(5)信息匹配模塊將識(shí)別信息及比較結(jié)果存入數(shù)據(jù)庫中。
[0022]具體的,所述識(shí)別信息包括Android APP程序包、提取的Androidmainfest.xml文件和classes, dex文件、提取的注冊(cè)組件列表名及聲明組件列表名。
[0023]如圖2所示,根據(jù)上述識(shí)別Android APP加固的方法,本發(fā)明還提出了一種APP加固檢測(cè)流程,具體如下:
(1)APP程序識(shí)別獲取模塊獲取待檢測(cè)的Andrο i d APP程序包,并判定待檢測(cè)的Android APP程序包是否為有效文件,如果待檢測(cè)的Android APP程序包為非有效文件,則直接轉(zhuǎn)入步驟(7),即結(jié)束檢測(cè)并將檢測(cè)結(jié)果保存到數(shù)據(jù)庫;否則進(jìn)行步驟(2);
(2)APP程序識(shí)別獲取模塊判斷待檢測(cè)的Android APP程序包是否加密,如已經(jīng)加密,則直接準(zhǔn)入步驟(7);否則進(jìn)行步驟(3);
(3)APP解析模塊對(duì)待識(shí)別的Android APP程序包進(jìn)行解析,并從解析文件中提取Androidmainfest.xml 文件和 classes, dex 文件;
(4)APP解析模塊解析Androidmainfeast.xml文件和classes, dex文件,并判斷Androidmainfeast.xml 文件和 classes, dex 文件是否加密,如果 Androidmainfeast.xml 文件和classes, dex文件經(jīng)過加密,則直接進(jìn)入步驟(8),否則進(jìn)行步驟(5);
(5)組件名提取模塊從Androidmainfest.xml文件中獲取注冊(cè)組件列表名及從classes, dex文件中獲取聲明組件列表名;
(6)信息匹配模塊比較組件名提取模塊提取的注冊(cè)組件列表名及聲明組件列表名,如注冊(cè)組件列表名及聲明組件列表名相同,則確認(rèn)Android APP程序包沒有加固,如注冊(cè)組件列表名及聲明組件列表名不同,則確認(rèn)Android APP程序包被加固;
(7)信息匹配模塊確認(rèn)待檢測(cè)的AndroidAPP程序包加固并生成的檢測(cè)結(jié)果;
(8 )結(jié)束檢測(cè),信息匹配模塊將識(shí)別信息及比較結(jié)果存入數(shù)據(jù)庫中。
[0024]另外,盡管已經(jīng)說明性地對(duì)本發(fā)明的優(yōu)選實(shí)施例僅了描述,但是對(duì)于本領(lǐng)域的技術(shù)人員而言,在不偏離所附權(quán)利要求的范圍和宗旨的前提下,可以有各種修改、改進(jìn)和替換。
【主權(quán)項(xiàng)】
1.一種識(shí)別Android APP加固的方法,其特征在于: 實(shí)現(xiàn)該方法的系統(tǒng)為一監(jiān)控解析單元,所述監(jiān)控解析單元包括APP程序識(shí)別獲取模塊、APP解析模塊、組件名提取模塊、信息匹配模塊及數(shù)據(jù)庫; 所述APP程序識(shí)別獲取模塊用于讀取待檢測(cè)的Android APP程序包,并判斷待檢測(cè)的Android APP程序包的有效性; 所述APP解析模塊用于對(duì)Android APP程序包進(jìn)行解析并提取Androidmainfest.xml文件和classes, dex文件; 所述組件名提取模塊用于從Androidmainfest.xml文件中獲取注冊(cè)組件列表名及從classes, dex文件中獲取聲明組件列表名; 所述信息匹配模塊用于比較所述注冊(cè)組件列表名與所述聲明組件列表名,并將比較結(jié)果存入數(shù)據(jù)庫中; 所述數(shù)據(jù)庫用于存儲(chǔ)識(shí)別信息及結(jié)果; 所述方法包括如下步驟: (1)APP程序識(shí)別獲取模塊獲取待識(shí)別的AndroidAPP程序包; (2)APP解析模塊對(duì)待識(shí)別的Android APP程序包進(jìn)行解析,并從解析文件中提取Androidmainfest.xml 文件和 classes, dex 文件; (3)組件名提取模塊從Androidmainfest.xml文件中獲取注冊(cè)組件列表名及從classes, dex文件中獲取聲明組件列表名; (4)信息匹配模塊比較組件名提取模塊提取的注冊(cè)組件列表名及聲明組件列表名,如注冊(cè)組件列表名及聲明組件列表名相同,則確認(rèn)Android APP程序包沒有加固,如注冊(cè)組件列表名及聲明組件列表名不同,則確認(rèn)Android APP程序包被加固; (5)信息匹配模塊將識(shí)別信息及比較結(jié)果存入數(shù)據(jù)庫中。2.如權(quán)利要求1所述的一種識(shí)別AndroidAPP加固的方法,其特征在于:所述識(shí)別信息包括Android APP程序包、提取的Androidmainfest.xml文件和classes, dex文件、提取的注冊(cè)組件列表名及聲明組件列表名。3.一種識(shí)別Android APP加固的檢測(cè)方法,具體如下: (1)APP程序識(shí)別獲取模塊獲取待檢測(cè)的Andrο i d APP程序包,并判定待檢測(cè)的Android APP程序包是否為有效文件,如果待檢測(cè)的Android APP程序包為非有效文件,則直接轉(zhuǎn)入步驟(7),即結(jié)束檢測(cè)并將檢測(cè)結(jié)果保存到數(shù)據(jù)庫;否則進(jìn)行步驟(2); (2)APP程序識(shí)別獲取模塊判斷待檢測(cè)的Android APP程序包是否加密,如已經(jīng)加密,則直接準(zhǔn)入步驟(7);否則進(jìn)行步驟(3); (3)APP解析模塊對(duì)待識(shí)別的Android APP程序包進(jìn)行解析,并從解析文件中提取Androidmainfest.xml 文件和 classes, dex 文件; (4)APP解析模塊解析Androidmainfeast.xml文件和classes, dex文件,并判斷Androidmainfeast.xml 文件和 classes, dex 文件是否加密,如果 Androidmainfeast.xml 文件和classes, dex文件經(jīng)過加密,則直接進(jìn)入步驟(8),否則進(jìn)行步驟(5); (5)組件名提取模塊從Androidmainfest.xml文件中獲取注冊(cè)組件列表名及從classes, dex文件中獲取聲明組件列表名; (6)信息匹配模塊比較組件名提取模塊提取的注冊(cè)組件列表名及聲明組件列表名,如注冊(cè)組件列表名及聲明組件列表名相同,則確認(rèn)Android APP程序包沒有加固,如注冊(cè)組件列表名及聲明組件列表名不同,則確認(rèn)Android APP程序包被加固; (7)信息匹配模塊確認(rèn)待檢測(cè)的Android APP程序包加固并生成的檢測(cè)結(jié)果; (8 )結(jié)束檢測(cè),信息匹配模塊將識(shí)別信息及比較結(jié)果存入數(shù)據(jù)庫中。
【專利摘要】一種識(shí)別Android?APP加固的方法,該方法為,獲取待檢測(cè)APP,啟動(dòng)檢測(cè)程序;解析APP;獲取APP內(nèi)Androidmainfest.xml和classes.dex文件進(jìn)行解析;獲取Androidmainfest.xml中的注冊(cè)組件列表和classes.dex中的聲明組件列表進(jìn)行匹配;若注冊(cè)組件列表不能在聲明組件列表中找到對(duì)應(yīng)項(xiàng),則確認(rèn)APP加固;導(dǎo)出檢測(cè)結(jié)果。通過本發(fā)明的靜態(tài)分析方法,能夠自動(dòng)化判定APP的加固,彌補(bǔ)人工識(shí)別的所造成的誤判和時(shí)間成本,在對(duì)抗代碼混淆,敏感信息加密方面有顯著的效果。
【IPC分類】G06F21/14
【公開號(hào)】CN105205358
【申請(qǐng)?zhí)枴緾N201510522321
【發(fā)明人】安亞龍
【申請(qǐng)人】中科信息安全共性技術(shù)國(guó)家工程研究中心有限公司
【公開日】2015年12月30日
【申請(qǐng)日】2015年9月21日