[发明专利]一种基于代码变形的二进制代码混淆方法有效
申请号: | 201410018508.4 | 申请日: | 2014-01-15 |
公开(公告)号: | CN103778355B | 公开(公告)日: | 2017-02-15 |
发明(设计)人: | 王怀军;房鼎益;李光辉;张聪;许广莲;董浩;王瑾榕;党舒凡;王琳;姜河;何路;陈晓江 | 申请(专利权)人: | 西北大学 |
主分类号: | G06F21/14 | 分类号: | G06F21/14 |
代理公司: | 西安恒泰知识产权代理事务所61216 | 代理人: | 林兵 |
地址: | 710069 *** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种基于代码变形的二进制代码混淆方法,按下列步骤进行步骤1,确定变形模板库;步骤2,PE文件检测;步骤3,定位关键代码段;步骤4,对关键代码段进行反汇编得到汇编指令序列,并识别该段代码中的循环结构,计算关键代码段中各条指令的权重;步骤5,对汇编指令序列中所有汇编指令的变形;步骤6,对汇编指令序列切片和乱序;步骤7,将步骤6生成的新的汇编指令序列进行汇编,转换成二进制代码;步骤8,PE文件重构。该方法利用计算机系统,对windows系统下的可执行二进制代码文件进行混淆,保护强度高、易于扩展。 | ||
搜索关键词: | 一种 基于 代码 变形 二进制 混淆 方法 | ||
【主权项】:
一种基于代码变形的二进制代码混淆方法,其特征在于,按下列步骤进行:步骤1,确定变形模板库;步骤2,PE文件检测;步骤3,定位关键代码段;步骤4,对关键代码段进行反汇编得到汇编指令序列,并识别该段代码中的循环结构,计算关键代码段中各条指令的权重;步骤5,对汇编指令序列中所有汇编指令的变形;步骤6,对汇编指令序列切片和乱序:步骤7,将步骤6生成的新的汇编指令序列进行汇编,转换成二进制代码;步骤8,PE文件重构;所述步骤4的具体步骤如下:(1)在待变形文件中找到关键代码段;(2)将关键代码段的二进制代码进行反汇编得到汇编指令,并按照汇编指令的地址,顺序地组成一个汇编指令序列,记为ins_list;(3)从指令序列ins_list中找出跳转指令及跳转指令的目的指令,如果目的指令的地址小于其对应的跳转指令,说明目的指令与其对应的跳转指令构成一个循环结构;以循环深度值表示循环结构中指令的嵌套深度,且规定位于最外层循环之外的指令的循环深度值为1,循环结构每增加一层嵌套,位于该层循环中的指令的循环深度值加1;得到的循环深度值序列;并统计循环深度值为x的指令的总数numx,并计算循环深度值为x的指令在指令序列的所有指令中的权重值weight(x),计算过程如下:当指令序列中所有指令的循环深度值都相等时,否则,式中,w为调节因子。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西北大学,未经西北大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201410018508.4/,转载请声明来源钻瓜专利网。