新闻  |   论坛  |   博客  |   在线研讨会
软件破解常见的问题-逆向工程的应用
mingqiuqiu | 2011-02-09 11:02:17    阅读:54850   发布文章

 软件开发论文 摘要:通过分析几种常规软件破解的方式,以破解出发,并提出了编写应用程序需要注意和改进的地方。
  关键词:软件破解技术;加壳软件;逆向工程 
  1引言
  软件破解主要从两个方面人手,第一是脱掉保护软件的壳,现在的软件出厂一般都使用了加密壳、压缩壳、伪装壳、多层壳等技术,脱掉软件的壳是能进行跟踪调试的前提条件。第二是根据软件的注册性质决定采取什么对策进行序列号推算,暴力破解等。
  2.1壳概述
  在一些计算机软件里有一段专门负责保护软件不被非法修改或反编译的程序,它们一般都是先于程序运行,拿到控制权,然后完成它们保护软件的任务。当加壳后的文件执行时,壳一这段代码先于原始程序运行,它把压缩、加密后的代码还原成原始程序代码,然后再把执行权交还给原始代码。软件的壳分为加密壳、压缩壳、伪装壳、多层壳等
  类,目的都是为了隐藏程序真正的OEP(人口点,防止被破解)。
  2.2加壳软件
  作者编好软件后,编译成exe可执行文件。有一些版权信息需要保护起来,不想让别人随便改动,如作者的姓名等,即为了保护软件不被破解,•通常都是采用加壳来进行保护。若需要把程序压缩小一些,从而方便传输,于是,需要用到一些软件,它们能将exe可执行文件压缩。另外在黑客界给木马病毒等加壳以躲避杀毒软件。能实现上述功能的这些软件称为加壳软件,如ASPACK,UPX,PEcompace等。
  2.3侦壳软件
  侦测壳和软件所用编写语言的软件为侦壳软件。脱壳之前必须要查它的壳的类型。常用侦壳软件有peid,fi等。
  2.4脱壳软件
  常用的脱壳工具如下:
  (1)文件分析工具(侦测壳的类型):Fi,Get-Typ,peid,pe—scan;
  (2)OEP人口查找工具:peid;
  (3)调试工具:SoftICE,TRW,ollybdg;
  (4)Dump工具:IceDump,TRW,PEditor,ProcDump32,lmrdPE;
  (5)PE文件编辑工具:PEditor,Proc.Dump32,LordPE;
  (6)重建ImportTable工具:ImportREC,Re-Virgin。
  2.5手动脱壳方法
  软件脱壳有手动脱壳和自动脱壳之分,下面仅介绍手动脱壳。
  手动脱壳的主要步骤是寻找人口点,转储(dump)程序,修复引人函数表(ImportTable),修复pe文件。现在的壳分压缩壳,加密壳,伪装壳,多重壳。压缩壳的目的是使文件由大小变小,便于在网上传播。并有一定的保护作用,他人无法反汇编加壳程序;加密壳的目的是用各种手段保护软件壳不被脱掉、跟踪,文件大小不是它的目的,有时候甚至变大;伪装壳其实也还是一种加密壳,只不过它先是伪装成一些开发工具的头部,如VC,使得侦壳工具无法准确地侦察出它加壳的种类;多重壳技术是采用多种壳加密技术,不光加一层壳,加多重不一样的壳达到保护的目的。
  判断加壳程序和普通程序很容易,用Ollydbg(简称Od)载入程序,没加壳软件无任何提示。加密壳有些Od载人时会提示压缩,用运行后,Od提示程序异常。普通加壳Od载人时一般都会发现,提示软件被加壳,是否继续分析。若脱壳没有脱干净,Od载人时也会提示加壳。手动脱壳时,用OUdbg载人程序,脱壳程序里面就会有很多循环。对付循环时,只能让程序往前运行,基本不能让它往回跳,要想办法跳出循环圈。单步跟踪,找到程序的人口地址。这就是动态  发表论文网

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客