在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

二進制SCA指紋提取黑科技:go語言逆向技術

清歡科技 ? 來源:清歡科技 ? 作者:清歡科技 ? 2022-10-13 08:57 ? 次閱讀

什么是二進制SCA檢測

SCA(Software Composition Analysis)軟件成分分析,指通過對軟件源碼、二進制軟件包等的靜態分析,挖掘其所存在的開源合規、已知漏洞等安全合規風險,是一種業界常見的安全測試手段。

二進制SCA檢測技術,檢測對象為二進制軟件包/固件,直接從二進制文件中提取常量字符串、部分類名稱、函數名稱等特征信息,再運用匹配算法進行相似度計算,根據相似度門限來檢測出引用的開源軟件名稱和版本號。

poYBAGNGp7GAAidMAABpNaV0YdI389.png

二進制SCA檢測對比源碼SCA檢測的優勢

無需依賴源碼,操作方便

用戶只需上傳二進制軟件包/固件,服務會采用靜態檢測技術,不用構建運行環境,不用運行程序即可快速分析二進制軟件包/固件中存在的安全風險問題,并輸出一份專業的分析報告

poYBAGNGp7eAbEXPAABfGopaCeI930.png

圖:二進制成分分析-檢測處理流程

二進制SCA指紋提取黑科技:go語言逆向技術之---恢復函數名稱算法

在對程序做安全審計、漏洞檢測時,通常都需要對程序做逆向分析,我們在沒有符號表的情況下,提出了一種恢復函數名稱的算法,方便對go語言二進制文件進行逆向分析,提升分析效率。

go語言是最近幾年發展非常火的一種語言,它具備和C/C++一樣的運行速度快的優點,同時又具備開發效率高,支持包管理機制高階語言特點。其編譯出來的二進制文件格式和C/C++一樣運行在Linux平臺下是elf格式,運行在windows平臺下是pe格式,但同時在二進制文件的內部細節上go語言有自己特有的屬性,二進制逆向人員可以利用go語言這些特有屬性來實現對二進制文件進行更精準的逆向分析。

特性1:利用go語言中特有的節信息來判斷elf/pe文件的源代碼語言類型,是go語言還是C、c++語言

通過判斷二進制文件中是否存在“.noptrdata”、“.gopclntab”、“.data.rel.ro.gopclntab”確定源代碼,如果存在上述節名稱,則源代碼為go語言。

pYYBAGNGp72ABkAxAAH9AIyrFyc565.png

特性2:在沒有符號表的情況下如何恢復函數名稱

我們知道在C/C++編譯出來的二進制文件中,如果沒有符號表信息是沒法看到函數名稱的,在IDA工具中只能看到地址信息。

poYBAGNGp8KAQpo2AABb2CrtXZU135.png

go語言怎么來恢復函數名稱呢,可以通過從.data.rel.ro節來恢復函數名,具體查找定位算法如下:

poYBAGNGp8iAcxcGAAAjqgNE0-Y597.png

方法1:

解析頭信息可以獲取magic, quantum, ptr_size, func_tab_count數據,當magic為’xfbxffxffxff’時,entry_size = 2 * ptr_size為entry結構體大小,func_tab_count 為entry結構體數量;解析entry結構獲取到名稱信息結構數據位置偏移(需要注意64位和32位go程序 func_info_offset位置相反),讀取名稱信息結構體數據,再從中獲取到名稱字符串位置偏移(name_offset),根據此偏移定位到函數名稱字符串起始位置偏移,從該位置解析得到函數名稱。

方法2:

另外1.16版本go語言結構有些新變化,magic變為’xfaxffxffxff’,解析頭信息獲取func_tab_cnt, file_cnt, func_name_off, cu_off, filetab_off, pctab_off, func_tab_off數據,其中func_tab_off為entry數據起始位置,解析entry結構獲取code_off, func_info_offset數據,后續解析過程與magic=’xfbxffxffxff’一致。

通過上述兩個方法可以恢復函數真實名稱,從而方便對go語言二進制文件的逆向分析,提升分析效率。

總結

華為云DevCloud一直致力于為客戶提供端到端提效、全鏈路安全的研發環境,除無需依賴源碼的二進制成分分析外,即將陸續發布更多的新技術、新能力,敬請期待。

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 二進制
    +關注

    關注

    2

    文章

    796

    瀏覽量

    41759
  • 華為云
    +關注

    關注

    3

    文章

    2694

    瀏覽量

    17592
  • go語言
    +關注

    關注

    1

    文章

    158

    瀏覽量

    9094
