[发明专利]汇编代码清除混淆的方法、装置、介质及设备有效
申请号: | 201911066489.1 | 申请日: | 2019-11-04 |
公开(公告)号: | CN110837372B | 公开(公告)日: | 2021-01-26 |
发明(设计)人: | 周成 | 申请(专利权)人: | 贵阳动视云科技有限公司 |
主分类号: | G06F8/53 | 分类号: | G06F8/53;G06F21/14 |
代理公司: | 北京名华博信知识产权代理有限公司 11453 | 代理人: | 李冬梅 |
地址: | 550000 贵州省贵阳市贵阳国家高新技*** | 国省代码: | 贵州;52 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 汇编 代码 清除 混淆 方法 装置 介质 设备 | ||
本文是关于一种汇编代码混淆清除方法、装置、介质及设备,汇编代码混淆清除方法包括将混淆后的汇编代码按划分方法划分为多个代码块;对所述多个代码块合并优化;对合并优化后的代码块清除混淆。通过本文提供的汇编代码混淆清除方法,可以有效清除混淆代码中的无用代码,花指令等,还原代码本来面目,使代码变得简洁,易于分析。
技术领域
本文涉及反汇编,尤其涉及汇编代码清除混淆的方法、装置、介质及设备。
背景技术
相关技术中,在逆向分析过程中经常会遇到汇编代码被混淆、膨胀、乱序的情况,如果人工分析,会浪费大量的时间来观察这些无用的代码。通用的花指令去除工具也是利用收集到花指令的特征,对花指令进行正则匹配后将花指令去除。如花指令经过一些变形后,正则匹配就会失效,花指令无法清除。
发明内容
为克服相关技术中存在的问题,本文提供一种汇编代码清除混淆的方法、装置、介质及设备。
根据本文的第一方面,提供一种汇编代码清除混淆方法,包括:
将混淆后的汇编代码划分为多个代码块;
对所述多个代码块合并优化;
对合并优化后的代码块清除混淆。
所述将混淆后的汇编代码划分为多个代码块包括:
以混淆后的汇编代码的第一条汇编代码或跳转指令执行的目标代码为代码块的首代码;
以跳转指令代码为代码块的结束代码。
所述对所述多个代码块合并优化包括:
以跳转顺序遍历所述多个代码块,分析每一代码块的跳转关系,如果某一代码块中跳转指令代码只存在一条跳转指令,则将所述代码块与下一代码块合并。
所述对合并优化后的代码块进行混淆清除包括:
将寄存器设置为32/64位寄存器;
对合并优化后的代码块由后向前分析,删除后面没有代码块的比较指令代码;删除用于设置标志寄存器CF标志的指令代码;删除用于扩展寄存器类型的指令代码;清除寄存器在运算后被重新赋值的无用指令代码。
根据本文的另一方面,提供一种汇编代码清除混淆装置,包括划分模块,用于将将混淆后的汇编代码按划分方法划分为多个代码块;
合并模块,用于对所述多个代码块合并优化;
清除模块,用于对合并优化后的代码块清除混淆。
所述划分模块对混淆后的汇编代码进行划分包括:
以混淆后的汇编代码的第一条汇编代码或跳转指令执行的目标代码为代码块的首代码;
以跳转指令代码为代码块的结束代码。
所述合并模块顺序遍历所述多个代码块,分析每一代码块的跳转关系,如果某一代码块中跳转指令代码只存在一个跳转指令,则将所述代码块与下一代码块合并。
所述清除模块将寄存器设置为32/64位寄存器;
对合并优化后的代码块由后向前分析,删除后面没有代码块的比较指令代码;删除用于设置标志寄存器CF标志的指令代码;删除用于扩展寄存器类型的指令代码;清除寄存器在运算后被重新赋值的无用指令代码。
根据本文的另一方面,一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被执行时实现如权利要求1-4中任意一项所述方法的步骤。
根据本文的另一方面,一种计算机设备,包括处理器、存储器和存储于所述存储器上的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1-4中任意一项所述方法的步骤。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于贵阳动视云科技有限公司,未经贵阳动视云科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911066489.1/2.html,转载请声明来源钻瓜专利网。
- 上一篇:IGBT驱动模块
- 下一篇:一种未知实体词汇的确定方法及装置