买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】一种基于LLVM的指令加花混淆方法及装置_北京大学_202111680645.0 

申请/专利权人:北京大学

申请日:2021-12-31

公开(公告)日:2024-04-16

公开(公告)号:CN114357389B

主分类号:G06F21/14

分类号:G06F21/14;G06F8/76

优先权:

专利状态码:有效-授权

法律状态:2024.04.16#授权;2022.05.03#实质审查的生效;2022.04.15#公开

摘要:本发明公布了一种基于LLVM的指令加花混淆方法及装置,该方法将待混淆的源程序转换为LLVM中间表示文件,并提取函数、原始基本块和指令信息;对每一个原始基本块内的所有指令进行依赖分析,按照指令间的依赖关系将原始基本块内的指令拆分为若干指令依赖集合,随机选择一个位置,将原始基本块切分为第一基本块和第二基本块;在第一基本块和第二基本块之间插入叠加跳转指令,进一步还可以插入虚假循环指令,将混淆后的中间表示文件转换为目标平台的可执行文件。本发明方法可在充分利用源程序中指令信息的同时,有效干扰逆向人员的分析,加大静态分析的难度;另外,本发明基于LLVM中间表示层,可应用于不同的前端编程语言和目标机器架构,具有通用性。

主权项:1.一种基于LLVM的指令加花混淆方法,其特征在于,包括以下步骤:将待混淆的源程序转换为LLVM中间表示文件,并提取函数、原始基本块和指令信息;对每一个原始基本块内的所有指令进行依赖分析,按照指令间的依赖关系将原始基本块内的指令拆分为若干指令依赖集合,每个所述指令依赖集合中的指令之间存在数据依赖关系;从所述指令依赖集合之间随机选择一个位置,将所述原始基本块切分为第一基本块和第二基本块;在所述第一基本块和所述第二基本块之间插入叠加跳转指令,所述叠加跳转指令包括与所述第二基本块不同的第三基本块和第三基本块与第一基本块、第二基本块之间的跳转关系;具体包括:以切分后的第二基本块为原型创建副本得到副本基本块;随机修改副本基本块中指令的操作符和操作数得到第三基本块;使用动态不透明谓词构建所述第一基本块、第二基本块和第三基本块之间的跳转关系,当条件为真跳转到所述第二基本块,当条件为假跳转到所述第三基本块;在所述第一基本块和所述第三基本块之间插入虚假循环指令,所述虚假循环指令包括循环入口、循环条件和循环体;其中所述循环条件为从所述原始基本块中随机选择的变量,包括当跳转关系中的条件为假时,跳转到循环入口;当满足循环条件时会跳转到循环体,直到不满足循环条件,跳转到第三基本块;所述第三基本块的数量为2个及以上;将混淆后的中间表示文件转换为目标平台的可执行文件。

全文数据:

权利要求:

百度查询: 北京大学 一种基于LLVM的指令加花混淆方法及装置

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。