收藏 人收藏

    評論

    相關推薦

    偏移二進制二進制補碼如何和實際數據對應,如何轉換?

    偏移二進制二進制補碼如何和實際數據對應,如何轉換,請哪位高手解惑
    發表于 01-16 06:01

    bcd編碼的應用 bcd與二進制的區別

    BCD(Binary-Coded Decimal)編碼是一種二進制編碼形式,用于表示十進制數字。它將每個十進制數字(0-9)直接編碼為一個四位二進制數。BCD編碼的主要優點是易于閱讀和
    的頭像 發表于 12-20 17:11 ?1032次閱讀

    hex格式和二進制的區別

    HEX格式和二進制在多個方面存在顯著的區別。以下是對這兩者的對比: 一、定義與表示方式 HEX格式 : HEX,全稱為Intel HEX,是一種用于存儲和傳輸數據到嵌入式系統(如單片機)的文件格式
    的頭像 發表于 11-18 15:24 ?737次閱讀

    在線二進制編碼器:數據轉換的快捷通道

    在數字時代,數據的快速轉換與處理至關重要。二進制編碼,作為計算機內部數據表示的基礎,將信息轉化為0和1的序列,為數字世界構建了溝通的橋梁。然而,對于非專業用戶來說,手動進行二進制編碼既繁瑣又易出錯
    的頭像 發表于 11-15 09:01 ?1064次閱讀

    base64字符串轉換為二進制文件

    一些編程知識。以下是將Base64字符串轉換為二進制文件的一般步驟,以及一個簡單的Python示例代碼。 步驟: 獲取Base64字符串 :首先,你需要有一個Base64編碼的字符串。 解碼Base64字符串 :使用編程語言提供的庫函數將Base64字符串解碼為
    的頭像 發表于 11-10 10:55 ?1657次閱讀

    ASCII碼和二進制的轉換關系

    。ASCII碼使用7位二進制數來表示128個不同的字符,包括大小寫英文字母、數字0-9以及一些控制字符和標點符號。后來,ASCII碼被擴展到了8位,即ASCII-8BIT,可以表示256個不同的字符。 二進制
    的頭像 發表于 11-10 09:50 ?1922次閱讀

    二進制編碼器在自動化領域的作用

    二進制編碼器是一種將二進制信號轉換為數字信號的電子設備,廣泛應用于自動化領域。 一、二進制編碼器的工作原理 二進制編碼器是一種將二進制信號轉
    的頭像 發表于 11-06 09:53 ?466次閱讀

    二進制編碼器在機器人中的應用

    隨著科技的不斷進步,機器人技術已經成為現代工業、服務業乃至家庭生活中不可或缺的一部分。機器人的智能化程度不斷提高,這在很大程度上依賴于其傳感器系統。二進制編碼器作為一種傳感器,能夠將物理量轉換
    的頭像 發表于 11-06 09:48 ?534次閱讀

    二進制編碼器的種類及特點

    二進制編碼器是一種電子電路,用于將二進制信號轉換為其他格式,如十進制、格雷碼等。以下是一些常見的二進制編碼器種類及其特點: 優先編碼器(Priority Encoder) : 特點 :
    的頭像 發表于 11-06 09:47 ?676次閱讀

    二進制編碼器應用場景 二進制編碼器與模擬編碼器比較

    編碼器是將信息從一種形式或格式轉換為另一種形式的設備。在數字和模擬系統中,編碼器扮演著至關重要的角色。二進制編碼器和模擬編碼器是兩種常見的編碼器類型,它們在不同的應用場景中有著各自的優勢和局
    的頭像 發表于 11-06 09:45 ?600次閱讀

    二進制編碼器工作原理 如何選擇二進制編碼器

    二進制編碼器是一種數字電路,它將輸入的二進制代碼轉換為對應的輸出信號。在數字系統中,編碼器用于將數據從一種形式轉換為另一種形式,以便于處理和傳輸。 二進制編碼器工作原理 輸入與輸出關系 :
    的頭像 發表于 11-06 09:44 ?1162次閱讀

    二進制補碼及與原碼的互相轉換方法

    大沙把一些基礎的知識說清楚,本文介紹二進制補碼及與原碼的轉換方法。 先說原碼,原碼?是一種計算機中對數字的二進制定點表示方法。在原碼表示法中,數值前面增加了一位符號位,最高位為符號位,0表示正數,1
    的頭像 發表于 09-19 22:25 ?662次閱讀

    二進制處理中的一些技巧

    二進制和十進制的處理中,有時候一些小技巧是很有用的。 1、把十進制數轉換成二進制數 (1)在MATLAB中有一個函數dec2bin,可以把正整數轉換為2
    的頭像 發表于 07-05 11:51 ?634次閱讀

    二進制串行計數器工作原理是什么?

    在數字電路設計中,計數器是一種非常關鍵的組件,用于測量時間、計數事件或跟蹤狀態變化等。其中,二進制串行計數器作為一種常用的計數器類型,在多種應用場景中都發揮著重要作用。本文將對二進制串行計數器
    的頭像 發表于 05-28 15:52 ?968次閱讀

    如何實現二進制和BCD碼數據的相互轉變?

    如何實現二進制和BCD碼數據的相互轉變? 二進制碼是將十進制數字表示為二進制數和十進制數的一種表示方法。在計算機系統中,
    的頭像 發表于 02-18 14:51 ?3878次閱讀
    主站蜘蛛池模板: 美女隐私黄www视频 美女用手扒开尿口给男生桶爽 | 成人国产精品2021 | 精品国产第一页 | 免费看一级黄色录像 | 一本到卡二卡三卡福利 | 人人玩人人添天天爽 | 台湾三级毛片 | 欧美色视频在线观看 | 禁漫画羞羞动漫入口 | 韩日色图| 在线另类| 日本国产视频 | 色www视频永久免费软件 | 婷婷色站 | 日本视频三区 | 亚洲高清免费在线观看 | 韩国r天堂 | 美女天天操 | 亚洲日本欧美 | 免费看黄色一级毛片 | 国产精品久久久久影院色老大 | www.色.con| 男人j进入女人j视频大全 | 色综合天天综合网国产成人网 | 午夜黄色一级片 | 91成人免费观看 | 午夜韩国理论片在线播放 | 久久天天躁狠狠躁夜夜呲 | 好紧好爽水真多18 | 伊人毛片 | 激情五月婷婷基地 | 国模人体一区二区三区 | 青青伊人91久久福利精品 | 最新日本免费一区二区三区中文 | 91亚色视频 | 一区二区视频 | 亚洲成人在线播放 | 亚洲小视频在线播放 | 婷婷爱五月 | 永久在线 | 成在线人视频免费视频 |