-
公开(公告)号:CN108897572A
公开(公告)日:2018-11-27
申请号:CN201810793950.2
申请日:2018-07-19
Applicant: 北京理工大学 , 北京计算机技术及应用研究所
IPC: G06F8/72
Abstract: 本发明公开了一种基于变量关联树的复杂类型重构方法,该方法具体为:将待处理的二进制程序转化为汇编程序,并对汇编程序中的各函数单元进行变量关联树VRT的创建;依据变量关联树VRT创建变量地址映射表VAM;根据汇编程序对变量关联树VRT中节点的属性信息进行更新得到最终VRT,同时更新变量地址映射表VAM,最终VRT对应的变量地址映射表VAM包含了汇编程序的基本类型重构结果。识别筛选出根节点的运算符属性为解引用的最终VRT作为指针VRT,其中B+C形式指针VRT对应的复杂类型为结构体,B+V+C形式指针VRT对应的复杂类型为数组,对于B+C形式指针VRT和B+V+C形式指针VRT分别采用不同的方法进行结构体和数组的重构。该方法能够实现快速、有效的复杂类型重构,且重构结果较为准确。
-
公开(公告)号:CN108897572B
公开(公告)日:2020-09-15
申请号:CN201810793950.2
申请日:2018-07-19
Applicant: 北京理工大学 , 北京计算机技术及应用研究所
IPC: G06F8/72
Abstract: 本发明公开了一种基于变量关联树的复杂类型重构方法,该方法具体为:将待处理的二进制程序转化为汇编程序,并对汇编程序中的各函数单元进行变量关联树VRT的创建;依据变量关联树VRT创建变量地址映射表VAM;根据汇编程序对变量关联树VRT中节点的属性信息进行更新得到最终VRT,同时更新变量地址映射表VAM,最终VRT对应的变量地址映射表VAM包含了汇编程序的基本类型重构结果。识别筛选出根节点的运算符属性为解引用的最终VRT作为指针VRT,其中B+C形式指针VRT对应的复杂类型为结构体,B+V+C形式指针VRT对应的复杂类型为数组,对于B+C形式指针VRT和B+V+C形式指针VRT分别采用不同的方法进行结构体和数组的重构。该方法能够实现快速、有效的复杂类型重构,且重构结果较为准确。
-
公开(公告)号:CN109117142B
公开(公告)日:2020-11-24
申请号:CN201810793986.0
申请日:2018-07-19
Applicant: 北京理工大学
IPC: G06F8/53
Abstract: 本发明公开了一种基于变量关联树的基本类型重构方法,是一种轻量级的基本数据类型重构方法。该方法具体为:将待处理的二进制程序转化为汇编程序后以函数为单元进行如下处理:提取函数单元中汇编指令的操作数,构建变量关联树VRT,并建立对应的变量地址映射表VAM,利用汇编程序中寄存器和汇编指令中的变量类型信息作为第一约束规则,利用VRT中各变量间的运算关系作为第二约束规则,采用第一和第二约束规则分别对VRT中的节点的类型约束信息属性进行更新,采用汇编程序中已知函数的参数和返回值的类型信息在VRT上进行传播,获得最终VRT,以上过程中实时更新VAM中变量的类型约束信息属性。所有函数单元分析完成得到的VAM包含了基本类型重构结果。
-
公开(公告)号:CN109117142A
公开(公告)日:2019-01-01
申请号:CN201810793986.0
申请日:2018-07-19
Applicant: 北京理工大学
IPC: G06F8/53
CPC classification number: G06F8/53
Abstract: 本发明公开了一种基于变量关联树的基本类型重构方法,是一种轻量级的基本数据类型重构方法。该方法具体为:将待处理的二进制程序转化为汇编程序后以函数为单元进行如下处理:提取函数单元中汇编指令的操作数,构建变量关联树VRT,并建立对应的变量地址映射表VAM,利用汇编程序中寄存器和汇编指令中的变量类型信息作为第一约束规则,利用VRT中各变量间的运算关系作为第二约束规则,采用第一和第二约束规则分别对VRT中的节点的类型约束信息属性进行更新,采用汇编程序中已知函数的参数和返回值的类型信息在VRT上进行传播,获得最终VRT,以上过程中实时更新VAM中变量的类型约束信息属性。所有函数单元分析完成得到的VAM包含了基本类型重构结果。
-
-
-