在《加密与解密》392页有个程序 如下:
BOOL IsFileModified()
{
PIMAGE_DOS_HEADER pDosHeader=NULL;
PIMAGE_NT_HEADERS pNtHeader=NULL;
//PIMAGE_NT_HEADERS 这个什么意思 是个数据类型吗?
DWORD fileSize,OriginalCRC32,NumberOfBytesRW;
TCHAR *pBuffer,szFileName[MAX_PATH];
GetModuleFileName(NULL,szFileName,MAX_PATH);//获得文件名
HANDLE hFile=CreateFile(szFileName,GENERIC_READ,1,NULL,3,FILE_ATTRIBUTE_NORMAL,NULL);
if (hFile==INVALID_HANDLE_VALUE) return FALSE;
fileSize=GetFileSize(hFile,NULL);//获得文件长度
if(fileSize=0xFFFFFFFF)return FALSE;
pBuffer=new TCHAR[fileSize];//怎么里面还有个new,[fileSize]什么意思
ReadFile(hFile,pBuffer,fileSize,&NumberOfBytesRW,NULL);
CloseHandle(hFile);//关闭文件
pDosHeader=(PIMAGE_DOS_HEADER)pBuffer;//这行呢
pNtHeader=(PIMAGE_NT_HEADERS)((DWORD)pDosHeader+pNtHeader->e_lfanew);
//定位到PE文件头前4个字节处,并读出储存在这里的CRC-32值
OriginalCRC32=*((DWORD*)((DOWRD)pNtHeader-4));//这个最恼人了 怎么还2个*
fileSize=fileSize-DOWRD(pDosHeader->e_lfanew);//将PE文件头前那部分数据去除
if(CRC32((BYTE*)(pBuffer+pDosHeader->e_lfanew),fileSize)==OriginalCRC32)
return TRUE;
esle
return FALSE;
}
不好意思 C没学好 请各位大哥大姐弟弟妹妹 帮帮忙啊 谢谢了
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!