一种基于二进制程序的 安全加固系统设计和实行.docVIP

一种基于二进制程序的 安全加固系统设计和实行.doc

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
一种基于二进制程序的 安全加固系统设计和实行   1 引言   近年来,随着反汇编、反编译和逆向分析等技术的发展,针对软件的破解、篡改和盗版等现象也层出不穷。为了保障软件的安全,对二进制程序安全加固技术的研究已经成为软件安全领域的一个重要分支。在实际应用中,软件厂商们往往会采用多种加固技术进行软件保护, 如 PE 文件压缩技术、PE 文件代码段加密技术、PE 文件代码段反汇编后的代码混淆技术以及 Shellcode 多态变形技术等。 这些技术具有较高的通用性,但由此产生的代价也不容忽视,如何以最小的开销换来最安全的保护,成为二进制程序安全加固技术的研究重点。本文通过分析各种安全加固技术,提出一种新的二进制程序安全加固系统, 能够把任意 PE 文件转换为Shellcode,并代替 Windows 系统对 PE 文件进行加载,同时保证不增大 PE 文件的体积。最后通过实验证明,经本系统加固后的二进制程序体积没有大的变化,并且加固后恶意代码能够逃过主流杀毒软件的查杀,以此证明加固后的二进制程序不但能加大静态分析的难度,还能有效地阻碍对程序的动态分析。   2 常见的软件安全加固技术   软件安全加固技术是随着软件逆向分析技术的发展而发展的。 根据软件攻击者的攻击目的和方法不同,软件加固技术也有不同的侧重点和目标。 需要指出的是,我们不能将所有的加固技术全都一起应用于软件保护中,这是因为使用不同的安全加固技术一般都会带来额外的开销。 简要分析常见的六种加固技术。(1)加壳与脱壳:加壳的目的是加密或压缩 EXE 文件的代码段,在程序运行时,先由解密或者解压程序对代码段进行处理,然后程序正常运行。 这些加密或压缩功能的机制称为加壳, 对应的解密和解压机制称为脱壳。 加壳后的代码段能够有效防止反汇编,但攻击者可以通过对脱壳程序的逆向分析,从而破解软件的壳。(2)多态变形技术:多态变形是由多态和变形两种技术的结合,主要是对解密代码进行变形,使每次生成的解密程序呈现不同状态特征,同时也能对源程序进行简单的变换。 显然,多态变形也是加密技术的一种,按照壳的定义,多态变形技术应属于壳的范畴。 这种加密技术使得经过变形的解密程序都具有不同特征,所以是一种特殊的壳。 常用的多态变形引擎有 BPE32 Clet、ADMmuate、Jempiscodes、Tapion 等。(3)代码混淆技术:指在保持源程序语义不变的情况下,通过对源程序中的数据、布局和控制流程等进行变换, 使得变换后的程序在功能上与源程序相同或相近。代码混淆对代码的变形除了上述多态变形技术所采用的变形方法外, 还对程序的控制流程进行了变换,让程序变得的更加难懂,进而加大逆向分析的难度。(4)防篡改技术:通过软件或硬件措施防止程序被非法修改的软件保护技术的统称,属于软件保护领域中的主动防御范畴。 防篡改技术有两项任务:一是检测软件采用的安全加固技术是否被破解,软件本身是否被修改,通常采用计算校验的方法以及检验一些变量值是否改变来确认程序是否被正常执行;二是当发现程序被篡改或者被调试时制定应对措施。(5)虚拟机保护技术:指将代码翻译为机器和人都无法识别的一串伪代码字节流, 即本地代码虚拟化,在具体执行时再对这些伪代码进行翻译,逐步还原为原始代码并执行的技术。 虚拟机用作软件保护的时候,把软件的底层指令(例如汇编指令)翻译成另外一种虚拟机指令,软件执行的时候部分运算在虚拟机中执行。 由于虚拟机的复杂度可以很高,指令集可以自定义也可以利用或参考现有的各种成熟指令集,逆向工程需要先看懂虚拟机的大体结构以及虚拟指令集,才有可能弄明白被虚拟化后代码行为。 在复杂的虚拟机和软件之间紧耦合的情况下,逆向工程会变得非常困难。(6)软件水印:软件水印(Software WaterMarking)是数字水印技术在软件保护领域的应用和发展,是数字水印技术的分支。 软件水印可分为静态水印和动态水印。静态水印被嵌入在程序代码或者数据当中,一般放在安装模块部分或者指令代码和调试信息的符号中。 动态水印技术把水印存放在程序执行状态中,可用于证明程序是否经过了混淆变形处理。   3 基于二进制程序的加固系统方案   3.1 加固原理PE 文件是 Microsoft Portable Executable File Format的简称,即可移植可执行文件格式,是 Windows 系统下最常用的文件组织形式。Windows 下的可执行文件 EXE以及动态链接库文件 dll 都属于 PE 文件。 PE 文件经过Windows 系统的正常加载,通过反汇编代码很容易逆向分析出 PE 文件的行为。 若仿照 Windows 的加载程序,将源文件转化成机器码直接在内存中执行,可以增大逆向分析的

文档评论(0)

专注于电脑软件的下载与安装,各种疑难问题的解决,office办公软件的咨询,文档格式转换,音视频下载等等,欢迎各位咨询!

1亿VIP精品文档

相关文档