计算机程序设计论文:试述用异或算法来实现计算机软件外壳加密的程序.doc_第1页
计算机程序设计论文:试述用异或算法来实现计算机软件外壳加密的程序.doc_第2页
计算机程序设计论文:试述用异或算法来实现计算机软件外壳加密的程序.doc_第3页
计算机程序设计论文:试述用异或算法来实现计算机软件外壳加密的程序.doc_第4页
计算机程序设计论文:试述用异或算法来实现计算机软件外壳加密的程序.doc_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

计算机程序设计论文:试述用异或算法来实现计算机软件外壳加密的程序Discuss on How to Achieve Software Hull Encryption Process with Problematic Algorithm摘要:计算机软件产品是一种知识密集的特殊产品,生产一个软件产品需要大量的人力物力,生产难度大,成本高,周期慢。但是,软件产品的复制却是相当的容易。这就导致了非法复制、盗版软件之风的泛滥。加密是目前保护知识产权的一种有效方式。但任何加密软件都可能被破译、我们不能因噎废食。加密与解密,是矛和盾的关系,要想防止被解读,必须提高加密技术。论文利用异或算法对文件的关键代码节来实现了这种加密,防止通过使用Soft-ice或者其他的调试软件来对程序进行反汇编,阻止分析源程序,以此来实现对软件的保护。Abstract:Computer software is a special knowledge-intensive product.To produce software requires considerable human and material resources,itis difficult to produce with high cost and slow cycle.However,a copy of the software product is quite easy.This led to the illegal copying,the proliferationof pirated software.Encryption is an effective way to protect intellectual property.However,any encryption software could be cracked.Encryption anddecryption is the relationship between spear and shield.To prevent interpretation,we must improve the encryption technology.In this paper,though de-coding algorithm to achieve this encryption and prevent the use of Soft-ice,or other debugging software on the disassembly process,preventing analysis ofsource code in order to achieve the protection of the software.关键词:加密;外壳;异或算法;附加代码段Key words:encryption;shell;XOR algorithm;additional code11、外壳加密法在windows平台下的加密系统是一个对windows内核的探索软件加密技术一般应该包括四个方面:防拷贝、防篡改、防跟踪和防解读。本文主要解决其中的一个问题防解读,即防止通过使用Soft-ice或者其他的调试软件来对程序进行反汇编,阻止分析源程序,以此来实现对软件的保护。对windows下的可执行文件加密可采用外壳加密法,它是直接处理待加密软件,在原软件的外面罩上一层“外壳”,这层外壳在原软件运行前先得到执行,从而达到加密的目的。这种方法实现起来相对困难,需要清晰了解windows可执行文件的格式,而且还要解决外壳与原软件之间的连接问题,但如果采用了高级的反跟踪与变形技术,经加密后的软件不仅操作丝毫不用改变,而且还有很好的保密性。采用的加密方法是外壳式的,主要目的就防止静态分析。所谓静态分析就是使用反汇编软件(如W32dasm,unasm等等),对可执行文件本身进行反汇编。它反汇编的结果是按照文件中的指令代码直接翻译而来的。2用异或算法实现外壳加密外壳式就是加密软件把一段代码附加到执行程序上,并把程序入口指向附加的代码中。在此之前,我们先用一段程序对代码节,这个关键的节进行加密。当被加密的程序装入内存之后,附加代码首先执行,它是一个解密模块,通过附加代码对加密的模块进行解密恢复原程序,并转入原来的程序中执行。但是,当有人试图通过静态分析的方法,对程序进行阅读和修改时,他们只会得到一个加密后的密文。这就是因为我们已经对关键的节(Section)进行了加密处理,这样,原程序完全可以抵御如W32dasm这样的功能强大的反汇编软件的静态分析。但外壳程序并不能保证不被反汇编软件的动态分析和修改,这是由其特殊的作用和反跟踪的脆弱性所决定的。加密的核心代码主要是用win32汇编来完成的。用FileStreamWritebuffer的方法将修改后的文件头和代码段写入一个新的文件。需要修改原程序的入口地址,让加密后的软件先执行我们的解密模块。在PE文件中,我们只需要把AddressOfEntryPoint指向我们自己的附加代码段,让附加代码段先执行就达到了目的。异或算法加密的主程序如下:procedure xorcode(const paddress:dword;const count:integer);beginasmpush esipush edipush ecxpush ebxmov ecx,countmov ebx,paddressl2:mov ah,ebxxor ah,0ffh/逐个字节与一个值异或movebx,ahinc ebxdec ecxcmp ecx,0jnel2pop ebxpop ecxpop edipop esiend;end;异或代码节主程序:with FNTHeaders.Sectionsidobeginif i=0 then/如果是第一个节(代码节)则异或beginppecodebuffer:=AllocMem(SizeOfRawData);mov(Dword(Pointer(FFileBase+VirtualAddress),DWord(ppecodebuffer),SizeOfRawData);xorcode(DWord(ppecodebuffer),sizeofrawdata);NewFile.Position:=PointerToRawData;NewFile.WriteBuffe(rppecodebuffer,SizeOfRawData);endelsebegin/除代码节外的节全部复制NewFile.Position:=PointerToRawData;NewFile.WriteBuffer(Pointer(FFileBase+VirtualAddress),SizeOfRawData);end;end;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论