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

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創作中心

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

3天內不再提示

基于源碼的二進制SCA特征生成技術

zz愛尚科技 ? 來源:zz愛尚科技 ? 作者:zz愛尚科技 ? 2022-10-13 13:56 ? 次閱讀

基于源碼的二進制SCA特征生成技術

檢測原理及流程簡介:

在二進制SCA檢測原理中提到對于常量字符串、部分類名稱、函數名稱、以及一些配置信息還是存在的,并且這些信息具備一定的不變性;因此二進制SCA工具其中的一部分特征來源就包含這些信息。因此在特征庫保存有每個開源軟件的特征,二進制SCA工具在檢測時會從待檢測二進制文件中提取出特征,通過算法和特征庫的保存的開源軟件特征進行相似度計算,從而判斷該二進制文件中引用了哪些開源軟件及對應的版本號。

二進制SCA檢測處理流程:****

image.png

從檢測流程和方法中可以看出特征庫中保存的特征來源并沒有規定一定從二進制文件中生成,而是只要滿足特征庫中的特征必須和二進制中生成的特征要一致,因為計算相似度時其中一個輸入的特征是從二進制文件中提取到的。很明顯特征庫中特征來源無非就2條路徑:一條來自二進制文件,另外一條那就是來自生成二進制的源代碼。

不同特征來源優缺點比較:

1. 二進制文件特征提取優點:

基于二進制文件來提取特征具有提取方便,和檢測時提取方法一致,不需要額外開發提取工具和提取算法。

2. 二進制文件特征提取缺點:

a. 二進制文件首先需要由源代碼編譯出來,而搭建構建編譯環境可能會很復雜,需要很多額外的工作量,效率低;

b.由于編譯宏的原因,由源代碼生成的二進制文件并不一定是全量源代碼都包含中其中的,可能只有部分源代碼參與生成最終的二進制文件;

c.由于構建依賴的原因,二進制文件中包含有依賴對象的信息,也就是說包含有源代碼之外對象的信息,這會導致提取到的特征純度不足,直接影響到檢測結果的準確性;

3. 源碼特征提取優點:

正好可以解決從二進制文件中生成特征的短板問題,不需要編譯可以大大提升自動化出來水平和提取效率,提取到的特征只限于源代碼中的特征和其他無關,提取到的特征純度很高。

4. 源碼特征提取缺點:

針對不同語言類型需要額外開發相應的特征提取工具來實現特征提取,開發工作量大,且不同語言的特征提取工具開的發難度也不一樣,對開發者是一個挑戰。

基于源碼的特征生成方法:

不同語言具有不同的特點,在考慮基于源碼的特征生成方法時需要考慮到語言特點來采用針對性的方法來解決,這樣可以起到事半功倍的作用。下面針對不同語言分別來說明對應的解決方法:

C語言:沒有類的復雜性,在構建時只要用到的源碼文件,該文件中的所有函數信息都會被一起編譯進二進制文件中。

C++語言:引入了類的復雜性,在構建時只要引用了類的實例,該類信息才會被編譯到二進制文件中,而不像C語言一個源代碼文件是一個整體來處理的。另外類中的構造函數和析構函數會被編譯器自動引入在二進制文件中,從而出現源代碼和二進制文件不一致情況。

Java語言:也存在類的復雜性,特別是嵌套類和內部類的情況,這也導致源代碼特征和二進制特征之間的處理難點。

Go語言:具備依賴管理機制,但編譯出來的二進制文件卻和C、C++一樣具有PE、ELF格式,go語言的模塊特性也帶來了源碼提取的特征和二進制之間的差別,此外go語言相比C、C++來說更容易生成對應源代碼的抽象語法樹AST。

Python語言:也具備依賴管理機制,但pyc和pyd之間差別很大,pyc是字節碼格式可以很方便的進行反編譯,但pyd則像C、C++一樣是指令碼式文件,因此特征提取方法完全不一樣,同樣也帶來了源代碼提取特征和二進制提取特征之間的不一致問題需要解決,比如:1. python源碼在編譯成pyc時有一些編譯優化,在源碼提取特征時要加入編譯優化,且不同版本編譯優化有差異,統一使用最多的編譯優化提取源碼特征并且pyc文件提取特征時也需要進行適當的優化;2. python不同版本同一代碼翻譯成的指令序列不一樣,pyc提取特征時要兼容多個版本;3. py2、py3的pyc中字符串的編碼方式不一樣,而且unicode的支持范圍不一樣,需要保證字符串特征提取一致;同樣Python源代碼也相對容易的可以生成對應源代碼的抽象語法樹AST。

