色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

移動(dòng)應(yīng)用安全常用組件Soot、Flowdroid簡(jiǎn)介和基本使用

科技怪授 ? 來(lái)源:科技怪授 ? 作者:科技怪授 ? 2022-10-13 09:12 ? 次閱讀

Soot

簡(jiǎn)介

soot是java優(yōu)化框架,提供4種中間代碼來(lái)分析和轉(zhuǎn)換字節(jié)碼。

l Baf:精簡(jiǎn)的字節(jié)碼表示,操作簡(jiǎn)單

l Jimple:適用于優(yōu)化的3-address中間表示

l Shimple:Jimple的SSA變體

l Grimple:適用于反編譯和代碼檢查的Jimple匯總版本。

soot提供的輸入格式有:java、android、class等

輸出格式有:Java字節(jié)碼、android字節(jié)碼、Jimple、Jasmin、shimple、baf等,這些實(shí)際業(yè)務(wù)中常使用的,當(dāng)然還有其它的格式,這里不再一一列舉。

借助soot對(duì)android的分析能力,我們可以進(jìn)一步分析安卓應(yīng)用的安全漏洞,比如組件暴露、加密算法等存在的安全問(wèn)題。

基本使用

可以GIT下載最新的soot jar包,我下載的是4.1.0版本中的sootclasses-trunk-jar-with-dependencies.jar 包,這個(gè)包應(yīng)該自帶了soot所需要的所有依賴。下載完成后使用powershell進(jìn)入jar文件所在的文件夾,可以輸入以下命令:

java -cp sootclasses-trunk-jar-with-dependencies.jar soot.Main查看soot相關(guān)的信息![]image.png

首先我們來(lái)看soot怎么分析java代碼(這里以class文件分析為例):

第一步,配置soot環(huán)境信息

StringBuffer** cp = new **StringBuffer();

cp .append(".");

cp .append(File. pathSeparator + apiPath );

cp .append(File.**pathSeparator + "C:Program FilesJavajre1.8.0_171lib
t.jar"
+ **File.**pathSeparator **

** + "C:Program FilesJavajre1.8.0_171libjce.jar");System.setProperty("soot.class.path", cp**.toString());

第二步,設(shè)置soot的配置屬性(各屬性說(shuō)明可以參考GIT上官方文檔信息)

image.png

第三步,拿到代碼信息

image.png

現(xiàn)在,我們?cè)诳纯磗oot怎么分析android apk

image.png

同樣,我們可以得到apk的代碼信息,包括class、method、attribute等,基于這些進(jìn)行進(jìn)一步分析并應(yīng)用到實(shí)際檢測(cè)業(yè)務(wù)中。

使用場(chǎng)景

使用Soot對(duì)Android應(yīng)用進(jìn)行靜態(tài)分析,目前包括主要的檢測(cè)場(chǎng)景:

l 檢測(cè)應(yīng)用中敏感字符串url和email、IP等

l 檢測(cè)應(yīng)用中風(fēng)險(xiǎn)代碼片段

l 檢測(cè)應(yīng)用可能存在的漏洞,如組件暴露、過(guò)度申請(qǐng)權(quán)限、不安全加密算法等

FlowDroid

簡(jiǎn)介

FlowDroid(github鏈接)是目前對(duì)Android app進(jìn)行污點(diǎn)分析效果最好的工具之一。 污點(diǎn)分析的目的其實(shí)很簡(jiǎn)單,就是為了檢查是否應(yīng)用中是否存在從污點(diǎn)源到泄漏點(diǎn)的數(shù)據(jù)流。 但是它的優(yōu)點(diǎn)在于它構(gòu)建的數(shù)據(jù)流精度很高,可以對(duì)上下文,流,對(duì)象和字段敏感,從而使得分析結(jié)果非常精確。

![]image.png

image.png

它實(shí)現(xiàn)精準(zhǔn)分析的原因有幾點(diǎn):

l 1. 它對(duì)Android聲明周期進(jìn)行了比較完整的構(gòu)建,例如Activity中的OnCreate,OnResume等。通過(guò)抽象一個(gè)dummyMain作為分析的入口來(lái)支持Android應(yīng)用的分析;

l 2. 它實(shí)現(xiàn)了精準(zhǔn)的數(shù)據(jù)流分析,其中包含前向污點(diǎn)分析和后向別名分析。他們的實(shí)現(xiàn)其實(shí)都是基于heros的數(shù)據(jù)流分析框架來(lái)實(shí)現(xiàn)的。這里面的算法比較復(fù)雜,我的理解是這兩種分析都是滿足上下文敏感和流敏感的,后向分析的算法提供了對(duì)象敏感和字段敏感的支持;

