1.在区块表(section table)中最后一个IMAGE_SECTION_TABLE后面添加一个IMAGE_SECTION_TABLE
IMAGE_SECTION_TABLE 结构如下
typedef struct _IMAGE_SECTION_HEADER {
    BYTE    Name[IMAGE_SIZEOF_SHORT_NAME];
    union {
            DWORD   PhysicalAddress;
            DWORD   VirtualSize;
    } Misc;
    DWORD   VirtualAddress;
    DWORD   SizeOfRawData;
    DWORD   PointerToRawData;
    DWORD   PointerToRelocations;
    DWORD   PointerToLinenumbers;
    WORD    NumberOfRelocations;
    WORD    NumberOfLinenumbers;
    DWORD   Characteristics;
} IMAGE_SECTION_HEADER, *PIMAGE_SECTION_HEADER;
按照结构添加一个长度为1000h名为.lingdux的区块:


名称:.lingdux
真实长度:1000h
RVA地址:290000h
文件中对齐后的尺寸:1000h
在文件中的偏移:0028d730
其他00填充
区块属性:E0200000(可读可写可执行)

添加好后修改PE头处NumberOfSections,从4改为5

修正SizeOfImage,文件大小发生变化,故修改之

2.在文件末尾插入1000h的数据块

, , ,
Trackback

本文到目前为止还暂无回复

添加回复