软件破解常见的问题-逆向工程的应用
2011-01-15 10:02
531 查看
软件开发论文 摘要:通过分析几种常规软件破解的方式,以破解出发,并提出了编写应用程序需要注意和改进的地方。
关键词:软件破解技术;加壳软件;逆向工程
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载人程序,脱壳程序里面就会有很多循环。对付循环时,只能让程序往前运行,基本不能让它往回跳,要想办法跳出循环圈。单步跟踪,找到程序的人口地址。这就是动态 论文发表网
关键词:软件破解技术;加壳软件;逆向工程
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载人程序,脱壳程序里面就会有很多循环。对付循环时,只能让程序往前运行,基本不能让它往回跳,要想办法跳出循环圈。单步跟踪,找到程序的人口地址。这就是动态 论文发表网
相关文章推荐
- 软件破解常见的问题-逆向工程的应用
- [转]应同学之邀,破解一个软件,学习逆向工程,文章如下
- 下资源网站”逆向工程,软件破解学习资料汇总
- Symbian 应用软件开发、测试与 S60 平台安全常见问题问答
- 软件工程常见问题(二)
- [转]HSPICE软件的应用及常见问题解决
- 应同学之邀,破解一个软件,学习逆向工程,文章如下
- 逆向工程破解软件的一些汇编命令
- 软件工程常见问题(一)
- 软件工程常见问题和软工控制重要性
- 软件工程常见问题和软工控制重要性
- Rational Rose 逆向工程(java) 常见问题二则
- VisualStudio工程设置(五)---.常见问题
- ASP.NET应用中十大常见的潜在问题(转载)
- 4查并集的简单应用,工程通路问题
- Android应用之——微信微博第三方sdk登录分享使用过程中的一些常见问题
- ORACLE应用中常见的傻瓜问题1000问 (一)
- windows7下php5.4成功安装imageMagick,及解决php imagick常见错误问题。(phpinfo中显示不出来是因为:1.imagick软件本身、php本身、php扩展三方版本要一致,2.需要把CORE_RL_*.dll多个文件放到/php/目录下面)
- 软件应用加壳程序防止破解工具Themida免费下载地址
- 防止.NET软件被逆向工程代码篡改的控件Spices .Net Obfuscator