• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    采用函數(shù)調(diào)用關系的注入型Android惡意應用檢測

    2015-03-07 05:40:49王歡來歡李國棟田達梁博
    西安交通大學學報 2015年10期
    關鍵詞:函數(shù)調(diào)用子圖調(diào)用

    王歡,來歡,李國棟,田達,梁博

    (1.西安工程大學服裝與設計藝術學院, 710048, 西安; 2.西安閻良國家航空高技術產(chǎn)業(yè)基地管理委員會, 710089, 西安; 3.西安交通大學網(wǎng)絡中心, 710049, 西安)

    ?

    采用函數(shù)調(diào)用關系的注入型Android惡意應用檢測

    王歡1,來歡2,李國棟3,田達2,梁博2

    (1.西安工程大學服裝與設計藝術學院, 710048, 西安; 2.西安閻良國家航空高技術產(chǎn)業(yè)基地管理委員會, 710089, 西安; 3.西安交通大學網(wǎng)絡中心, 710049, 西安)

    針對注入型Android惡意應用日益泛濫、傳統(tǒng)檢測方法依賴大量已知特征的問題,提出了采用函數(shù)調(diào)用關系的注入型Android惡意應用檢測方法。該方法無須依賴大量已知特征,僅通過分析注入型Android惡意應用的自身結(jié)構(gòu)特征即可實現(xiàn)對該類惡意應用的有效檢測,并能夠?qū)崿F(xiàn)對未知惡意代碼家族的識別。所提方法在smali代碼的基礎上構(gòu)建函數(shù)調(diào)用關系圖,并進一步進行子圖劃分,通過判定各子圖威脅度確定是否存在惡意行為。檢測過程無需動態(tài)行為分析輔助,因此分析檢測時間短、效率高。該方法不僅可以檢測出Android應用是否存在惡意行為,還可根據(jù)子圖威脅度確定包含惡意行為的具體代碼。經(jīng)過對1 260個Android惡意應用和1 000個正常應用的實驗分析發(fā)現(xiàn):所提方法能夠很好地檢測注入型Android惡意應用,當誤報率為8.90%的時候,檢測率達到95.94%,相對于主流Android惡意應用檢測系統(tǒng)Androguard,檢測效果有顯著提升。

    Android;惡意代碼;靜態(tài)分析;函數(shù)調(diào)用關系

    隨著智能手機的快速發(fā)展,Android操作系統(tǒng)成為當前最流行的移動終端平臺。IDC的統(tǒng)計數(shù)據(jù)顯示,2014年第4季度Android市場占有率達到76.6%[1]。Android系統(tǒng)的快速發(fā)展也伴隨著Android惡意應用的出現(xiàn),攻擊者為了更好地傳播Android惡意應用,會采用注入技術將惡意代碼重打包到當下流行的Android應用程序中,并通過第三方電子市場、Android應用程序分享論壇等途徑進行傳播。Zhou的研究結(jié)果表明,第三方電子市場上5%至13%的應用程序?qū)儆谧⑷胄虯ndroid惡意應用[2]。

    Android惡意代碼靜態(tài)檢測研究方面,文獻[3]基于API信息構(gòu)建Android惡意應用的檢測模型,取得了較好的檢測效果。Wu等提取Android應用程序中的權(quán)限、組件以及Intent等信息構(gòu)建特征向量,并利用k-均值算法建立惡意代碼檢測模型[4]。

    Android惡意代碼動態(tài)檢測研究方面,文獻[5-6]分別實現(xiàn)了動態(tài)行為監(jiān)控的沙盒系統(tǒng),可在不同層次監(jiān)控應用程序的運行行為。DroidScope系統(tǒng)則進一步重新構(gòu)建了Android系統(tǒng)與Dalvik虛擬機,實現(xiàn)了Android惡意代碼的動態(tài)檢測[7]。

    本文針對注入型Android惡意應用提出了基于函數(shù)調(diào)用關系的惡意代碼檢測方法。為了保證應用程序功能正常執(zhí)行,大部分注入型Android惡意應用通過注入的獨立組件執(zhí)行惡意行為,例如注入一個廣播接收器用于監(jiān)聽開機啟動事件,當手機重啟后,該廣播接收器便可被觸發(fā)用于執(zhí)行惡意行為。此種注入型Android惡意應用的特征使得惡意代碼部分與正常應用代碼之間在函數(shù)調(diào)用關系上聯(lián)系較弱。

    對于待檢測的Android應用程序,首先進行反編譯并在smali代碼級別構(gòu)建函數(shù)調(diào)用關系圖,在此基礎上將函數(shù)調(diào)用關系圖進一步劃分為函數(shù)調(diào)用子圖,進一步基于子圖中敏感API的調(diào)用次數(shù)計算子圖威脅度,最后根據(jù)威脅度判定子圖中是否包含惡意代碼。

    本文提出了針對注入型Android惡意應用的檢測方法,所提方法基于靜態(tài)分析,相對于動態(tài)分析系統(tǒng),具有較高的代碼覆蓋率,同時也更加簡單易行。針對1 260個Android惡意應用和1 000個正常應用樣本的測試表明,所提方法針對注入型Android惡意應用具有很好的檢測效果。

    1 Android應用程序基本結(jié)構(gòu)

    Android應用程序以APK文件的形式發(fā)布,結(jié)構(gòu)上主要包括4大組件,分別為:①Activity組件提供與用戶交互的界面,每個應用程序一般都存在一個主Activity作為應用程序啟動的入口;②Service與Activity不同的是,Service組件主要運行在后臺。Android惡意應用為了防止被用戶察覺,一般會通過Service在后臺悄悄執(zhí)行惡意行為;③Broadcast Receiver組件接受來自應用程序內(nèi)部其他組件或者其他應用程序發(fā)送的廣播消息,因此可以用于監(jiān)聽系統(tǒng)的廣播事件,例如網(wǎng)絡狀態(tài)變化、電池電量低、短信接收等;④Content Provider組件提供數(shù)據(jù)操作的統(tǒng)一接口,可以通過URI聲明數(shù)據(jù)訪問地址,允許應用程序之間的數(shù)據(jù)共享。

    2 案例分析

    Geinimi是Android平臺上首個僵尸網(wǎng)絡惡意應用,采用注入技術將其自身注入到流行的Android應用程序中,供Android用戶下載,實現(xiàn)廣泛傳播的目的[8]。該惡意應用會收集被感染用戶的隱私信息并可以接受遠程控制服務器下發(fā)的命令,可對廣大用戶的個人隱私信息造成嚴重的威脅。以MD5值為08E4A73F0F352C3ACCC03EA9D4E946 7F的惡意樣本為例,從AndroidManifest.xml配置文件中可以發(fā)現(xiàn)該樣本添加了一個名為com.geinimi.AdServiceReceiver的廣播接收器,用于監(jiān)聽開機廣播事件,并進一步觸發(fā)惡意行為的執(zhí)行。

    圖1為該樣本的函數(shù)調(diào)用關系圖,圖中每個節(jié)點代表了一個方法,節(jié)點之間的邊表示方法之間存在調(diào)用關系,空心節(jié)點表示調(diào)用的敏感API,其他節(jié)點皆為非敏感API。右上方的節(jié)點來自于應用程序中的正常代碼部分,而左下方的節(jié)點則是來自于注入的惡意代碼Geinimi。從函數(shù)調(diào)用關系圖可以看出,在該應用程序的正常代碼部分,基本沒有對敏感API的調(diào)用,而惡意代碼部分則調(diào)用了大量敏感API用于實現(xiàn)惡意行為。另一方面,該樣本的函數(shù)調(diào)用關系圖明顯地分為兩個部分,同時兩個部分之間沒有明顯的聯(lián)系。通過對該樣本的分析可以發(fā)現(xiàn),函數(shù)調(diào)用關系在一定程度上反映了Android應用程序內(nèi)部各部分之間的關系,注入型Android惡意應用內(nèi)部注入的惡意代碼部分與正常代碼部分之間存在明顯的割裂性。

    圖1 Geinimi樣本函數(shù)調(diào)用關系圖

    3 基于函數(shù)調(diào)用關系的檢測方法

    本文提出的基于函數(shù)調(diào)用關系的檢測方法如圖2所示,主要包含兩個模塊:函數(shù)調(diào)用關系圖構(gòu)建模塊負責構(gòu)建Android應用程序的函數(shù)調(diào)用關系圖;惡意代碼檢測模塊則負責識別函數(shù)調(diào)用關系圖中包含惡意代碼的部分。

    圖2 注入型Android惡意應用檢測基本算法

    3.1 函數(shù)調(diào)用關系圖的構(gòu)建

    在函數(shù)調(diào)用關系圖的構(gòu)建過程中,主要包括APK反匯編、API調(diào)用序列提取、函數(shù)調(diào)用關系圖構(gòu)建以及子圖劃分4個部分。

    (1)APK反匯編:在構(gòu)建函數(shù)調(diào)用關系圖之前,需要獲得APK中調(diào)用的所有方法。為了獲得精確的函數(shù)調(diào)用關系,首先利用Android應用程序逆向分析技術將待分析的APK文件經(jīng)過反匯編得到細粒度的smali代碼,并進一步基于smali代碼構(gòu)建函數(shù)調(diào)用關系。

    (2)API調(diào)用序列提取:在反匯編生成的smali代碼基礎上,從應用程序的每個入口點處搜索并回溯以構(gòu)建API調(diào)用序列,函數(shù)的返回值以及參數(shù)可作為附加信息進行提取,進而構(gòu)建信息更為豐富的API調(diào)用序列。

    (3)函數(shù)調(diào)用關系圖構(gòu)建:Android應用程序在開發(fā)過程中,主要以類和包的形式進行組織,開發(fā)者在開發(fā)過程中將具有一定關聯(lián)的代碼放入一個類中,進而組織到一個包下,因此類和包具有特定的語義信息。本文根據(jù)此語義信息,將前述提取的API調(diào)用序列基于類進行聚合,從而構(gòu)建出函數(shù)調(diào)用關系圖。

    (4)子圖劃分:本文主要采用深度優(yōu)先遍歷算法在函數(shù)調(diào)用關系圖的基礎上進行子圖劃分,在對函數(shù)調(diào)用關系圖進行遍歷后,可以將調(diào)用的方法聚類到不同的子圖中,同一個子圖中的方法之間具有強相關性,而不同子圖中的方法具有弱相關性。為了進一步識別子圖中是否包含惡意代碼,首先需要解決兩個問題,一個是Android應用程序中存在的代碼碎片問題,另一個是Android應用程序中廣泛存在的廣告模塊問題。本文所指的代碼碎片是指存在于應用程序中但沒有實際功能的代碼片段,其存在對后續(xù)的惡意代碼識別具有干擾作用。為排除代碼碎片的影響,本文提出了簡單有效的方法用于識別Android應用程序中的代碼碎片,其基本規(guī)則包括兩方面:當子圖中僅有一個類,且該類沒有敏感API調(diào)用并且類中的方法數(shù)不超過4個時,該子圖被標識為代碼碎片;當子圖中方法的方法體為空時,該子圖被標識為代碼碎片。

    Android應用程序開發(fā)者通常會在應用程序中添加廣告模塊,通過廣告分成的方式獲取收益。開發(fā)者通??梢栽诓恍薷膽贸绦蛘w代碼的情況下利用廣告軟件開發(fā)包方便地集成廣告模塊,廣告模塊的實現(xiàn)機制導致廣告模塊在函數(shù)調(diào)用關系圖上呈現(xiàn)獨立的子圖。另外,為了實現(xiàn)精確推送,部分廣告模塊會通過調(diào)用敏感API來收集用戶的隱私信息,例如地理位置、瀏覽器搜索歷史等。圖3為包含廣告模塊應用程序的函數(shù)調(diào)用關系圖,右上方的部分來自某廣告模塊,由圖可見,該廣告模塊中同樣包含了針對若干敏感API的調(diào)用。因此,廣告模塊與注入型惡意應用在函數(shù)調(diào)用關系圖上具有相似的部分,在惡意代碼檢測過程中會導致誤報。

    為了區(qū)別廣告模塊和注入型Android惡意應用,需要對廣告模塊進行識別。通過分析發(fā)現(xiàn),每個廣告模塊都有其對應的唯一包名,因此,可以基于廣告模塊的包名建立白名單,并依據(jù)此白名單對廣告模塊進行過濾,從而降低誤報率。

    圖3 包含廣告模塊應用程序的方法調(diào)用圖

    3.2 惡意代碼檢測

    在完成函數(shù)調(diào)用關系圖構(gòu)建與子圖劃分處理后,需要進一步判定Android應用程序中是否存在惡意代碼。惡意代碼的判定主要包括兩個步驟:子圖威脅度計算以及子圖惡意代碼判定。

    (1)子圖威脅度計算:Android惡意代碼通過調(diào)用敏感API來實現(xiàn)惡意行為,例如發(fā)送短信需要調(diào)用sendTextMessage函數(shù),因此可以通過對敏感API的調(diào)用情況來計算子圖的威脅度,本文首先通過對1 000個樣本的統(tǒng)計分析得到了Android惡意代碼中使用頻率較高的API列表,表1顯示了使用率最高的前10個API以及API的調(diào)用次數(shù)。每個敏感API會根據(jù)其潛在的威脅以及被惡意代碼調(diào)用的次數(shù)賦予相應的威脅度值。對于每個子圖,會進一步根據(jù)敏感API調(diào)用的次數(shù)計算子圖的威脅度值,子圖威脅度值為所有敏感API的威脅度值總和。

    表1 使用率最高的前10個系統(tǒng)API

    (2)子圖惡意代碼判定:在對100個注入型Android惡意應用程序的子圖威脅度進行分析后發(fā)現(xiàn),包含惡意代碼的子圖具有較高威脅度的同時其函數(shù)(所有函數(shù))調(diào)用數(shù)目較少,而正常子圖在具有較低威脅度的同時函數(shù)調(diào)用數(shù)目較多,因此可以進一步將子圖威脅度值除以函數(shù)調(diào)用次數(shù)獲得平均子圖威脅度值。平均子圖威脅度值越高,其包含惡意代碼的可能性越大,為了確定惡意代碼判定的閾值,對上述100個注入型惡意應用樣本進行檢測實驗,結(jié)果如圖4所示。當閾值超過0.4以后,惡意代碼子圖識別出現(xiàn)了漏報,且隨著閾值的提高,漏報率逐漸上升;而當閾值低于0.4時,正常功能代碼子圖部分出現(xiàn)了誤報,且隨著閾值的降低,誤報率快速上升。因此,本文將閾值設為0.4,當平均子圖威脅度值超過該閾值時,則判定該子圖包含惡意代碼。

    圖4 惡意代碼子圖漏報率和誤報率隨閾值變化曲線

    4 實驗結(jié)果與分析

    本節(jié)對Android Malware Genome Project[9]中包含的1 260個惡意代碼樣本進行實驗,測試本文方法對真實Android惡意代碼的檢測效果,同時與Androguard[10]進行對比,Androguard主要是基于特征匹配進行惡意代碼檢測。實驗過程中首先對應用程序樣本進行反匯編得到smali代碼,其次在smali代碼的基礎上提取API調(diào)用序列并構(gòu)建函數(shù)調(diào)用關系圖,同時進一步進行子圖劃分,最后對每部分子圖進行威脅度計算,判斷子圖是否包含惡意代碼。表2顯示了對注入型Android惡意應用的最終檢測結(jié)果,表3則為對非注入型Android惡意應用的檢測結(jié)果。由實驗結(jié)果可見,本文方法能夠很好地檢測注入型Android惡意應用,平均檢測率達到95.94%,遠高于Androguard 32.63%的平均檢測率;從對非注入型惡意應用檢測效果來看,仍然可以檢測出部分惡意應用。與基于特征的靜態(tài)惡意代碼檢測系統(tǒng)不同的是,本文方法除了需要敏感API信息外不需要任何其他先驗特征信息。Android惡意代碼執(zhí)行惡意行為一般需要調(diào)用系統(tǒng)API來實現(xiàn),而這些API在一定程度上是穩(wěn)定不變的,因此基于函數(shù)調(diào)用關系圖的方法相比基于特征的惡意代碼檢測方法具有更好的穩(wěn)定性,同時可以用于檢測未知的惡意代碼。

    表2 注入型Android惡意應用檢測結(jié)果

    表3 非注入型Android惡意應用檢測結(jié)果

    對于檢測率低的惡意樣本,我們將手動分析并解釋本文方法所存在的局限性。

    (1)Asroot:該惡意代碼具有獲取root權(quán)限的功能。該家族中的部分樣本并沒有采用注入技術將惡意代碼注入到正常應用中,而是實現(xiàn)了一個具有惡意行為的完整Android應用程序,因此函數(shù)調(diào)用關系圖之間沒有明顯的差異,這也導致了低檢測率情況的發(fā)生。

    (2)SndApps:該惡意代碼樣本實際上沒有嚴重的安全威脅,其僅僅在正常應用中注入了大量廣告模塊并綁定了自己的廣告ID,以此來竊取其他開發(fā)者的廣告分成利益。由于本文方法在子圖劃分過程中過濾了所有廣告模塊,因此對于SndApps的檢測率為0。

    (3)zHash:該惡意代碼樣本通過添加垃圾代碼實現(xiàn)變種目的,同時其自身也實現(xiàn)了部分對用戶有用的功能,因此惡意代碼與正常代碼之間具有較強的相關性,從函數(shù)調(diào)用關系圖來看,兩個部分是一個整體,這也必然導致了基于函數(shù)調(diào)用關系檢測方法失效。

    進一步隨機選取1 000個來自Google Play的正常Android應用程序作為數(shù)據(jù)集,測試了本文方法的誤報率。表4顯示了被檢測出包含惡意代碼的包名以及樣本數(shù)量,一共有89個樣本被標定為惡意代碼,因此誤報率為8.90%。但是進一步分析發(fā)現(xiàn),大多數(shù)被標定為包含惡意代碼的包是來自于廣告模塊或者其他第三方模塊。例如,com.smaato.SMOA來自于名為SMAATO的廣告模塊;com.phonegap來自第三方模塊PhoneGap,該模塊可以為Android應用程序提供Web開發(fā)技術。因此,可以通過擴展白名單降低誤報率。

    表4 正常Android應用程序檢測結(jié)果

    5 結(jié) 論

    本文提出了針對注入型Android惡意應用的檢測方法,首先從待分析的Android應用程序中提取API調(diào)用序列,基于此調(diào)用序列進一步構(gòu)造函數(shù)調(diào)用關系圖。在函數(shù)調(diào)用關系圖的基礎上進行子圖劃分,通過計算平均子圖威脅度值來判定是否包含惡意代碼。實驗結(jié)果表明,本文方法對于注入型Android惡意應用具有很好的檢測效果。本文方法不依賴于先驗特征,可以用于檢測已知和未知Android惡意應用。實驗部分選取的樣本較老,隨著注入型Android惡意應用的技術發(fā)展,可能會出現(xiàn)新型的樣本,因此在后續(xù)工作中,會繼續(xù)對新發(fā)現(xiàn)的注入型Android惡意應用進行分析,進一步改進檢測方法。

    [1] IDC. Smartphone OS market share, Q4 2014 [EB/OL]. (2015-01-20) [2015-03-12]. http:∥www.idc. com/prodserv/smartphone-os-market-share.jsp.

    [2] ZHOU Wu, ZHOU Yajin, JIANG Xuxian, et al. Detecting repackaged smartphone applications in third-party Android marketplaces [C]∥Proceedings of the Second ACM Conference on Data and Application Security and Privacy. New York, USA: ACM, 2012: 317-326.

    [3] AAFER Y, DU Wenliang, YIN Heng. DroidAPIMiner: mining API-level features for robust malware detection in Android [C]∥Proceedings of the 9th International Conference on Security and Privacy in Communication Networks. Berlin, Germany: Springer, 2013: 86-103.

    [4] WU Dongjie, MAO Chinghao, WEI Teen, et al. Droidmat: Android malware detection through manifest and API calls tracing. [C]∥Proceedings of the 7th Asia Joint Conference on Information Security. Piscataway, NJ, USA: IEEE, 2012: 62-69.

    [5] GRACE M, ZHOU Yajin, ZHANG Qiang, et al. Riskranker: scalable and accurate zero-day Android malware detection [C]∥Proceedings of the 10th International Conference on Mobile Systems, Applications, and Services. New York, USA: ACM, 2012: 281-294.

    [6] ISOHARA T, TAKEMORI K, KUBOTA A. Kernel-based behavior analysis for Android malware detection [C]∥Proceedings of the 7th International Conference on Computational Intelligence and Security. Piscataway, NJ, USA: IEEE, 2011: 1011-1015.

    [7] YAN L K, YIN Heng. DroidScope: seamlessly reconstructing the OS and Dalvik semantic views for dynamic Android malware analysis [C]∥Proceedings of the 21st USENIX Conference on Security Symposium. Berkeley, CA, USA: USENIX, 2012: 29.

    [8] PIETERSE H, OLIVIER M S. Android botnets on the rise: trends and characteristics [C]∥Proceedings of the Conference on Information Security for South Africa. Piscataway, NJ, USA: IEEE, 2012: 1-5.

    [9] JIANG Xuexian, ZHOU Yajin. Android malware genome project [EB/OL]. (2012-08-11)[2015-03-12]. http:∥www.malgenomeproject.org.

    [10]DESNOS A. Androguard: reverse engineering, malware and goodware analysis of Android applications and more [EB/OL]. (2013-11-21) [2015-03-12]. http:∥code.google.com/p/androguard.

    (編輯 武紅江)

    A Detection Method of Injected Android Malicious Applications Using Function Calling Graphs

    WANG Huan1,LAI Huan2,LI Guodong3,TIAN Da2,LIANG Bo2

    (1. Apparel and Art Design College, Xi’an Polytechnic University, Xi’an 710048, China;2. Xi’an Yanliang National Aviation Hi-Tech Industrial Base Management Committee, Xi’an 710048, China;3. Network Center, Xi’an Jiaotong University, Xi’an 710049, China)

    The number of injected Android malicious applications is increasing, and the traditional detection method heavily relies on lots of extracted characteristics. A static analysis method based on function calling graph is proposed to detect injected Android malicious applications. The method can efficiently detect injected Android malicious applications only by analyzing the application’s structure, and there is no need for known characteristics. The method constructs a function calling graph based on decompiled smali code, and sub-graphs will be further processed to tell whether the Android application is malicious or not. The period of analysis is much shorter than that of any other dynamic detection method. The detection method not only detects whether the Android application is malicious or not, but also has the ability to tell which part of the Android application contains malicious code. The approach is tested on 1 260 Android malicious applications and 1 000 Android normal applications, and the test results show that the approach is effective in detecting injected Android malicious applications. The detection rate of the method for the injected Android malicious applications is 95.94% when the false positive rate is 8.90%. A comparison with the mainstream Android malware detection system Androguard shows that the detection performance of the proposed method has a remarkable promotion.

    Android; malware; static analysis; function calling graph

    2015-06-13。

    王歡(1980—),女,講師。

    陜西省科技統(tǒng)籌創(chuàng)新工程計劃資助項目(2013KTCQ01-51);國家自然科學基金資助項目(61103241)。

    時間:2015-07-28

    10.7652/xjtuxb201510014

    TP393

    A

    0253-987X(2015)10-0084-06

    網(wǎng)絡出版地址:http://www.cnki.net/kcms/detail/61.1069.T.20150728.1755.006.html

    猜你喜歡
    函數(shù)調(diào)用子圖調(diào)用
    基于C語言的數(shù)學菜單的設計與實現(xiàn)
    核電項目物項調(diào)用管理的應用研究
    臨界完全圖Ramsey數(shù)
    LabWindows/CVI下基于ActiveX技術的Excel調(diào)用
    測控技術(2018年5期)2018-12-09 09:04:46
    基于函數(shù)調(diào)用序列模式和函數(shù)調(diào)用圖的程序缺陷檢測方法*
    探討C++編程中避免代碼冗余的技巧
    Unity3D項目腳本優(yōu)化分析與研究
    中國新通信(2017年1期)2017-03-08 03:12:21
    基于系統(tǒng)調(diào)用的惡意軟件檢測技術研究
    基于頻繁子圖挖掘的數(shù)據(jù)服務Mashup推薦
    不含2K1+K2和C4作為導出子圖的圖的色數(shù)
    刚察县| 高尔夫| 虎林市| 大港区| 阳山县| 贵州省| 淮滨县| 北碚区| 阿拉善左旗| 天水市| 宁化县| 长治县| 容城县| 怀远县| 湾仔区| 双流县| 芦山县| 武陟县| 阳春市| 浏阳市| 襄汾县| 和林格尔县| 西城区| 开化县| 西和县| 仙居县| 阳江市| 新晃| 石首市| 文水县| 九龙城区| 柞水县| 安新县| 买车| 郑州市| 林西县| 青川县| 开封市| 长寿区| 大埔县| 神农架林区|