首页
社区
课程
招聘
[求助]如何获取修改PE文件的Win32VersionValue值
发表于: 2007-5-14 16:25 6223

[求助]如何获取修改PE文件的Win32VersionValue值

2007-5-14 16:25
6223
问题的引出
------------------------  
本人是大四的学生,由于毕业设计做"循环冗余校验CRC在文件保护中的研
究",现在我的CRC校验已经实现了.
   我要把CRC值写入PE的可选映像头(IMAGE_OPTIONAL_HEADER)里面的一个保留字段:Win32Version.
我写的源程序(部分)
-------------------------
//------这是参考了<PE文件格式详解(上)>这篇文章写的
HANDLE hMapping;
void *basepointer;
hMapping = CreateFileMapping(hFile, 0, PAGE_READONLY | SEC_COMMIT, 0, 0, 0);
basepointer = MapViewOfFile(hMapping, FILE_MAP_READ, 0, 0, 0);
CloseHandle(hMapping);
CloseHandle(hFile);
IMAGE_DOS_HEADER * dos_head;
dos_head =(IMAGE_DOS_HEADER *)basepointer;
#define SIZE_OF_NT_SIGNATURE 0x20;
#define OPTHDROFFSET(a) ((LPVOID)((BYTE *)a + \
               ((PIMAGE_DOS_HEADER)a)->e_lfanew + \
                 SIZE_OF_NT_SIGNATURE + \
                 sizeof(IMAGE_FILE_HEADER)))
PIMAGE_OPTIONAL_HEADER poh;
poh = (PIMAGE_OPTIONAL_HEADER)OPTHDROFFSET(dos_head);
//--------------------以下是为了显示Win32VersionValue到对话框的一个编辑框
DWORD wv;
wv=poh->AddressOfEntryPoint;
CString m_Win32Version;
m_Win32Version=wv;
m_FileCrcValue.MakeUpper();
CEdit * winver=(CEdit*)GetDlgItem(IDC_EDIT_Win32Version);
winver->SetWindowTextA(m_Win32Version);
UpdateData(FALSE);   
//end

出错信息
----------------------------------------
这行有四个错;
error C2143: syntax error : missing ')' before ';'
error C2143: syntax error : missing ')' before ';'
error C2059: syntax error : ')'
error C2059: syntax error : ')'        
-------------------------------------

请各位高手帮忙!!谢谢了.

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
5555555555。没人回。
2007-5-15 19:46
0
雪    币: 267
活跃值: (16)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
3
PIMAGE_OPTIONAL_HEADER只是一个宏吧
不能这么用的
2007-5-16 12:33
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
那怎么用?
请给个具体代码啊!
2007-5-19 15:15
0
雪    币: 267
活跃值: (16)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
5
#define SIZE_OF_NT_SIGNATURE 0x20;
把;去了
2007-5-20 00:06
0
游客
登录 | 注册 方可回帖
返回
//