用writefile函数可以修改文件内容吗?解决方案

用writefile函数可以修改文件内容吗?
#include <windows.h>
#include <stdio.h>
int main()
{
char buffer[]="hello!";
DWORD dwWriteSize;
HANDLE hFile = CreateFile("c:\\1.exe",     //创建文件的名称。
   GENERIC_WRITE,          // 写文件。
   0,                      // 不共享读写。
                                   NULL,                   // 缺省安全属性。
                                   OPEN_EXISTING,          // 如果文件存在,则打开。
                                   FILE_ATTRIBUTE_NORMAL, // 一般的文件。         
                                   NULL);                 // 模板文件为空。 

SetFilePointer(hFile,0,NULL,FILE_END);
        WriteFile(hFile,buffer,sizeof(buffer),&dwWriteSize,NULL);

CloseHandle(hFile);

return 0;
}

我目前水平菜的不得了只能写出以上代码
我的要求是修改 已经存在的 1.exe
偏移地址:4B383  把4465736372697074696F6E 替换  6F686D79676F6421212121
用writefile能实现吗?  不可以的话 用哪些函数实现最简单(代码比较少的)
------解决思路----------------------
关掉杀毒软件。
#include <windows.h>
#include <stdio.h>
int main()
{
char buffer[11]={0x6F,0x68,0x6D,0x79,0x67,0x6F,0x64,0x21,0x21,0x21,0x21};
DWORD dwWriteSize=11;
HANDLE hFile = CreateFile("c:\\1.exe",     //创建文件的名称。
   GENERIC_WRITE,          // 写文件。
   0,                      // 不共享读写。
                                   NULL,                   // 缺省安全属性。
                                   OPEN_EXISTING,          // 如果文件存在,则打开。
                                   FILE_ATTRIBUTE_NORMAL, // 一般的文件。         
                                   NULL);                 // 模板文件为空。 

SetFilePointer(hFile,0x4B383,0,FILE_BEGIN);
        WriteFile(hFile,buffer,sizeof(buffer),&dwWriteSize,NULL);

CloseHandle(hFile);

return 0;
}

------解决思路----------------------
引用:
关掉杀毒软件。
#include <windows.h>
#include <stdio.h>
int main()
{
char buffer[11]={0x6F,0x68,0x6D,0x79,0x67,0x6F,0x64,0x21,0x21,0x21,0x21};
DWORD dwWriteSize=11;
HANDLE hFile = CreateFile("c:\\1.exe",     //创建文件的名称。
   GENERIC_WRITE,          // 写文件。
   0,                      // 不共享读写。
                                   NULL,                   // 缺省安全属性。
                                   OPEN_EXISTING,          // 如果文件存在,则打开。
                                   FILE_ATTRIBUTE_NORMAL, // 一般的文件。         
                                   NULL);                 // 模板文件为空。 

SetFilePointer(hFile,0x4B383,0,FILE_BEGIN);
        WriteFile(hFile,buffer,sizeof(buffer),&dwWriteSize,NULL);

CloseHandle(hFile);

return 0;
}



窝哈哈哈,赵老湿,我闻到你学术上的腐朽味道罗……
既然 dwWriteSize没有什么用处,为什么不这样写:
WriteFile (hFile, buffer, sizeof (buffer),& (DWORD) {11}, NULL);
关掉杀毒软件……赵老湿原来不是裸奔……