另外對于C、C++源代碼由于存在依賴和構建環境的原因而導致源代碼無法編譯,而很多工具需要能編譯成功才能獲取到AST的,比如CDT、Clang等,在這種情況下就沒法使用了,必須使用具備詞法分析和語法分析能力的工具來獲取特征相關一些數據,比如cppcheck工具。不管是基于AST還是詞法、語法分析輸出數據,都需要自己在此數據的基礎上開發相應的數據分析工具來提取到最終的開源軟件特征,并且該特征數據和從二進制文件中提取到的特征數據具有很好的一致性要求。

總結 :只有具備從源碼中生成上述特征,才能充分利用源碼特征提取優點,進行自動化的特征提取,提升特征提取效率,快速實現對新出現開源軟件的檢測能力。
審核編輯:湯梓紅

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

    關注

    2

    文章

    803

    瀏覽量

    42047
  • SCA
    SCA
    +關注

    關注

    1

    文章

    37

    瀏覽量

    12093
  • 源碼
    +關注

    關注

    8

    文章

    665

    瀏覽量

    30047
收藏 0人收藏

    評論

    相關推薦

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

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

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

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

    hex格式和二進制的區別

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

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

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

    ASCII碼和二進制的轉換關系

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

    二進制編碼器的精度與分辨率

    在數字電子系統中,二進制編碼器扮演著至關重要的角色。它負責將外部世界的模擬信號轉換為計算機可以理解的數字信號。精度和分辨率是衡量二進制編碼器性能的兩個關鍵指標。 1. 二進制編碼器的基本原理
    的頭像 發表于 11-06 09:56 ?934次閱讀

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

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

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

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

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

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

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

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

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

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

    C語言生成可執行二進制文件的具體過程

    和產物。下面,小杜通過一個具體的例子詳細講述這個過程,以及如何通過反匯編(Disassembly)來查看匯編、鏈接產生的不可讀二進制目標文件。
    的頭像 發表于 10-21 14:30 ?1236次閱讀
    C語言<b class='flag-5'>生成</b>可執行<b class='flag-5'>二進制</b>文件的具體過程

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

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

    二進制處理中的一些技巧

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

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

    在數字電路設計中,計數器是一種非常關鍵的組件,用于測量時間、計數事件或跟蹤狀態變化等。其中,二進制串行計數器作為一種常用的計數器類型,在多種應用場景中都發揮著重要作用。本文將對二進制串行計數器
    的頭像 發表于 05-28 15:52 ?1230次閱讀
    主站蜘蛛池模板: 婷婷六月激情综合一区 | 叔叔 电影完整版免费观看韩国 | 女警被黑人20厘米强交 | 污污内射久久一区二区欧美日韩 | 中国老头oldday tv | 成人在线免费看片 | 伦理片免费秋霞e | 99精品国产福利在线观看 | 97免费人妻在线观看 | 在线亚洲专区中文字幕 | 佐山爱痴汉theav | 精品一成人岛国片在线观看 | 欧美成人中文字幕在线视频 | 欧美午夜精品久久久久久浪潮 | beeg日本老师按摩 | 四虎永久免费 | 久久精品中文字幕 | 亚洲成人精品久久 | 蜜桃色欲AV久久无码精品 | 日日踫夜夜爽无码久久 | 久久亚洲视频 | 女厕所边摸边吃奶边做爽视频 | 日本护士在线观看 | 久久理论片迅播影院一级 | 精品国产乱码久久久久乱码 | 国产做国产爱免费视频 | 日日日夜夜在线视频 | 91精品国产高清久久久久久 | 免费。色婬网站 | 亚洲 日韩 国产 中文视频 | 久久久久亚洲 | 亚洲欧美综合在线中文 | 成人午夜精品无码区久久漫画日本 | 天天躁日日躁狠狠躁中文字幕老牛 | 大肥婆丰满大肥奶bbw肥 | 日韩一区二区天海翼 | 有人有片的观看免费视频 | 女教师苍井空体肉女教师S242 | 伊人久久大香线蕉综合影 | 91涩涩视频 | 日本午夜视频在线 |

    電子發燒友

    中國電子工程師最喜歡的網站

    • 2931785位工程師會員交流學習
    • 獲取您個性化的科技前沿技術信息
    • 參加活動獲取豐厚的禮品