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

    文章

    809

    浏览量

    43288
  • 华为云
    +关注

    关注

    3

    文章

    2837

    浏览量

    19390
  • go语言
    +关注

    关注

    1

    文章

    161

    浏览量

    9879
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    SN系列4位二进制全加器:快速进位的高效之选

    SN系列4位二进制全加器:快速进位的高效之选 引言 在电子电路设计领域,加法器是实现算术运算的基础组件,其性能直接影响到整个系统的运算速度和效率。TI的SN系列4位二进制全加器(SN54283
    的头像 发表于 04-23 13:05 212次阅读

    4位二进制全加器:SN54/74系列的技术剖析与应用指南

    4位二进制全加器:SN54/74系列的技术剖析与应用指南 在电子设计领域,加法器是实现数字运算的基础组件,而4位二进制全加器在众多数字电路设计中扮演着重要角色。今天,我们就来深入探讨德州仪器(TI
    的头像 发表于 04-23 13:05 228次阅读

    SN54F283和SN74F283:4位二进制全加器的技术解析

    SN54F283和SN74F283:4位二进制全加器的技术解析 在电子电路设计中,加法器是实现算术运算的基础组件。今天我们来深入了解一下德州仪器(TI)的SN54F283和SN74F283 4位
    的头像 发表于 04-23 10:15 318次阅读

    高速CMOS逻辑4位二进制全加器CDx4HC283和CDx4HCT283的技术解析

    高速CMOS逻辑4位二进制全加器CDx4HC283和CDx4HCT283的技术解析 今天来深入探讨一下德州仪器(TI)的CD54HC283、CD74HC283、CD54HCT283
    的头像 发表于 04-18 14:50 335次阅读

    CD4089B:高性能CMOS二进制速率乘法器的设计与应用

    CD4089B:高性能CMOS二进制速率乘法器的设计与应用 在电子设计领域,对于能够实现精确脉冲速率控制和多样化运算功能的器件需求始终存在。CD4089B作为一款高性能的CMOS二进制速率乘法器
    的头像 发表于 04-18 14:45 175次阅读

    74HC283 4位二进制全加器:设计利器深度解析

    74HC283 4位二进制全加器:设计利器深度解析 作为电子工程师,在数字电路设计中,加法器是我们经常会用到的基础元件。今天就来深入探讨一下74HC283 4位二进制全加器,它在诸多数字电路设计场景
    的头像 发表于 04-08 16:15 342次阅读

    CDx4HC283与CDx4HCT283:4位二进制全加器的技术解析与应用指南

    CDx4HC283与CDx4HCT283:4位二进制全加器的技术解析与应用指南 在数字电路设计领域,加法器是实现数值运算的基础元件之一。今天我们要深入探讨的CDx4HC283和CDx4HCT283
    的头像 发表于 01-30 17:20 906次阅读

    德州仪器4位二进制全加器:SN54/74系列的技术剖析

    德州仪器4位二进制全加器:SN54/74系列的技术剖析 在数字电路设计中,加法器是实现算术运算的基础组件。德州仪器的SN54283、SN54LS283、SN54S283、SN74283
    的头像 发表于 01-28 17:05 899次阅读

    探索CD54/74AC283与CD54/74ACT283:高效4位二进制加法器的奥秘

    和CD54/74ACT283是采用先进CMOS逻辑技术的4位二进制加法器,具备快速进位功能。它们能够将两个4位二进制数相加,并在和超过15时产生一个进位输出位。由于加法
    的头像 发表于 01-28 16:50 753次阅读

    CDx4HC283和CDx4HCT283:高速CMOS逻辑4位二进制全加器的详细解析

    CDx4HC283和CDx4HCT283:高速CMOS逻辑4位二进制全加器的详细解析 在电子设计领域,加法器是数字电路中最基本的运算单元之一,用于实现二进制数的加法运算。今天要给大家介绍
    的头像 发表于 01-19 14:50 597次阅读

    解析CD54/74AC283与CD54/74ACT283:4位二进制加法器的卓越之选

    CD54/74AC283和CD54/74ACT283是采用先进CMOS逻辑技术的4位二进制加法器,具备快速进位功能。这些器件能够将两个4位二进制数相加,并在和超过15时产
    的头像 发表于 01-08 16:55 805次阅读

    CD54/74AC283与CD54/74ACT283:高性能4位二进制加法器的全面解析

    : CD74AC283M96.pdf 产品概述 CD54/74AC283和CD54/74ACT283是采用先进CMOS逻辑技术的4位二进制加法器,能够快速处理两个4位二进制
    的头像 发表于 12-31 17:10 1609次阅读

    SN54F283与SN74F283:4位二进制全加器的技术剖析

    SN54F283与SN74F283:4位二进制全加器的技术剖析 在数字电路设计中,加法器是最基础且关键的组件之一。今天我们要深入探讨的是德州仪器(TI)的SN54F283和SN74F283这两款4位
    的头像 发表于 12-29 16:20 1286次阅读

    二进制查找(Binary Search)介绍

    二进制查找(Binary Search)用于在已排序的数组中执行二进制查找的函数。 int binary_search(int arr[], int size, int target
    发表于 12-12 06:54

    二进制数据处理方法分享

    时,我们如何去解析数据并且应用它们。本次的技术分享文章,我们就从如何传输数据和解析二进制数据来一步一步剥丝抽茧,搞清楚他的运作原理和二进制数据的数据结构。
    的头像 发表于 07-30 15:41 2674次阅读
    <b class='flag-5'>二进制</b>数据处理方法分享