l 3. 它支持簡(jiǎn)單的native code的污點(diǎn)分析

l 當(dāng)然,它也存在一些不足之處,包括:

l 1. 不能對(duì)組件間(Intent)的污點(diǎn)傳播進(jìn)行分析

l 2. 隱式流問(wèn)題

l 3. native code不能完美支持

盡管存在一些不足之處,在各大會(huì)議上也已經(jīng)提出了數(shù)十種新的靜態(tài)污點(diǎn)分析算法,相比FlowDroid在一些數(shù)據(jù)集或是DroidBench上有著更快的運(yùn)行速度以及更優(yōu)的精準(zhǔn)度。但FlowDroid仍然是公共資源中可獲取的靜態(tài)污點(diǎn)分析工具的唯一選擇,因?yàn)楹芏鄍aper提供的源代碼幾乎沒(méi)有注釋與文檔,導(dǎo)致使用極其困難;另外科研人員往往僅在有限的測(cè)試集上進(jìn)行了運(yùn)行,所以去使用這樣的程序不可避免的會(huì)遇到Bug。相比之下,F(xiàn)lowDroid作為被持續(xù)維護(hù)的一款框架,其穩(wěn)定性上具備了一定的保證,同時(shí)其底層的Soot框架強(qiáng)大的功能與較為完善的文檔,使得FlowDroid上手難度相對(duì)較低。

基本使用

環(huán)境配置

FlowDroid的配置方法有兩種,可以直接下載相關(guān)jar包,也可以使用maven配置依賴。jar包可以去FlowDroid的GitHub上進(jìn)行下載,僅需soot-infoflow-android-classes.jar和soot-infoflow-classes.jar兩個(gè)文件即可,另外去Soot的倉(cāng)庫(kù) 下載包含了heros與jasmin的sootclasses-trunk-jar-with-dependencies.jar,將上述三個(gè)包加入項(xiàng)目依賴便完成了FlowDroid的配置

運(yùn)行

整個(gè)FlowDroid最頂層的類便是soot.jimple.infoflow.android.SetupApplication,大部分的設(shè)置與運(yùn)行都可以通過(guò)操作這個(gè)類的實(shí)例進(jìn)行。SetupApplication既可以在調(diào)用runInfoflow()時(shí)傳入配置參數(shù),也可以在初始化SetupApplication時(shí)或初始化后傳入配置參數(shù)。SetupApplication的初始化函數(shù)以及runInfoflow函數(shù)有多種不同參數(shù)類型的實(shí)現(xiàn),可以查閱源碼后根據(jù)情況選擇,這里僅提供我自己使用的一種方式:

關(guān)于Source、Sink

污點(diǎn)分析中的source點(diǎn)表示污點(diǎn)分析的起始點(diǎn),而sink點(diǎn)表示污點(diǎn)分析的結(jié)束點(diǎn)。換言之,F(xiàn)lowDroid在“掃描”這個(gè)apk后,會(huì)從source點(diǎn)開(kāi)始分析數(shù)據(jù)流,當(dāng)數(shù)據(jù)流“流到”sink點(diǎn)時(shí)將其標(biāo)注。FlowDroid中的source與sink均為類方法,在soot-infoflow-android下有提供一份SourcesAndSinks.txt的文件,是FlowDroid當(dāng)時(shí)使用的一些可能涉及到訪問(wèn)隱私數(shù)據(jù)的api,從里面很容易看出聲明文件的格式:

每一行作為獨(dú)立的聲明,%開(kāi)頭的表示注釋,可以根據(jù)應(yīng)用需求自行添加刪減Source與Sink的聲明。

使用場(chǎng)景

Flowdroid本身輸出結(jié)果只是數(shù)據(jù)流信息,需要結(jié)合我們定制source、sink信息產(chǎn)生業(yè)務(wù)價(jià)值,一般有以下使用場(chǎng)景:

l 隱私數(shù)據(jù)泄露檢測(cè)

l 污點(diǎn)傳播類問(wèn)題檢測(cè)

