[发明专利]一种指令重组方法和装置有效
申请号: | 201710207794.2 | 申请日: | 2017-03-31 |
公开(公告)号: | CN106951745B | 公开(公告)日: | 2019-10-18 |
发明(设计)人: | 孙吉平 | 申请(专利权)人: | 北京深思数盾科技股份有限公司 |
主分类号: | G06F21/14 | 分类号: | G06F21/14;G06F9/318 |
代理公司: | 北京品源专利代理有限公司 11332 | 代理人: | 孟金喆;胡彬 |
地址: | 100193 北京市海淀区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 指令 重组 方法 装置 | ||
本发明公开了一种指令重组方法和装置。指令重组方法包括:从初始指令中提取至少一条有效指令;对有效指令进行等效变形得到第一等效指令;将第一等效指令替换所述的有效指令得到第一重组指令;向所述第一重组指令中添加至少一条花指令得到第二重组指令。本发明解决传统方法生成的花指令没有对程序起到较好的保护作用的问题,进而生成比较复杂的指令片段,在不影响程序正常运行效率的前提下增加了破解难度,对程序起到更好的保护作用。
技术领域
本发明实施例涉及信息安全领域,尤其涉及一种指令重组方法和装置。
背景技术
花指令是对抗反汇编的有效手段之一,正常代码添加了花指令之后,可以破坏静态反汇编的过程,使反汇编的结果出现错误。错误的反汇编结果会造成破解者的分析工作大量增加,进而使之不能理解程序的结构和算法,也就很难破解程序,从而达到病毒或软件保护的目的。
传统的花指令生成过程中,设计者首先会找到某段汇编空闲的寄存器,并那个对该寄存器添加花指令。破解者在对花指令的破解过程中,仅需该寄存器中的花指令抹去,即可轻松完成破解程序的任务,破解难度低下。
传统方法生成的花指令都是由一些无效指令构成,与程序中的上下文没有关联,因此直接抹去也不会影响到程序的正常运行,没有对程序起到较好的保护作用。
发明内容
本发明提供一种指令重组方法和装置,以解决传统方法生成的花指令没有对程序起到较好的保护作用的问题。
第一方面,本发明实施例提供了一种指令重组方法,包括:
从初始指令中提取至少一条有效指令;
对所述有效指令进行等效变形得到第一等效指令;
将所述第一等效指令替换所述有效指令得到第一重组指令;
向所述第一重组指令中添加至少一条花指令得到第二重组指令。
进一步的,所述向所述第一重组指令中添加至少一条花指令得到第二重组指令之后,还包括:
从所述第二重组指令中提取一条指令作为待处理指令;
对所述待处理指令进行等效变换得到第二等效指令;
将所述第二等效指令替换所述第二重组指令中提取的有效指令得到第三重组指令。
进一步的,所述向所述第一重组指令中添加至少一条花指令得到第二重组指令,包括:
将所述花指令拆分为至少两个花指令片段;
确定所述第一重组指令中的指令数量,根据所述指令数量确定所述花指令片段的添加位置;
根据所述添加位置将所述花指令片段添加到所述第一重组指令中得到第二重组指令。
进一步的,所述等效变形操作包括指令交换操作、取地址操作、取反操作和指令压缩操作。
第二方面,本发明实施例还提供了一种指令重组装置,该装置包括:
有效指令提取模块,用于从初始指令中提取至少一条有效指令;
等效变形模块,对所述有效指令进行等效变形得到第一等效指令;
指令替换模块,用于将所述第一等效指令替换所述有效指令得到第一重组指令;
花指令添加模块,用于向所述第一重组指令中添加至少一条花指令得到第二重组指令。
进一步的,指令重组装置还包括:
指令二次提取模块,用于从所述第二重组指令中提取一条指令作为待处理指令;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京深思数盾科技股份有限公司,未经北京深思数盾科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710207794.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种铜杆表面除尘装置
- 下一篇:一种市政用路灯杆清洗装置