逆向——壳应用
文章目录
前言
本次实验的主要要求是在理解PE文件以及壳的工作原理基础上,对目的PE文件进行处理,增加节,并写入符合加密壳功能的代码,修改PE文件入口地址、修改节属性,达到加密壳的功能。
本次实验用到的工具有OllyDBG、PEditor、WinHex等。
提示:以下是本篇文章正文内容,下面案例可供参考
一、壳的执行流程
壳是在可执行程序的外面进行了一次包裹,从而让壳对可执行文件进行保护(这里说的壳指的是压缩壳或加密壳,不包含虚拟指令壳)。壳通常会在可执行文件执行之前先进行执行,从而更好地获得控制权。加密壳会在进行一系列的初始化工作之后(可能包括解压缩、解密等,加密壳通常也有压缩功能)也把控制权交还给可执行程序,但是在可执行程序执行的过程中,外壳仍然会对可执行程序进行各种各样的“干涉”,从而达到更好的保护作用。

从上图中可以看出,在加壳后的可执行程序中多了一个.Pack 节(该名字任意,甚至可以为空),该节中存放的是壳的代码或相关的加壳后的数据,当然壳相关的代码或数据可能会放在多个节中,而不是一个节中。由于壳要首先取得控制权,因此程序的入口地址会指向壳的添加的节区(当然不是绝对的,也可能入口不变,而是修改入口处的代码),当壳的代码执行完成后,再跳回到原来的入口点进行执行。
二、模拟壳的工作
初始PE文件的 RVA 与 FOA 相同,使得模拟的时候可以省去各种地址转换的问题。本节的模拟工作将会在该文件上进行模拟。以下分析、处理基于EnPE.exe文件。
2.1、 对原始可执行文件RawPE.exe的代码节进行加密,得到EnPE.exe(已完成);
密码算法:异或;

最低0.47元/天 解锁文章
908

被折叠的 条评论
为什么被折叠?



