- 1、本文档共20页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
加壳程序的设计(vc sql)
加壳程序的设计(vc+sql)
pBRBR原完成后再把控制权交给原程序,执行原来的代码部加壳程序的设计(vc+sql)
分。加上外壳后,原程序代码在磁盘文件中一般是加密后的形式存在的,只加壳程序的设计(vc+sql)
在执行时在内存还原,这样就可以比较有效的防止破解者对程序文件的加壳程序的设计(vc+sql)
非法修改,同时也可以防止程序被静态反编译。?/P
p对加壳程序的设计(vc+sql)
程序的加壳一般是选用一些现成的加壳软件,如tElock,As加壳程序的设计(vc+sql)
protect,Aspack,UPX等。不同的外壳所侧重的方面不一样加壳程序的设计(vc+sql)
,有的侧重于压缩,有的侧重于加密。为了更好地保护软件,一般可以来用加壳程序的设计(vc+sql)
tElock,Aspuroct等侧重于加密的加先软件。使用现成加壳程序的设计(vc+sql)
的加壳软件虽然很方便,却存在着一些不可避免的缺点:越是先进、优秀的加壳程序的设计(vc+sql)
加壳软件有时反而会越不安全。为什么呢?因为加壳软件越优秀、用加壳程序的设计(vc+sql)
它加密的软件越多,研究它的人也会越多,其中必定有一些高手会分析加壳程序的设计(vc+sql)
出这些外壳所用的关键技术,并将其公开,有时甚至会针对这些加壳软件而写加壳程序的设计(vc+sql)
出专门的脱壳机。一旦一个加壳软件被写出脱壳机,那么用它加密的软件加壳程序的设计(vc+sql)
的保密性就可想而知了。所以写一个自己专用的加完软件还是有一定意义的加壳程序的设计(vc+sql)
。/P
pnbsp; 本设计编写了一个简单的加壳程序。在加壳程序的设计(vc+sql)
这个加壳程序中要实现的主要功能有:对程序的压缩、对资源的处理、对输加壳程序的设计(vc+sql)
入表的处理、区块的融合和额外数据的保留等。/P
p本加壳程序的设计(vc+sql)
设计的加壳工具有两部分组成,第一部分是主体程序,主要是将原PE文件加壳程序的设计(vc+sql)
读入内存,然后对PE文件各个部分加工,主要是各区块数据压缩,将输入表加壳程序的设计(vc+sql)
、重定位变形,最后将外壳部分与处理好的主体文件拼合。第二部分就是外加壳程序的设计(vc+sql)
壳部分,这部分主要是加壳后程序执行时候的引导段,它模拟PE加载加壳程序的设计(vc+sql)
器处理输入表、重定位表,最后跳到原程序。/P
p最终装配加壳程序的设计(vc+sql)
成一个完整的程序结构,如图所示。/P
B/B/加壳程序的设计(vc+sql)
H2
p对于一般的EXE文件,它的实际载入基址与优先载入基加壳程序的设计(vc+sql)
址一般是相同的,所以它的重定位数据一般是无用的,可以把它去除,这加壳程序的设计(vc+sql)
可以使文件更小。但是对于DLL文件,重定位数据一般是必须的。/P加壳程序的设计(vc+sql)
p程序中重定位数据的去除是利用一个自定义函数来完成的。它的加壳程序的设计(vc+sql)
功能是找到重定位数据所对应的区块,将区块大小改为0,同时将区块所有加壳程序的设计(vc+sql)
数据清零。/P
p去除重定位数据的实现代码如下:/加壳程序的设计(vc+sql)
P
pvoid ClsRelocData( )/P
加壳程序的设计(vc+sql)
p{/P
pnbsp;nbsp;nbsp; 加壳程序的设计(vc+sql)
/P
pnbsp;nbsp;nbsp; PIMA加壳程序的设计(vc+sql)
GE_BASE_RELOCATIONnbsp;nbsp;加壳程序的设计(vc+sql)
nbsp;nbsp;nbsp; pBaseReloc =加壳程序的设计(vc+sql)
NULL;/P
pnbsp;nbsp;nbsp加壳程序的设计(vc+sql)
; PIMAGE_DATA_DIRECTORYnbsp;nbsp加壳程序的设计(vc+sql)
;nbsp;nbsp;nbsp;nbsp; pRelocD加壳程序的设计(vc+sql)
ir = NULL;/P
pnbsp;nbsp;加壳程序的设计(vc+sql)
nbsp; UINTnbsp;nbsp;nbsp;nbsp;加壳程序的设计(vc+sql)
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp; nSize = 0;/P
pnbsp;nbsp;nbsp; pRelocDir=m_pntHeaders-gt;OptionalHeader.DataDirectory/P
p[IMAGE_DIRECTORY_ENTRY_BASERELO
文档评论(0)