l Android組件間數(shù)據(jù)傳遞風(fēng)險(xiǎn)檢測(cè)

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 移動(dòng)應(yīng)用

    關(guān)注

    0

    文章

    64

    瀏覽量

    15547
  • JAVA
    +關(guān)注

    關(guān)注

    19

    文章

    2970

    瀏覽量

    104824
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    DIY項(xiàng)目中常用的端子類型

    在DIY項(xiàng)目中,選擇合適的端子類型對(duì)于確保電氣連接的可靠性和安全性至關(guān)重要。以下是一些常用的端子類型,以及它們的特點(diǎn)和應(yīng)用場(chǎng)景: 1. 針式端子(Pin Terminals) 特點(diǎn) :針式端子通常用
    的頭像 發(fā)表于 12-29 10:45 ?218次閱讀

    芯盾時(shí)代入選中國(guó)移動(dòng)安全解決方案市場(chǎng)洞察報(bào)告

    近日,全球領(lǐng)先的IT市場(chǎng)研究和咨詢公司IDC發(fā)布《中國(guó)移動(dòng)安全解決方案市場(chǎng)洞察,2024:市場(chǎng)迎來(lái)新機(jī)遇,安全與管控協(xié)同發(fā)展》報(bào)告(以下簡(jiǎn)稱《報(bào)告》),深度剖析了當(dāng)前中國(guó)移動(dòng)
    的頭像 發(fā)表于 12-02 11:26 ?502次閱讀

    RVBacktrace RISC-V極簡(jiǎn)?;厮?b class='flag-5'>組件

    RVBacktrace組件簡(jiǎn)介一個(gè)極簡(jiǎn)的RISC-V棧回溯組件。功能在需要的地方調(diào)用組件提供的唯一API,開(kāi)始當(dāng)前環(huán)境的棧回溯支持輸出addr2line需要的命令,使用addr2lin
    的頭像 發(fā)表于 09-15 08:12 ?406次閱讀
    RVBacktrace RISC-V極簡(jiǎn)棧回溯<b class='flag-5'>組件</b>

    芯盾時(shí)代設(shè)備指紋技術(shù)如何助力移動(dòng)安全

    隨著移動(dòng)互聯(lián)網(wǎng)的快速發(fā)展,移動(dòng)安全風(fēng)險(xiǎn)頻發(fā)。設(shè)備指紋技術(shù)憑借高精度的設(shè)備識(shí)別能力,能夠幫助企業(yè)提升移動(dòng)安全防護(hù)能力,精準(zhǔn)區(qū)分合法與風(fēng)險(xiǎn)行
    的頭像 發(fā)表于 08-28 09:41 ?537次閱讀

    鴻蒙ArkTS聲明式組件:Slider

    滑動(dòng)條組件,通常用于快速調(diào)節(jié)設(shè)置值,如音量調(diào)節(jié)、亮度調(diào)節(jié)等應(yīng)用場(chǎng)景。
    的頭像 發(fā)表于 07-01 09:20 ?535次閱讀
    鴻蒙ArkTS聲明式<b class='flag-5'>組件</b>:Slider

    鴻蒙ArkTS聲明式組件:Image

    Image為圖片組件,常用于在應(yīng)用中顯示圖片。Image支持加載[PixelMap]、[ResourceStr]和[DrawableDescriptor]類型的數(shù)據(jù)源,支持png、jpg、bmp、svg和gif類型的圖片格式。
    的頭像 發(fā)表于 06-23 20:32 ?939次閱讀
    鴻蒙ArkTS聲明式<b class='flag-5'>組件</b>:Image

    鴻蒙ArkTS聲明式組件:Checkbox

    提供多選框組件,通常用于某選項(xiàng)的打開(kāi)或關(guān)閉。
    的頭像 發(fā)表于 06-20 15:36 ?633次閱讀
    鴻蒙ArkTS聲明式<b class='flag-5'>組件</b>:Checkbox

    小米科技高級(jí)安全專家:智能汽車(chē)Tbox安全漏洞分析

    以下內(nèi)容整理自談思AutoSec 8周年年會(huì)。 分享嘉賓:小米科技高級(jí)安全專家 尹小元 嘉賓簡(jiǎn)介:小米車(chē)聯(lián)網(wǎng)安全專家,智能終端安全實(shí)驗(yàn)室負(fù)責(zé)車(chē)聯(lián)網(wǎng)
    的頭像 發(fā)表于 05-27 14:31 ?1255次閱讀
    小米科技高級(jí)<b class='flag-5'>安全</b>專家:智能汽車(chē)Tbox<b class='flag-5'>安全</b>漏洞分析

    組件測(cè)試儀如何提高太陽(yáng)能組件的性能?

      JD-EL4太陽(yáng)能組件測(cè)試儀在太陽(yáng)能行業(yè)中扮演著至關(guān)重要的角色,不僅可以檢測(cè)組件的缺陷和問(wèn)題,還可以幫助提高太陽(yáng)能組件的性能。以下是太陽(yáng)能組件測(cè)試儀如何提高太陽(yáng)能
    的頭像 發(fā)表于 05-21 17:13 ?706次閱讀

    HarmonyOS開(kāi)發(fā)案例:【常用組件與布局】

    HarmonyOS ArkUI提供了豐富多樣的UI組件,您可以使用這些組件輕松地編寫(xiě)出更加豐富、漂亮的界面。
    的頭像 發(fā)表于 05-09 18:20 ?1233次閱讀
    HarmonyOS開(kāi)發(fā)案例:【<b class='flag-5'>常用</b><b class='flag-5'>組件</b>與布局】

    鴻蒙OS開(kāi)發(fā)實(shí)例:【組件化模式】

    組件化一直是移動(dòng)端比較流行的開(kāi)發(fā)方式,有著編譯運(yùn)行快,業(yè)務(wù)邏輯分明,任務(wù)劃分清晰等優(yōu)點(diǎn),針對(duì)Android端的組件化;與Android端的組件化相比,HarmonyOS的
    的頭像 發(fā)表于 04-07 17:44 ?666次閱讀
    鴻蒙OS開(kāi)發(fā)實(shí)例:【<b class='flag-5'>組件</b>化模式】

    無(wú)線移動(dòng)充電器電路圖分析

    無(wú)線移動(dòng)充電器是電子領(lǐng)域的熱門(mén)話題之一,因此我們還決定使用各種常用組件構(gòu)建無(wú)線移動(dòng)充電器電路圖。此處發(fā)布的項(xiàng)目無(wú)線移動(dòng)充電器電路圖可以在 5
    的頭像 發(fā)表于 02-25 16:49 ?3103次閱讀
    無(wú)線<b class='flag-5'>移動(dòng)</b>充電器電路圖分析

    了解鴻蒙OS Text組件

    文本(Text)是用來(lái)顯示字符串的組件,在界面上顯示為一塊文本區(qū)域。Text 作為一個(gè)基本組件,有很多擴(kuò)展,常見(jiàn)的有按鈕組件 Button,文本編輯組件 TextField。 使用 T
    的頭像 發(fā)表于 01-29 15:24 ?1237次閱讀
    了解鴻蒙OS Text<b class='flag-5'>組件</b>

    鴻蒙開(kāi)發(fā)實(shí)戰(zhàn)-(ArkUI)List組件和Grid組件的使用

    組件,開(kāi)發(fā)者使用List和Grid組件能夠很輕松的完成一些列表頁(yè)面。 List組件的使用 List組件簡(jiǎn)介 List是很
    發(fā)表于 01-18 20:18

    鴻蒙開(kāi)發(fā)-ArkUI 組件基礎(chǔ)

    、LoadingProgress等,例如下面這個(gè)常用的登錄界面就是由這些基礎(chǔ)組件組合而成。 下面我們將分別介紹這些常用基礎(chǔ)組件的使用。 2 Text Text
    發(fā)表于 01-17 19:31
    主站蜘蛛池模板: 99视频在线观看免费| 18岁男人女人插孔| 伊人久久大香线蕉影院95| 国产区免费在线观看| 日韩经典欧美一区二区三区| 20岁αsrian男同志免费| 久久久久亚洲| 又硬又粗又大一区二区三区视频 | 91黄色影院| 精品视频免费在线观看| 乌克兰黄色录像| 国产日韩欧美高清免费视频| 午夜国产视频| 国产一区二区三区内射高清 | 国内精品久久久久影院网站| 亚洲 欧美无码原创区| 国产在线精品亚洲第一区| 亚洲狠狠网站色噜噜| 狠狠色狠狠色综合日日32| 伊人AV一区二区三区夜色撩人| 久久人妻无码毛片A片麻豆| 34g污奶绵uk甩奶| 胖老太与人牲交BBWBBW高潮| 第一精品福利导福航| 向日葵视频app下载18岁以下勿看| 摸董事长的裤裆恋老小说| 97超级碰久久久久香蕉人人| 美女被C污黄网站免费观看| 99精品视频在线观看免费| 日本无码毛片一区二区手机看 | 欧美国产在线一区| 成人影院久久久久久影院| 午夜福利影院私人爽爽| 黄梅戏mp3大全| 99re8在线视频精品| 神马电影dy888午夜我不卡| 国内精品久久人妻无码HD浪潮| 在线欧美精品一区二区三区| 欧美黑大炮18p| 国产精品亚洲在钱视频| 在线免费中文字幕|