[发明专利]一种二进制代码质量评估的方法在审
申请号: | 202110306050.2 | 申请日: | 2021-03-23 |
公开(公告)号: | CN112882952A | 公开(公告)日: | 2021-06-01 |
发明(设计)人: | 吴宗鸿 | 申请(专利权)人: | 浙江鸿城科技有限责任公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 310000 浙江省杭州市滨*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 二进制 代码 质量 评估 方法 | ||
1.一种二进制代码质量评估的方法,其特征在于,所述方法包括:
反汇编可执行二进制文件,根据函数调用特征,获取函数代码块及所述函数代码块在文件中的路径信息,所述函数调用特征包括:CALL指令、CS或ECS代码段寄存器的修改指令、IP或EIP指令指针寄存器的修改指令;
根据所述函数代码块原始二进制数值计算散列值KCODE,根据所述散列值KCODE从熵权值库中获取对应的熵权值1,根据所述路径信息对所述熵权值进行放大或缩减获得熵权值2,根据所述函数代码块及对应的所述熵权值2采用熵值法计算代码熵值HCODE;
静态解析所述目标二进制文件,获取数据节、导入表节信息;对所述数据节解析获取数据片段,根据所述数据片段从数据敏感库中获取对应的敏感值,根据所述数据片段的敏感值生成数据敏感度SDATA;
根据所述导入表节子节点的特征信息,从导入库中获取对应的安全值,根据所述子节点的安全值生成导入安全度SDLL;
按线性加权的方法对所述代码熵值HCODE、数据敏感度SDATA、导入安全度SDLL进行计算获取质量值QVALUE,当所述质量值QVALUE大于预定义阈值时,则触发报警。
2.根据权利要求1所述的一种二进制代码质量评估的方法,其特征在于,还包括:查找所述函数代码块时,再次碰到所述CALL指令、CS或ECS代码段寄存器的修改指令、IP或EIP指令指针寄存器的修改指令时,将当前查找信息压入栈中,以递归的方式继续查找。
3.根据权利要求1所述的一种二进制代码质量评估的方法,其特征在于,所述路径信息,包括函数调用树及所述函数代码块的统计信息。
4.根据权利要求1所述的一种二进制代码质量评估的方法,其特征在于,还包括:所述数据节按十六进制0为分割点获取所述数据片段。
5.根据权利要求1所述的一种二进制代码质量评估的方法,其特征在于,还包括:当所述质量值QVALUE大于预定义阈值时,如果所述散列值KCODE未出现在所述熵权值库中,则添加到所述熵权值库中,初始化所述熵权值为0.5,并存储所述散列值KCODE对应的所述函数代码块;如果所述散列值KCODE已出现在所述熵权值库中,则对应的所述熵权值增加0.1。
6.根据权利要求1所述的一种二进制代码质量评估的方法,其特征在于,所述熵权值最大不超过5。
7.根据权利要求1所述的一种二进制代码质量评估的方法,其特征在于,还包括:当所述质量值QVALUE大于预定义阈值时,如果所述数据敏感库未能匹配所述数据片段,则保存所述数据片段内容。
8.根据权利要求1所述的一种二进制代码质量评估的方法,其特征在于,还包括:当所述质量值QVALUE大于预定义阈值时,如果所述导入库中不存在所述子节点的特征信息,则保存所述子节点的特征信息。
9.根据权利要求1所述的一种二进制代码质量评估的方法,其特征在于,所述可执行二进制文件的格式,包括:PE格式,ELF格式。
10.根据权利要求1所述的一种二进制代码质量评估的方法,其特征在于,所述反汇编,还包括:从指定的区域开始反汇编。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江鸿城科技有限责任公司,未经浙江鸿城科技有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110306050.2/1.html,转载请声明来源钻瓜专利网。