#include
#include
#include
#include
#pragma comment(lib,"imagehlp")
//extern"C" PIMAGE_NT_HEADERS CheckSumMappedFile( PVOIDBaseAddress, DWORD FileLength, PDWORD HeaderSum, PDWORDCheckSum );
using namespace std;
int main()
{
char buf[300];
ZeroMemory(buf,300);
gets(buf); //输入文件名
printf("name:%s\n",buf);
HANDLE hFile = CreateFile(buf,
GENERIC_READ | GENERIC_WRITE,
FILE_SHARE_READ,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
NULL); //打开文件
if(hFile == INVALID_HANDLE_VALUE)
{
printf("Open File Failed!\n");
return 0;
}
HANDLE hFileMapping = CreateFileMapping(hFile,
NULL,
PAGE_READWRITE,
0, 0, 0); //创建文件的内存映射
if(hFileMapping == NULL)
{
printf("Create Mapping FileFailed!\n");
CloseHandle(hFile);
return 0;
}
LPVOID lpBase = MapViewOfFile(hFileMapping, FILE_MAP_READ | FILE_MAP_WRITE, 0, 0, 0); //得到文件映射的初地址
if(lpBase == NULL)
{
printf("Failed to Map theFile!\n");
CloseHandle(hFileMapping);
CloseHandle(hFile);
}
DWORD HeaderSum,CheckSum;
int len=114688; //文件的长度,此处写死,不同的程序需要修改。
//HeaderSum=*(DWORD)
CheckSumMappedFile(lpBase, len, &HeaderSum, &CheckSum);//调用函数计算校验和
cout<<HeaderSum<<" "<<CheckSum<<endl;
getchar();
getchar();
return 0;
}
#include
#include
#include
#pragma comment(lib,"imagehlp")
//extern"C" PIMAGE_NT_HEADERS CheckSumMappedFile(
using
int
{
}