#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#define CALL_X 9 //DEMOCODE中E8的地址
#define JMP_Y 14 //DEMOCODE中E9的地址
#define NEXT_X 13 //DEMOCODE中X的下一条指令的地址
#define NEXT_Y 18 //DEMOCODE中Y的下一条指令的地址
int AddASection(unsigned char* FileBuffer);
unsigned char* FileBuffer(const char* FileName);
int SaveFile(unsigned char* FileBuffer,const char* FileName);
DWORD AlignSize(int nSecSize, DWORD Alignment);
void AddSectionData(int size);
int nSecSize = 4096;//初始化节区大小
unsigned char* FileBuff = NULL;
unsigned char DEMOCODE[] = {
0X6A,0X00,0X6A,0X00,0X6A,0X00,0X6A,0X00,0XE8,0X00,0X00,0X00,0X00,0XE9,0X00,0X00,0X00,0X00};
char szSecName[] = ".abc";
void AddSectionData(int size)
{
PBYTE pByte = NULL;
//申请用来添加数据的空间
pByte = (PBYTE)malloc(nSecSize);
ZeroMemory(pByte,nSecSize);
DWORD dwNum = 0;
//文件指针指向文件末尾
SetFilePointer(FileBuff,size+1000,0,FILE_END);
SetEndOfFile(FileBuff);
//在末尾用00补充满
新增一个Section(代码实现)
最新推荐文章于 2023-05-30 21:29:48 发布