全球旧事资料 分类
龙源期刊网httpwwwqika
comc

逆向工程应用之软件破解
作者:别克宝拉提来源:《中国科技博览》2015年第24期
摘要本文主要介绍软件的常规保护方式及破解手段。关键词软件逆向工程,软件破解,脱壳,动态调试中图分类号:TP3097文献标识码:A文章编号:1009914X(2015)240161011引言作为软件维护中的一项重要技术,逆向工程可以帮助开发人员更好的理解源代码,熟悉软件的工作流程,从而编写出更优秀的软件供用户使用,但随着这种技术的不断发展,越来越多的软件骇客(Cracker)将其用来破解商业软件的保护机制,甚至通过分析软件的工作原理,还原出有用的核心功能代码,用于新软件的开发。2软件保护早期的软件保护,主要依靠序列号验证,通常在软件启动后,会出现一个注册提示,输入正确的注册码后,才能够使用该软件的完整功能,但随着大量逆向分析工具的出现,软件的可执行文件可以被轻易修改,这种保护方式就形同虚设了。之后的商业软件普遍采用了在序列号验证的基础上加“壳”保护的方式,其主要目的就是防止软件被非法修改或反编译,而软件的破解就是要先“脱壳”处理,然后解除注册验证。21加“壳”保护所谓加“壳”,就是利用加壳软件,将一段代码,像防护层一样附加到软件的可执行文件中,运行软件后先执行“壳”代码,将软件中被压缩加密的代码解压解密后,再将控制权交给软件本身。“壳”的种类很多,一般分成两大类:压缩壳和加密壳;前者只是将软件的二进制文件进行压缩,类似于zip、rar等压缩软件,只不过生成的是可执行文件,目的是减小可执行文件的体积,方便传播或存储,常见压缩壳有UPX、ASPack等;加密壳通常也有压缩功能,但更重要的是将软件代码进行加密,尤其是涉及到软件关键功能的部分,这种壳通常属于商业软件,用户可以通过购买SDK的方式,将加密代码嵌入到自己开发的程序源代码中,达到源代码级防护的目的,常见有ASProtect、Armadillo等。
f龙源期刊网httpwwwqika
comc
大多数加密壳都有反调试功能,或者叫反跟踪功能,主要是针对调试器,目的是阻止调试器对程序代码的跟踪分析,因此在调试时,如果不采取反反跟踪的措施,调试器可能根本无法启动,甚至每次调试都会导致系统崩溃。脱壳就是去除附着在软件可执行体上的壳代码,将解密后的原始执行文件提取出来,通过必要的修复,使可执行体能够正常运行,没有任何功能损失。一般分为手动脱壳和自动脱壳,后者需要专用的脱壳软件,但是加壳软件种类繁多,而且同一个r
好听全球资料 返回顶部