加壳与脱壳-添加壳代码的几种方式
上一次讲的方式是在区段头后面继续添加区段头,但是万一区段头的后面没有连续的空间怎么办
所以这里有好几种方式来处理
利用Dos Stub空间
PE文件里面有一段Dos Stub空间,没有什么用,所以可以利用起来作为加壳处理
可以通过把本来的
这一截(PE头+区段头)全部往上偏移覆盖掉DOS Stub的空间,然后后面的区段头会多出来一截空间,就可以利用这多出来的一截空间再开辟区段头,后面再开辟区段来处理
合并区段
将区段头合并为只有一个,直接往后面添加区段,到时候要访问的区段就可以直接在后面添加就好了
1 读取PE文件到内存中,将PE文件按照内存对齐(因为内存对齐是要大于文件对齐的,不按内存对齐保存下来,就会导致读取的时候没有把合并了的区段安装内存对齐,因为一个区段头对应的是一个区段,对应它如何对齐,这里合并成了一个区段头,所以需要手工来对齐)
2 删除除第一个区段头以外的区段头信息
3 修改第一个区段的头信息
4 修改numberofsections
5 保存修改后的pe文件
标签:脱壳,PE,Stub,加壳,添加,内存,区段,对齐 来源: https://www.cnblogs.com/Sna1lGo/p/14619828.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。