一种针对VEXIR的优化方法与流程
- 国知局
- 2024-11-19 09:55:15
本发明实施例涉及网络信息安全,特别是涉及一种针对vex ir的优化方法。
背景技术:
1、在二进制相似度分析中,vex ir(intermediate representation,中间表示)是一个优秀的工具。其优点在于可以将不同架构下的二进制文件转化为同一种中间表示,以便于后续的特征提取等处理。然而,它的缺点在于没有一个较好的优化器,即使是同源的二进制文件,如果编译参数不同的话,转化后也会生成不同的vex ir语句,使得生成的中间表示语句有相当多的冗余。
2、因此,有必要提供一种针对vex ir的优化方法,以解决上述问题。
技术实现思路
1、本发明提供一种针对vex ir的优化方法,通过移除冗余的vex ir语句,以消除不同编译参数的二进制文件转化而来的vex ir语句之间的隔阂,并保留原本的语义。
2、本发明实施例提供一种针对vex ir的优化方法,所述方法包括:
3、获取连续的代码片段并将其转化为vex ir语句;
4、所述vex ir语句包括第一语句和第二语句,所述第一语句将第一变量存入第一寄存器,第二语句存入所述第一寄存器,当所述第一语句和第二语句中间所述第一寄存器没有被引用时,则删除所述第一语句;
5、所述vex ir语句包括第三语句,当所述第三语句用于改变第一变量的比特宽度和顺序操作并复制给第二变量时,将所述第三语句修改为第四语句,所述第四语句用于复制所述第一变量到第二变量;
6、所述vex ir语句包括第五语句和第六语句,当所述第五语句和第六语句的操作符相同但位数不同时,将所述第五语句和第六语句的操作符合并为一个统一的不考虑位数的操作符。
7、优选地,所述连续的代码片段包括连续的基本块、控制流图的一条随机路径。
8、优选地,所述vex ir语句包括第七语句,所述第七语句读取所述第一寄存器的值到第二变量,当所述第一语句和所述第七语句中间所述第一寄存器没有被重新写入,则删除所述第一语句,所述第七语句改为所述第四语句用于复制所述第一变量到所述第二变量。
9、优选地,所述vex ir语句包括第八语句,所述第八语句引用了第三变量,当所述第四语句用于复制第一变量到第二变量,以及复制第二变量到第三变量时,则删除所述第四语句,将所述第八语句对所述第三变量的引用改为对所述第一变量的引用。
10、优选地,所述vex ir语句包括第九语句和第十语句;
11、当所述第九语句读取所述第一寄存器到第一变量,第十语句读取所述第一寄存器到第二变量时,且所述第九语句和所述第十语句中间所述第一变量没有被重新赋值,则删除所述第十语句,并将后续对所述第二变量的引用所述第一变量替代;
12、当所述第九语句读取所述第一寄存器到第一变量、所述第十语句读取第二寄存器到第一变量,且所述第九语句和所述第十语句中间所述第一变量没有被引用,则删除所述第九语句。
13、优选地,删除以常数赋值初始化变量的语句,并在后续引用该变量的表达式中以该常数替换;对于替换后完全使用常数进行计算的操作,则直接用其结果代替操作符。
14、优选地,所述vex ir语句包括第十一语句和第十二语句;
15、当所述第十一语句读取第一内存到第一变量,第十二语句读取第一内存到第二变量时,且所述第十一语句和所述第十二语句中间所述第一变量没有被重新赋值,则删除所述第十二语句,并将后续对第二变量的引用用第一变量替代;
16、当所述第十一语句读取所述第一内存到第一变量、所述第十二语句读取第二内存到第二变量时,且所述第十一语句和所述第十二语句中间所述第一变量没有被引用,则删除所述第十一语句。
17、优选地,所述vex ir语句包括第十一语句和第十三语句,所述第十三语句用于将第十一语句的第一变量的值存储到所述第一内存,当所述第十一语句和所述第十三语句之间所述第一变量的值没有被更新,则删除所述第十三语句。
18、优选地,所述vex ir语句包括第十三语句和第十四语句,所述第十四语句用于将第二变量的值存储到所述第十三语句的所述第一内存,当所述第十三语句和所述第十四语句之间没有读取所述第一内存,则删除所述第十三语句。
19、优选地,将使用负数的操作修改为使用正数的相同意义的操作。
20、与现有技术相比,本发明实施例的技术方案具有以下有益效果:
21、本发明实施例的针对vex ir的优化方法,所述方法包括:获取连续的代码片段并将其转化为vex ir语句;所述vex ir语句包括第一语句和第二语句,所述第一语句将第一变量存入第一寄存器,第二语句将第二变量存入所述第一寄存器,当所述第一语句和第二语句中间所述第一寄存器没有被引用时,则删除所述第一语句;所述vex ir语句包括第三语句,当所述第三语句用于改变第一变量的比特宽度和顺序操作并复制给第二变量时,将所述第三语句修改为第四语句,所述第四语句用于复制所述第一变量到第二变量;所述vexir语句包括第五语句和第六语句,当所述第五语句和第六语句的操作符相同但位数不同时,将所述第五语句和第六语句的操作符合并为一个统一的不考虑位数的操作符,通过移除冗余的vex ir语句,以消除不同编译参数的二进制文件转化而来的vex ir语句之间的隔阂,并保留原本的语义。
技术特征:1.一种针对vex ir的优化方法,其特征在于,所述方法包括:
2.根据权利要求1所述的针对vex ir的优化方法,其特征在于,所述连续的代码片段包括连续的基本块、控制流图的一条随机路径。
3.根据权利要求1所述的针对vex ir的优化方法,其特征在于,所述vex ir语句包括第七语句,所述第七语句读取所述第一寄存器的值到第二变量,当所述第一语句和所述第七语句中间所述第一寄存器没有被重新写入,则删除所述第一语句,所述第七语句改为所述第四语句用于复制所述第一变量到所述第二变量。
4.根据权利要求3所述的针对vex ir的优化方法,其特征在于,所述vex ir语句包括第八语句,所述第八语句引用了第三变量,当所述第四语句用于复制第一变量到第二变量,以及复制第二变量到第三变量时,则删除所述第四语句,将所述第八语句对所述第三变量的引用改为对所述第一变量的引用。
5.根据权利要求3所述的针对vex ir的优化方法,其特征在于,所述vex ir语句包括第九语句和第十语句;
6.根据权利要求4所述的针对vex ir的优化方法,其特征在于,删除以常数赋值初始化变量的语句,并在后续引用该变量的表达式中以该常数替换;对于替换后完全使用常数进行计算的操作,则直接用其结果代替操作符。
7.根据权利要求5所述的针对vex ir的优化方法,其特征在于,所述vex ir语句包括第十一语句和第十二语句;
8.根据权利要求7所述的针对vex ir的优化方法,其特征在于,所述vex ir语句包括第十一语句和第十三语句,所述第十三语句用于将第十一语句的第一变量的值存储到所述第一内存,当所述第十一语句和所述第十三语句之间所述第一变量的值没有被更新,则删除所述第十三语句。
9.根据权利要求8所述的针对vex ir的优化方法,其特征在于,所述vex ir语句包括第十三语句和第十四语句,所述第十四语句用于将第二变量的值存储到所述第十三语句的所述第一内存,当所述第十三语句和所述第十四语句之间没有读取所述第一内存,则删除所述第十三语句。
10.根据权利要求6所述的针对vex ir的优化方法,其特征在于,将使用负数的操作修改为使用正数的相同意义的操作。
技术总结本发明提供一种针对VEX IR的优化方法,包括:获取连续的代码片段并将其转化为VEX IR语句;VEX IR语句包括第一、第二语句,第一、第二语句分别将第一、第二变量存入第一寄存器,当第一、第二语句中间第一寄存器没有被引用时,删除第一语句;VEX IR语句包括第三语句,当第三语句用于改变第一变量的比特宽度和顺序操作并复制给第二变量时,将第三语句修改为第四语句,第四语句用于复制所述第一变量到第二变量;VEX IR语句包括第五、第六语句,当第五、第六语句的操作符相同但位数不同时,将第五、第六语句的操作符合并为一个统一的不考虑位数的操作符。通过移除冗余的VEX IR语句,以消除不同编译参数的二进制文件转化而来的VEX IR语句间的隔阂,并保留原本的语义。技术研发人员:陈壮壮受保护的技术使用者:上海安般信息科技有限公司技术研发日:技术公布日:2024/11/14本文地址:https://www.jishuxx.com/zhuanli/20241118/330669.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。
下一篇
返回列表