Windows可执行文件(PE文件)壳的设计过程

本文详细介绍了PE文件壳的设计过程,包括导入函数保护、加密代码段以及虚拟机技术在壳中的应用。通过隐藏和替换导入表、加密代码,甚至构建小型虚拟机来增强软件保护,探讨了壳的实现策略及其脱壳挑战。
摘要由CSDN通过智能技术生成

PE文件壳的设计过程


标题:pe文件壳的设计过程
作者:baccon(PEDIY论坛),或 chenxiang /Hsiang Chen(软件发布者)
时间:2013年10月26日星期六

注:若要转载,请注明出自http://blog.csdn.net/baccon,谢谢合作。

今天来讨论一下PE文件的壳,壳主要用于PE文件的商业保护,以此达到软件不被暴掉的可能性,随着破解知识的普及,软件的壳也愈加复杂还是难以不被暴。。

壳的一个加载过程在许多书上都讲过,这里就以图来复习一次:

这张图其实是一种情形,原程序被压缩引擎压过,还可以是在EXE文件上直接加壳不压缩,这样到省了壳的大小,但原EXE代码没有压缩,反而变大了一点,还有一种是在EXE文件的节区的空隙中添加,这样压缩过的文件和原文件一样大,但是对节区的大小有要求。这是三种常规的加壳思路。

如果单单是加一个简单的壳,象罗云彬的《windows32位环境下的汇编语言程序设计》中的那个AddCode就是一个典型代表。主要步骤如下:
首先在节区表上添加一个节区表信息,把代码写到文件的最后面(已经与新的节区表信息对应),主要注意一下,节区的SectionAlignment和FileAlignment,按照这两个参数写节区信息表,跳到节区表中对应文件偏移位置处,写入代码,代码在节区写不满,要填充0,保持文件对齐的值,通常200,最后是收尾工作,PE文件的NumberOfSections加1,SizeOfImage要加上新节区按照SectionAlignment的值对齐后的大小的值,SizeOfHeaders要按照FileAlignment对齐的,如果加上一个IMAGE_SECTION_HEADER,大小不过FileAlignment,就可能不用修改其值的,还有个SizeOfCode是添加代码的大小,就是将含有代码的节区的大小值相加(这个值已经按FileAlignment对齐,载节区表中)。

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值